namespace Yw.WinFrmUI
{
///
/// 水力组件视图
///
[TypeConverter(typeof(PropertySorter))]
public class HydroParterViewModel
{
///
///
///
public HydroParterViewModel()
{
this.PropStatusList = new List();
}
///
///
///
public HydroParterViewModel(Yw.Model.HydroParterInfo rhs, Yw.Model.HydroModelInfo hydroInfo) : this()
{
this.ID = rhs.ID;
this.UpdatePropStatus(nameof(this.ID), rhs, nameof(rhs.ID));
this.Catalog = HydroParterCatalogHelper.GetName(rhs.Catalog);
this.UpdatePropStatus(nameof(this.Catalog), rhs, nameof(rhs.Catalog));
this.Name = rhs.Name;
this.UpdatePropStatus(nameof(this.Name), rhs, nameof(rhs.Name));
this.Code = rhs.Code;
this.UpdatePropStatus(nameof(this.Code), rhs, nameof(rhs.Code));
this.ModelType = rhs.ModelType;
this.UpdatePropStatus(nameof(this.ModelType), rhs, nameof(rhs.ModelType));
this.DbId = rhs.DbId;
this.UpdatePropStatus(nameof(this.DbId), rhs, nameof(rhs.DbId));
this.Flags = Yw.Untity.FlagsHelper.ToString(rhs.Flags);
this.UpdatePropStatus(nameof(this.Flags), rhs, nameof(rhs.Flags));
this.Description = rhs.Description;
this.UpdatePropStatus(nameof(this.Description), rhs, nameof(rhs.Description));
this.DbLocked = rhs.DbLocked;
this.UpdatePropStatus(nameof(this.DbLocked), rhs, nameof(rhs.DbLocked));
this.Vmo = rhs;
this.HydroInfo = hydroInfo;
}
///
/// ID
///
[Browsable(false)]
public virtual long ID { get; set; }
///
/// 分类
///
[Category("基础信息")]
[DisplayName("分类")]
[PropertyOrder(1)]
[ReadOnly(true)]
[Browsable(true)]
public virtual string Catalog { get; set; }
///
/// 名称
///
[Category("基础信息")]
[DisplayName("名称")]
[PropertyOrder(2)]
[Browsable(true)]
public virtual string Name { get; set; }
///
/// 编码
///
[Category("基础信息")]
[DisplayName("编码")]
[PropertyOrder(3)]
[ReadOnly(true)]
[Browsable(true)]
public virtual string Code { get; set; }
///
/// 型号
///
[Category("基础信息")]
[DisplayName("型号")]
[PropertyOrder(4)]
[HydroModelTypePro]
[Browsable(true)]
public virtual string ModelType { get; set; }
///
/// DbId
///
[Browsable(false)]
public virtual string DbId { get; set; }
///
/// 匹配
///
[Category("基础信息")]
[DisplayName("匹配")]
[PropertyOrder(5)]
[ShowEditor(false)]
[Browsable(true)]
public virtual bool HasDb
{
get { return !string.IsNullOrEmpty(this.DbId); }
}
///
/// 标签
///
[Category("基础信息")]
[DisplayName("标签")]
[PropertyOrder(6)]
[HydroFlagsPro]
[Browsable(true)]
public virtual string Flags { get; set; }
///
/// 说明
///
[Category("基础信息")]
[DisplayName("说明")]
[PropertyOrder(7)]
[MultiText]
[Browsable(true)]
public virtual string Description { get; set; }
///
/// 锁定
///
[Category("基础信息")]
[DisplayName("锁定")]
[PropertyOrder(8)]
[Browsable(true)]
public virtual bool DbLocked { get; set; }
///
/// 属性状态列表
///
[Browsable(false)]
public virtual List PropStatusList { get; set; }
///
/// Vmo
///
[Browsable(false)]
public virtual Yw.Model.HydroParterInfo Vmo { get; set; }
///
/// HydroInfo
///
[Browsable(false)]
public virtual Yw.Model.HydroModelInfo HydroInfo { get; set; }
///
/// 获取属性状态
///
public HydroParterPropStatusViewModel GetPropStatus(string propName)
{
if (this.PropStatusList == null)
{
return default;
}
var propStatus = this.PropStatusList.Find(x => x.PropName == propName);
return propStatus;
}
///
/// 更新属性状态
///
public bool UpdatePropStatus(string propName, Yw.Hydro.ePropStatus propStatus, string statusInfo)
{
if (string.IsNullOrEmpty(propName))
{
return false;
}
if (this.PropStatusList == null)
{
this.PropStatusList = new List();
}
var propStatusViewModel = GetPropStatus(propName);
if (propStatusViewModel == null)
{
propStatusViewModel = new HydroParterPropStatusViewModel() { PropName = propName };
this.PropStatusList.Add(propStatusViewModel);
}
propStatusViewModel.PropStatus = propStatus;
propStatusViewModel.StatusInfo = statusInfo;
return true;
}
///
/// 更新属性
///
public virtual void UpdateProperty()
{
this.ID = this.Vmo.ID;
this.UpdatePropStatus(nameof(this.ID), this.Vmo, nameof(this.Vmo.ID));
this.Catalog = HydroParterCatalogHelper.GetName(this.Vmo.Catalog);
this.UpdatePropStatus(nameof(this.Catalog), this.Vmo, nameof(this.Vmo.Catalog));
this.Name = this.Vmo.Name;
this.UpdatePropStatus(nameof(this.Name), this.Vmo, nameof(this.Vmo.Name));
this.Code = this.Vmo.Code;
this.UpdatePropStatus(nameof(this.Code), this.Vmo, nameof(this.Vmo.Code));
this.ModelType = this.Vmo.ModelType;
this.UpdatePropStatus(nameof(this.ModelType), this.Vmo, nameof(this.Vmo.ModelType));
this.DbId = this.Vmo.DbId;
this.UpdatePropStatus(nameof(this.DbId), this.Vmo, nameof(this.Vmo.DbId));
this.Flags = Yw.Untity.FlagsHelper.ToString(this.Vmo.Flags);
this.UpdatePropStatus(nameof(this.Flags), this.Vmo, nameof(this.Vmo.Flags));
this.Description = this.Vmo.Description;
this.UpdatePropStatus(nameof(this.Description), this.Vmo, nameof(this.Vmo.Description));
this.DbLocked = this.Vmo.DbLocked;
this.UpdatePropStatus(nameof(this.DbLocked), this.Vmo, nameof(this.Vmo.DbLocked));
}
///
/// 更新计算属性
///
public virtual void UpdateCalcuProperty(HydroCalcuVisualResult rhs)
{
}
///
/// 更新Vmo属性
///
public virtual void UpdateVmoProperty()
{
this.Vmo.ID = this.ID;
this.Vmo.UpdatePropStatus(nameof(this.Vmo.ID), this, nameof(this.ID));
this.Vmo.Catalog = HydroParterCatalogHelper.GetCode(this.Catalog);
this.Vmo.UpdatePropStatus(nameof(this.Vmo.Catalog), this, nameof(this.Catalog));
this.Vmo.Name = this.Name;
this.Vmo.UpdatePropStatus(nameof(this.Vmo.Name), this, nameof(this.Name));
this.Vmo.Code = this.Code;
this.Vmo.UpdatePropStatus(nameof(this.Vmo.Code), this, nameof(this.Code));
this.Vmo.ModelType = this.ModelType;
this.Vmo.UpdatePropStatus(nameof(this.Vmo.ModelType), this, nameof(this.ModelType));
this.Vmo.DbId = this.DbId;
this.Vmo.UpdatePropStatus(nameof(this.Vmo.DbId), this, nameof(this.DbId));
this.Vmo.DbLocked = this.DbLocked;
this.Vmo.UpdatePropStatus(nameof(this.Vmo.DbLocked), this, nameof(this.DbLocked));
this.Vmo.Flags = Yw.Untity.FlagsHelper.ToList(this.Flags);
this.Vmo.UpdatePropStatus(nameof(this.Vmo.Flags), this, nameof(this.Flags));
this.Vmo.Description = this.Description;
this.Vmo.UpdatePropStatus(nameof(this.Vmo.Description), this, nameof(this.Description));
}
}
}