CloudBuilder/CloudBuilder.Gui/ExFormSnapshotEntry.cs
owenchen 1c0c83af5f ow
2026-05-12 10:09:31 +08:00

69 lines
1.9 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CloudBuilder.Gui
{
public class ExFormSnapshotEntry
{
public string ControlName { get; set; }
public string DataPropertyName { get; set; }
public string DisplayName { get; set; }
public string DisplayValue { get; set; }
public object Value { get; set; }
// Methods
public ExFormSnapshotEntry()
{
}
public ExFormSnapshotEntry(string controlName, string displayName, object value, string displayValue)
: this(controlName, displayName, value, displayValue, null)
{
}
public ExFormSnapshotEntry(string controlName, string displayName, object value, string displayValue, string dataPropertyName)
{
ControlName = controlName;
DisplayName = displayName;
DisplayValue = displayValue;
Value = value;
DataPropertyName = dataPropertyName;
}
private static bool IsNull(object value)
{
if (value == null) return true;
if (value is string) return string.IsNullOrEmpty((string)value);
if (value is DBNull) return true;
return false;
}
public static bool Compare(object v1, object v2)
{
bool b1 = IsNull(v1);
bool b2 = IsNull(v2);
if (b1 == b2 && b1 == true) return true;
return v1.Equals(v2);
}
public ExFormSnapshotDifferenceEntry Compare(ExFormSnapshotEntry o)
{
if (!Compare(this.Value, o.Value))
{
return new ExFormSnapshotDifferenceEntry(this.ControlName, this.DisplayName, this.Value, this.DisplayValue, o.Value, o.DisplayValue, this.DataPropertyName);
}
return null;
}
}
}