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)); } } }