duheng
2024-12-11 9cdc1a0ed62b3672b63f065e2e2a98d46f966430
WinFrmUI/Yw.WinFrmUI.Hydro.Core/04-viewmodel/01-parter/HydroParterViewModel.cs
@@ -21,7 +21,7 @@
        {
            this.ID = rhs.ID;
            this.UpdatePropStatus(nameof(this.ID), rhs, nameof(rhs.ID));
            this.Catalog = HydroParterCatalogHelper.GetCatalogName(rhs.Catalog);
            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));
@@ -84,7 +84,7 @@
        [Category("基础信息")]
        [DisplayName("型号")]
        [PropertyOrder(4)]
        [IsHydroModelType]
        [HydroModelTypePro]
        [Browsable(true)]
        public virtual string ModelType { get; set; }
@@ -113,7 +113,7 @@
        [Category("基础信息")]
        [DisplayName("标签")]
        [PropertyOrder(6)]
        [IsHydroFlagsPro(true)]
        [HydroFlagsPro]
        [Browsable(true)]
        public virtual string Flags { get; set; }
@@ -155,13 +155,50 @@
        public virtual Yw.Model.HydroModelInfo HydroInfo { get; set; }
        /// <summary>
        /// 更新
        /// 获取属性状态
        /// </summary>
        public virtual void Update()
        public HydroParterPropStatusViewModel GetPropStatus(string propName)
        {
            if (this.PropStatusList == null)
            {
                return default;
            }
            var propStatus = this.PropStatusList.Find(x => x.PropName == propName);
            return propStatus;
        }
        /// <summary>
        /// 更新属性状态
        /// </summary>
        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<HydroParterPropStatusViewModel>();
            }
            var propStatusViewModel = GetPropStatus(propName);
            if (propStatusViewModel == null)
            {
                propStatusViewModel = new HydroParterPropStatusViewModel() { PropName = propName };
                this.PropStatusList.Add(propStatusViewModel);
            }
            propStatusViewModel.PropStatus = propStatus;
            propStatusViewModel.StatusInfo = statusInfo;
            return true;
        }
        /// <summary>
        /// 更新属性
        /// </summary>
        public virtual void UpdateProperty()
        {
            this.ID = this.Vmo.ID;
            this.UpdatePropStatus(nameof(this.ID), this.Vmo, nameof(this.Vmo.ID));
            this.Catalog = HydroParterCatalogHelper.GetCatalogName(this.Vmo.Catalog);
            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));
@@ -182,12 +219,35 @@
        /// <summary>
        /// 更新计算属性
        /// </summary>
        public virtual void UpdateCalcuProperty(HydroCalcuResult rhs)
        public virtual void UpdateCalcuProperty(HydroCalcuVisualResult rhs)
        {
        }
        /// <summary>
        /// 更新Vmo属性
        /// </summary>
        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));
        }