duheng
2024-08-29 ee20bdede31f85312ba4029773037bfa2117cbad
修改导入项目逻辑
已修改9个文件
已添加12个文件
1491 ■■■■■ 文件已修改
Application/HStation.Application.Assets.Core/00-core/Mapper.cs 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Application/HStation.Application.Assets.Core/01-Project/XhsProject_Controller.cs 219 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Application/HStation.Application.Assets.Core/01-Project/XhsProject_ExtensionsController.cs 166 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Application/HStation.Application.Assets.Core/01-Project/XhsProject_StdController.cs 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Application/HStation.Application.Assets.Core/02-project-site/XhsProjectSite_Controller.cs 217 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Application/HStation.Application.Assets.Core/02-project-site/XhsProjectSite_StdController.cs 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Application/HStation.Application.Assets.Core/03-scheme/XhsScheme_Controller.cs 237 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Application/HStation.Application.Assets.Core/03-scheme/XhsScheme_StdController.cs 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Application/HStation.Application.Assets.Core/09-dbfirst/XhsDbFirst_Controller.cs 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Application/HStation.Application.Assets.Core/GlobalUsings.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Application/HStation.Application.Assets.Core/HStation.Application.Assets.Core.csproj 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BLL/HStation.BLL.Assets.Core/02-httpclient/01-PumpProduct/Class1.cs 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BLL/HStation.BLL.Assets.Core/HStation.BLL.Assets.Core.csproj 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HStation.Xhs.Core.sln 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/00-core/ImportXhsProjectDlg.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/00-core/ImportXhsProjectHelper.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/02-ProjectInfo/InputXhsProjectInfoWizardPage.cs 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/03-MapLocation/SetXhsProjectMapLocationWizardPage.cs 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/05-ImportCompleted/ImportXhsProjectCompletedCtrl.Designer.cs 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/05-ImportCompleted/ImportXhsProjectCompletedCtrl.cs 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/05-ImportCompleted/ImportXhsProjectCompletedCtrl.resx 118 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Application/HStation.Application.Assets.Core/00-core/Mapper.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,82 @@
namespace HStation.Application.Xhs
{
    /// <summary>
    ///
    /// </summary>
    public class Mapper : IRegister
    {
        /// <summary>
        ///
        /// </summary>
        /// <param name="config"></param>
        public void Register(TypeAdapterConfig config)
        {
            #region project
            config.ForType<AddXhsProjectInput, Model.XhsProject>()
             .Map(dest => dest.Paras, src => src.Paras)
             .Map(dest => dest.Flags, src => src.Flags);
            config.ForType<AddXhsProjectExtensionsInput, Model.XhsProject>()
            .Map(dest => dest.Paras, src => src.Paras)
            .Map(dest => dest.Flags, src => src.Flags);
            config.ForType<UpdateXhsProjectInput, Model.XhsProject>()
              .Map(dest => dest.Paras, src => src.Paras)
              .Map(dest => dest.Flags, src => src.Flags);
            config.ForType<UpdateXhsProjectExtensionsInput, Model.XhsProject>()
            .Map(dest => dest.Paras, src => src.Paras)
            .Map(dest => dest.Flags, src => src.Flags);
            config.ForType<Model.XhsProject, XhsProjectDto>()
              .Map(dest => dest.Paras, src => src.Paras)
              .Map(dest => dest.Flags, src => src.Flags);
            #endregion
            #region project-site
            config.ForType<AddXhsProjectSiteInput, Model.XhsProjectSite>()
                .Map(dest => dest.Paras, src => src.Paras)
                .Map(dest => dest.Flags, src => src.Flags)
                .Map(dest => dest.UseStatus, src => Yw.Model.eUseStatus.Enable);
            config.ForType<AddXhsProjectSiteExtensionsInput, Model.XhsProjectSite>()
               .Map(dest => dest.Paras, src => src.Paras)
               .Map(dest => dest.Flags, src => src.Flags)
               .Map(dest => dest.UseStatus, src => Yw.Model.eUseStatus.Enable);
            config.ForType<UpdateXhsProjectSiteInput, Model.XhsProjectSite>()
              .Map(dest => dest.Paras, src => src.Paras)
              .Map(dest => dest.Flags, src => src.Flags);
            config.ForType<Model.XhsProjectSite, XhsProjectSiteDto>()
              .Map(dest => dest.Paras, src => src.Paras)
              .Map(dest => dest.Flags, src => src.Flags);
            #endregion
            #region scheme
            config.ForType<AddXhsSchemeInput, Model.XhsScheme>()
                .Map(dest => dest.Paras, src => src.Paras)
                .Map(dest => dest.Flags, src => src.Flags)
                .Map(dest => dest.UseStatus, src => Yw.Model.eUseStatus.Enable);
            config.ForType<UpdateXhsSchemeInput, Model.XhsScheme>()
              .Map(dest => dest.Paras, src => src.Paras)
              .Map(dest => dest.Flags, src => src.Flags);
            config.ForType<Model.XhsScheme, XhsSchemeDto>()
              .Map(dest => dest.Paras, src => src.Paras)
              .Map(dest => dest.Flags, src => src.Flags);
            #endregion
        }
    }
}
Application/HStation.Application.Assets.Core/01-Project/XhsProject_Controller.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,219 @@
using HStation.Dto.Assets;
namespace HStation.Application
{
    /// <summary>
    /// PumpSeries
    /// </summary>
    [Route("Assets/PumpSeries")]
    [ApiDescriptionSettings("Assets", Name = "资产", Order = 100000)]
    public class PumpSeries_Controller : IDynamicApiController
    {
        private readonly Service.PumpSeries _service = new();
        #region Query
        /// <summary>
        /// èŽ·å–æ‰€æœ‰
        /// </summary>
        [Route("GetAll@V1.0")]
        [HttpGet]
        public List<PumpSeriesDto> GetAll()
        {
            var list = _service.GetAll();
            var vmList = list?.Select(x => new PumpSeriesDto(x)).ToList();
            return vmList;
        }
        /// <summary>
        /// é€šè¿‡ ID èŽ·å–
        /// </summary>
        [Route("GetByID@V1.0")]
        [HttpGet]
        public XhsProjectDto GetByID([FromQuery][Required] IDInput input)
        {
            var model = _service.GetByID(input.ID);
            return model == null ? null : new XhsProjectDto(model);
        }
        /// <summary>
        /// é€šè¿‡ Ids èŽ·å–
        /// </summary>
        [Route("GetByIds@V1.0")]
        [HttpGet]
        public List<XhsProjectDto> GetByIds([FromQuery][Required] IdsInput input)
        {
            var ids = LongListHelper.ToList(input.Ids);
            var list = _service.GetByIds(ids);
            var vmList = list?.Select(x => new XhsProjectDto(x)).ToList();
            return vmList;
        }
        #endregion Query
        #region Insert
        /// <summary>
        /// æ’入一条
        /// </summary>
        [Route("Insert@V1.0")]
        [HttpPost]
        public long Insert([Required] AddXhsProjectInput input)
        {
            if (!string.IsNullOrEmpty(input.TagName))
            {
                if (_service.IsExistTagName(input.TagName))
                {
                    throw YOops.Oh(eResultCode.Alert, InternalErrorCodes.V001, $"TagName:{input.TagName}", "标记已存在");
                }
            }
            var model = input.Adapt<AddXhsProjectInput, Model.XhsProject>();
            model.SortCode = _service.GetMaxSortCode(0) + 1;
            var id = _service.Insert(model);
            return id;
        }
        #endregion Insert
        #region Update
        /// <summary>
        /// æ›´æ–°ä¸€æ¡
        /// </summary>
        [Route("Update@V1.0")]
        [HttpPut]
        public bool Update([Required] UpdateXhsProjectInput input)
        {
            var model = _service.GetByID(input.ID);
            if (model == null)
            {
                throw YOops.Oh(eResultCode.Alert, InternalErrorCodes.D001, $"ID:{input.ID} æ•°æ®ä¸å­˜åœ¨");
            }
            if (!string.IsNullOrEmpty(input.TagName))
            {
                if (_service.IsExistTagNameExceptID(input.TagName, input.ID))
                {
                    throw YOops.Oh(eResultCode.Alert, InternalErrorCodes.V001, $"TagName:{input.TagName}", "标记已存在");
                }
            }
            var rhs = new Model.XhsProject(model);
            input.Adapt(rhs);
            var bol = _service.Update(rhs);
            return bol;
        }
        /// <summary>
        /// æ›´æ–°æŽ’序码
        /// </summary>
        [Route("UpdateSortCode@V1.0")]
        [HttpPut]
        public bool UpdateSortCode([Required] UpdateSortCodeInput input)
        {
            var bol = _service.UpdateSortCode(input.ID, input.SortCode);
            return bol;
        }
        /// <summary>
        /// æ›´æ–°æŽ’序
        /// </summary>
        [Route("UpdateSorter@V1.0")]
        [HttpPut]
        public bool UpdateSorter([Required] List<UpdateSortCodeInput> inputList)
        {
            if (inputList == null || inputList.Count < 1)
            {
                return false;
            }
            var list = inputList.Select(x => x.Adapt<Yw.Model.Sorter>()).ToList();
            var bol = _service.UpdateSorter(list);
            return bol;
        }
        /// <summary>
        /// æ›´æ–° Paras
        /// </summary>
        [Route("UpdateParas@V1.0")]
        [HttpPut]
        public bool UpdateParas([Required] UpdateParasInput input)
        {
            var bol = _service.UpdateParas(input.ID, input.Paras);
            return bol;
        }
        /// <summary>
        /// æ›´æ–° Flags
        /// </summary>
        [Route("UpdateFlags@V1.0")]
        [HttpPut]
        public bool UpdateFlags([Required] UpdateFlagsInput input)
        {
            var bol = _service.UpdateFlags(input.ID, input.Flags);
            return bol;
        }
        /// <summary>
        /// æ›´æ–°TagName
        /// </summary>
        [Route("UpdateTagName@V1.0")]
        [HttpPut]
        public bool UpdateTagName([Required] UpdateTagNameInput input)
        {
            if (!string.IsNullOrEmpty(input.TagName))
            {
                if (_service.IsExistTagNameExceptID(input.TagName, input.ID))
                {
                    throw Oops.Oh(InternalErrorCodes.V001, $"TagName:{input.TagName}", "标记名称已存在");
                }
            }
            var bol = _service.UpdateTagName(input.ID, input.TagName);
            return bol;
        }
        #endregion Update
        #region Exist
        /// <summary>
        /// åˆ¤æ–­TagName是否存在
        /// </summary>
        [Route("IsExistTagName@V1.0")]
        [HttpGet]
        public bool IsExistTagName([FromQuery][Required] TagNameInput input)
        {
            var bol = _service.IsExistTagName(input.TagName);
            return bol;
        }
        /// <summary>
        ///  åˆ¤æ–­TagName是否存在 ExceptID
        /// </summary>
        [Route("IsExistTagNameExceptID@V1.0")]
        [HttpGet]
        public bool IsExistTagNameExceptID([FromQuery][Required] TagNameExceptInput input)
        {
            var bol = _service.IsExistTagNameExceptID(input.TagName, input.ExceptID);
            return bol;
        }
        #endregion Exist
        #region Delete
        /// <summary>
        /// åˆ é™¤
        /// </summary>
        [Route("DeleteByID@V1.0")]
        [HttpDelete]
        public bool DeleteByID([FromQuery][Required] IDInput input)
        {
            var bol = _service.DeleteByID(input.ID, out string Msg);
            if (!bol)
            {
                throw YOops.Oh(eResultCode.Alert, InternalErrorCodes.D001, Msg);
            }
            return bol;
        }
        #endregion Delete
    }
}
Application/HStation.Application.Assets.Core/01-Project/XhsProject_ExtensionsController.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,166 @@
namespace HStation.Application
{
    /// <summary>
    /// XhsProject
    /// </summary>
    [Route("Xhs/Project/Extensions")]
    [ApiDescriptionSettings("Xhs", Name = "项目(Extensions)", Order = 99000)]
    public class XhsProject_ExtensionsController : IDynamicApiController
    {
        private readonly Service.XhsProject _service = new();
        #region Query
        /// <summary>
        /// èŽ·å–æ‰€æœ‰
        /// </summary>
        [Route("GetAll@V1.0")]
        [HttpGet]
        public List<XhsProjectExtensionsDto> GetAll()
        {
            var allList = _service.GetAll();
            if (allList == null || allList.Count < 1)
            {
                return default;
            }
            var allIds = allList.Select(x => x.ID).Distinct().ToList();
            var allSiteList = new HStation.Service.XhsProjectSite().GetByProjectIds(allIds);
            var vmList = new List<XhsProjectExtensionsDto>();
            foreach (var project in allList)
            {
                var siteList = allSiteList?.Where(x => x.ProjectID == project.ID).OrderBy(x => x.SortCode).ToList();
                var vm = new XhsProjectExtensionsDto(project, siteList);
                vmList.Add(vm);
            }
            return vmList;
        }
        /// <summary>
        /// é€šè¿‡ ID èŽ·å–
        /// </summary>
        [Route("GetByID@V1.0")]
        [HttpGet]
        public XhsProjectExtensionsDto GetByID([FromQuery][Required] IDInput input)
        {
            var project = _service.GetByID(input.ID);
            if (project == null)
            {
                return default;
            }
            var siteList = new HStation.Service.XhsProjectSite().GetByProjectID(project.ID);
            return new XhsProjectExtensionsDto(project, siteList);
        }
        /// <summary>
        /// é€šè¿‡ Ids èŽ·å–
        /// </summary>
        [Route("GetByIds@V1.0")]
        [HttpGet]
        public List<XhsProjectExtensionsDto> GetByIds([FromQuery][Required] IdsInput input)
        {
            var ids = LongListHelper.ToList(input.Ids);
            var allList = _service.GetByIds(ids);
            if (allList == null || allList.Count < 1)
            {
                return default;
            }
            var allIds = allList.Select(x => x.ID).Distinct().ToList();
            var allSiteList = new HStation.Service.XhsProjectSite().GetByProjectIds(allIds);
            var vmList = new List<XhsProjectExtensionsDto>();
            foreach (var project in allList)
            {
                var siteList = allSiteList?.Where(x => x.ProjectID == project.ID).OrderBy(x => x.SortCode).ToList();
                var vm = new XhsProjectExtensionsDto(project, siteList);
                vmList.Add(vm);
            }
            return vmList; ;
        }
        #endregion
        #region Insert
        /// <summary>
        /// æ’入一条
        /// </summary>
        [Route("Insert@V1.0")]
        [HttpPost]
        public long Insert([Required] AddXhsProjectExtensionsInput input)
        {
            if (!string.IsNullOrEmpty(input.TagName))
            {
                if (_service.IsExistTagName(input.TagName))
                {
                    throw YOops.Oh(eResultCode.Alert, InternalErrorCodes.V001, $"TagName:{input.TagName}", "标记已存在");
                }
            }
            var project = input.Adapt<AddXhsProjectInput, Model.XhsProject>();
            project.SortCode = _service.GetMaxSortCode(0) + 1;
            var siteList = input.SiteList?.Select(x => x.Adapt<AddXhsProjectSiteExtensionsInput, Model.XhsProjectSite>()).ToList();
            var id = _service.InsertEx(project, siteList);
            return id;
        }
        #endregion
        #region Update
        /// <summary>
        /// æ›´æ–°ä¸€æ¡
        /// </summary>
        [Route("Update@V1.0")]
        [HttpPut]
        public bool Update([Required] UpdateXhsProjectExtensionsInput input)
        {
            var project = _service.GetByID(input.ID);
            var project_rhs = new Model.XhsProject(project);
            input.Adapt(project_rhs);
            List<Model.XhsProjectSite> site_rhs_list = null;
            if (input.SiteList != null && input.SiteList.Count > 0)
            {
                site_rhs_list = new List<Model.XhsProjectSite>();
                var site_id_list = input.SiteList.Select(x => x.ID).Distinct().ToList();
                var site_list = new HStation.Service.XhsProjectSite().GetByIds(site_id_list);
                foreach (var site in site_list)
                {
                    var site_input = input.SiteList.Find(x => x.ID == site.ID);
                    var site_rhs = new Model.XhsProjectSite(site);
                    site_input.Adapt(site_rhs);
                    site_rhs_list.Add(site_rhs);
                }
            }
            var bol = _service.UpdateEx(project_rhs, site_rhs_list);
            return bol;
        }
        #endregion
        #region Delete
        /// <summary>
        /// åˆ é™¤
        /// </summary>
        [Route("DeleteByID@V1.0")]
        [HttpDelete]
        public bool DeleteByID([FromQuery][Required] IDInput input)
        {
            var bol = _service.DeleteExByID(input.ID, out string Msg);
            if (!bol)
            {
                throw YOops.Oh(eResultCode.Alert, InternalErrorCodes.D999, Msg);
            }
            return bol;
        }
        #endregion
    }
}
Application/HStation.Application.Assets.Core/01-Project/XhsProject_StdController.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,41 @@
namespace HStation.Application
{
    /// <summary>
    /// XhsProject
    /// </summary>
    [Route("Xhs/Project/Std")]
    [ApiDescriptionSettings("Xhs", Name = "项目(Std)", Order = 98000)]
    public class XhsProject_StdController : IDynamicApiController
    {
        /// <summary>
        /// èŽ·å–æ‰€æœ‰
        /// </summary>
        [Route("GetAll@V1.0")]
        [HttpGet]
        public List<XhsProjectStdDto> GetAll()
        {
            var keyContent = $"Xhs_Project_Std_GetAll";
            var cacheKey = MemoryCacheKeyHelper.GetKey(MemoryCacheKey.WebApiLevel, MemoryCacheKey.Module, keyContent);
            var vm_list = Yw.MemoryCacheHelper.GetSet(cacheKey, () =>
            {
                var all = new Service.XhsProject().GetAll();
                Service.XhsProject.PublishCache(cacheKey);
                var vmList = all?.Select(x => new XhsProjectStdDto(x)).ToList();
                return vmList;
            }, Yw.Service.ConfigHelper.CacheLevel1);
            return vm_list;
        }
        /// <summary>
        /// é€šè¿‡ ID èŽ·å–
        /// </summary>
        [Route("GetByID@V1.0")]
        [HttpGet]
        public XhsProjectStdDto GetByID([FromQuery][Required] IDInput input)
        {
            var model = new Service.XhsProject().GetByID(input.ID);
            return model == null ? null : new XhsProjectStdDto(model);
        }
    }
}
Application/HStation.Application.Assets.Core/02-project-site/XhsProjectSite_Controller.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,217 @@
namespace HStation.Application
{
    /// <summary>
    /// XhsProjectSite
    /// </summary>
    [Route("Xhs/Project/Site")]
    [ApiDescriptionSettings("Xhs", Name = "项目站点", Order = 90000)]
    public class XhsProjectSite_Controller : IDynamicApiController
    {
        private readonly Service.XhsProjectSite _service = new();
        #region Query
        /// <summary>
        /// èŽ·å–æ‰€æœ‰
        /// </summary>
        [Route("GetAll@V1.0")]
        [HttpGet]
        public List<XhsProjectSiteDto> GetAll()
        {
            var list = _service.GetAll();
            var vmList = list?.Select(x => new XhsProjectSiteDto(x)).ToList();
            return vmList;
        }
        /// <summary>
        /// é€šè¿‡ ProjectID èŽ·å–
        /// </summary>
        [Route("GetByProjectID@V1.0")]
        [HttpGet]
        public List<XhsProjectSiteDto> GetByProjectID([FromQuery][Required] ProjectIDInput input)
        {
            var list = _service.GetByProjectID(input.ProjectID);
            var vmList = list?.Select(x => new XhsProjectSiteDto(x)).ToList();
            return vmList;
        }
        /// <summary>
        /// é€šè¿‡ ID èŽ·å–
        /// </summary>
        [Route("GetByID@V1.0")]
        [HttpGet]
        public XhsProjectSiteDto GetByID([FromQuery][Required] IDInput input)
        {
            var model = _service.GetByID(input.ID);
            return model == null ? null : new XhsProjectSiteDto(model);
        }
        /// <summary>
        /// é€šè¿‡ Ids èŽ·å–
        /// </summary>
        [Route("GetByIds@V1.0")]
        [HttpGet]
        public List<XhsProjectSiteDto> GetByIds([FromQuery][Required] IdsInput input)
        {
            var ids = LongListHelper.ToList(input.Ids);
            var list = _service.GetByIds(ids);
            var vmList = list?.Select(x => new XhsProjectSiteDto(x)).ToList();
            return vmList;
        }
        #endregion
        #region Insert
        /// <summary>
        /// æ’入一条
        /// </summary>
        [Route("Insert@V1.0")]
        [HttpPost]
        public long Insert([Required] AddXhsProjectSiteInput input)
        {
            var project = new HStation.Service.XhsProject().GetByID(input.ProjectID);
            if (project == null)
            {
                throw YOops.Oh(eResultCode.Alert, InternalErrorCodes.D001, $"ProjectID:{input.ProjectID} æ•°æ®ä¸å­˜åœ¨");
            }
            var model = input.Adapt<AddXhsProjectSiteInput, Model.XhsProjectSite>();
            model.SortCode = _service.GetMaxSortCode(input.ProjectID) + 1;
            var id = _service.Insert(model);
            return id;
        }
        #endregion
        #region Update
        /// <summary>
        /// æ›´æ–°ä¸€æ¡
        /// </summary>
        [Route("Update@V1.0")]
        [HttpPut]
        public bool Update([Required] UpdateXhsProjectInput input)
        {
            var model = _service.GetByID(input.ID);
            if (model == null)
            {
                throw YOops.Oh(eResultCode.Alert, InternalErrorCodes.D001, $"ID:{input.ID} æ•°æ®ä¸å­˜åœ¨");
            }
            var rhs = new Model.XhsProjectSite(model);
            input.Adapt(rhs);
            var bol = _service.Update(rhs);
            return bol;
        }
        /// <summary>
        /// æ›´æ–°æŽ’序码
        /// </summary>
        [Route("UpdateSortCode@V1.0")]
        [HttpPut]
        public bool UpdateSortCode([Required] UpdateSortCodeInput input)
        {
            var bol = _service.UpdateSortCode(input.ID, input.SortCode);
            return bol;
        }
        /// <summary>
        /// æ›´æ–°æŽ’序
        /// </summary>
        [Route("UpdateSorter@V1.0")]
        [HttpPut]
        public bool UpdateSorter([Required] List<UpdateSortCodeInput> inputList)
        {
            if (inputList == null || inputList.Count < 1)
            {
                return false;
            }
            var list = inputList.Select(x => x.Adapt<Yw.Model.Sorter>()).ToList();
            var bol = _service.UpdateSorter(list);
            return bol;
        }
        /// <summary>
        /// æ›´æ–° Paras
        /// </summary>
        [Route("UpdateParas@V1.0")]
        [HttpPut]
        public bool UpdateParas([Required] UpdateParasInput input)
        {
            var bol = _service.UpdateParas(input.ID, input.Paras);
            return bol;
        }
        /// <summary>
        /// æ›´æ–° Flags
        /// </summary>
        [Route("UpdateFlags@V1.0")]
        [HttpPut]
        public bool UpdateFlags([Required] UpdateFlagsInput input)
        {
            var bol = _service.UpdateFlags(input.ID, input.Flags);
            return bol;
        }
        /// <summary>
        /// æ›´æ–° UseStatus
        /// </summary>
        [Route("UpdateUseStatus@V1.0")]
        [HttpPut]
        public bool UpdateUseStatus([Required] UpdateUseStatusInput input)
        {
            var bol = _service.UpdateUseStatus(input.ID, (Yw.Model.eUseStatus)input.UseStatus);
            return bol;
        }
        #endregion
        #region Exist
        /// <summary>
        /// é€šè¿‡ ProjectID åˆ¤æ–­æ˜¯å¦å­˜åœ¨
        /// </summary>
        [Route("IsExistByProjectID@V1.0")]
        [HttpGet]
        public bool IsExistByProjectID([FromQuery][Required] ProjectIDInput input)
        {
            return _service.IsExistByProjectID(input.ProjectID);
        }
        #endregion
        #region Delete
        /// <summary>
        /// é€šè¿‡ ID åˆ é™¤
        /// </summary>
        [Route("DeleteByID@V1.0")]
        [HttpDelete]
        public bool DeleteByID([FromQuery][Required] IDInput input)
        {
            var bol = _service.DeleteByID(input.ID, out string Msg);
            if (!bol)
            {
                throw YOops.Oh(eResultCode.Alert, InternalErrorCodes.D999, Msg);
            }
            return bol;
        }
        /// <summary>
        /// é€šè¿‡ ProjectID åˆ é™¤
        /// </summary>
        [Route("DeleteByProjectID@V1.0")]
        [HttpDelete]
        public bool DeleteByProjectID([FromQuery][Required] ProjectIDInput input)
        {
            var bol = _service.DeleteByProjectID(input.ProjectID, out string Msg);
            if (!bol)
            {
                throw YOops.Oh(eResultCode.Alert, InternalErrorCodes.D999, Msg);
            }
            return bol;
        }
        #endregion
    }
}
Application/HStation.Application.Assets.Core/02-project-site/XhsProjectSite_StdController.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,63 @@
namespace HStation.Application
{
    /// <summary>
    /// XhsProjectSite
    /// </summary>
    [Route("Xhs/Project/Site/Std")]
    [ApiDescriptionSettings("Xhs", Name = "项目站点(Std)", Order = 89000)]
    public class XhsProjectSite_StdController : IDynamicApiController
    {
        /// <summary>
        /// èŽ·å–æ‰€æœ‰
        /// </summary>
        [Route("GetAll@V1.0")]
        [HttpGet]
        public List<XhsProjectSiteStdDto> GetAll()
        {
            var keyContent = $"Xhs_Project_Site_Std_GetAll";
            var cacheKey = MemoryCacheKeyHelper.GetKey(MemoryCacheKey.WebApiLevel, MemoryCacheKey.Module, keyContent);
            var vm_list = Yw.MemoryCacheHelper.GetSet(cacheKey, () =>
            {
                var all = new Service.XhsProjectSite().GetAll();
                Service.XhsProjectSite.PublishCache(cacheKey);
                var vmList = all?.Select(x => new XhsProjectSiteStdDto(x)).ToList();
                return vmList;
            }, Yw.Service.ConfigHelper.CacheLevel1);
            return vm_list;
        }
        /// <summary>
        /// é€šè¿‡ ProjectID èŽ·å–
        /// </summary>
        [Route("GetByProjectID@V1.0")]
        [HttpGet]
        public List<XhsProjectSiteStdDto> GetByProjectID([FromQuery][Required] ProjectIDInput input)
        {
            var keyContent = $"Xhs_Project_Site_Std_GetByProjectID_{input.ProjectID}";
            var cacheKey = MemoryCacheKeyHelper.GetKey(MemoryCacheKey.WebApiLevel, MemoryCacheKey.Module, keyContent);
            var vm_list = Yw.MemoryCacheHelper.GetSet(cacheKey, () =>
            {
                var all = new Service.XhsProjectSite().GetByProjectID(input.ProjectID);
                Service.XhsProjectSite.PublishCache(cacheKey);
                var vmList = all?.Select(x => new XhsProjectSiteStdDto(x)).ToList();
                return vmList;
            }, Yw.Service.ConfigHelper.CacheLevel3);
            return vm_list;
        }
        /// <summary>
        /// é€šè¿‡ ProjectID èŽ·å–é»˜è®¤
        /// </summary>
        [Route("GetDefaultByProjectID@V1.0")]
        [HttpGet]
        public XhsProjectSiteStdDto GetDefaultByProjectID([FromQuery][Required] ProjectIDInput input)
        {
            var model = new HStation.Service.XhsProjectSite().GetDefaultByProjectID(input.ProjectID);
            return model == null ? null : new XhsProjectSiteStdDto(model);
        }
    }
}
Application/HStation.Application.Assets.Core/03-scheme/XhsScheme_Controller.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,237 @@
namespace HStation.Application
{
    /// <summary>
    /// XhsScheme
    /// </summary>
    [Route("Xhs/Scheme")]
    [ApiDescriptionSettings("Xhs", Name = "方案", Order = 80000)]
    public class XhsScheme_Controller : IDynamicApiController
    {
        private readonly Service.XhsScheme _service = new();
        #region Query
        /// <summary>
        /// èŽ·å–æ‰€æœ‰
        /// </summary>
        [Route("GetAll@V1.0")]
        [HttpGet]
        public List<XhsSchemeDto> GetAll()
        {
            var list = _service.GetAll();
            var vmList = list?.Select(x => new XhsSchemeDto(x)).ToList();
            return vmList;
        }
        /// <summary>
        /// é€šè¿‡ SiteID èŽ·å–
        /// </summary>
        [Route("GetBySiteID@V1.0")]
        [HttpGet]
        public List<XhsSchemeDto> GetBySiteID([FromQuery][Required] SiteIDInput input)
        {
            var list = _service.GetBySiteID(input.SiteID);
            var vmList = list?.Select(x => new XhsSchemeDto(x)).ToList();
            return vmList;
        }
        /// <summary>
        /// é€šè¿‡ SiteIds èŽ·å–
        /// </summary>
        [Route("GetBySiteIds@V1.0")]
        [HttpGet]
        public List<XhsSchemeDto> GetBySiteIds([FromQuery][Required] SiteIdsInput input)
        {
            var siteIds = LongListHelper.ToList(input.SiteIds);
            var list = _service.GetBySiteIds(siteIds);
            var vmList = list?.Select(x => new XhsSchemeDto(x)).ToList();
            return vmList;
        }
        /// <summary>
        /// é€šè¿‡ ProjectID èŽ·å–
        /// </summary>
        [Route("GetByProjectID@V1.0")]
        [HttpGet]
        public List<XhsSchemeDto> GetByProjectID([FromQuery][Required] ProjectIDInput input)
        {
            var list = _service.GetByProjectID(input.ProjectID);
            var vmList = list?.Select(x => new XhsSchemeDto(x)).ToList();
            return vmList;
        }
        /// <summary>
        /// é€šè¿‡ ID èŽ·å–
        /// </summary>
        [Route("GetByID@V1.0")]
        [HttpGet]
        public XhsSchemeDto GetByID([FromQuery][Required] IDInput input)
        {
            var model = _service.GetByID(input.ID);
            return model == null ? null : new XhsSchemeDto(model);
        }
        /// <summary>
        /// é€šè¿‡ Ids èŽ·å–
        /// </summary>
        [Route("GetByIds@V1.0")]
        [HttpGet]
        public List<XhsSchemeDto> GetByIds([FromQuery][Required] IdsInput input)
        {
            var ids = LongListHelper.ToList(input.Ids);
            var list = _service.GetByIds(ids);
            var vmList = list?.Select(x => new XhsSchemeDto(x)).ToList();
            return vmList;
        }
        #endregion
        #region Insert
        /// <summary>
        /// æ’入一条
        /// </summary>
        [Route("Insert@V1.0")]
        [HttpPost]
        public long Insert([Required] AddXhsSchemeInput input)
        {
            var site = new HStation.Service.XhsProjectSite().GetByID(input.SiteID);
            if (site == null)
            {
                throw YOops.Oh(eResultCode.Alert, InternalErrorCodes.D001, $"SiteID:{input.SiteID} æ•°æ®ä¸å­˜åœ¨");
            }
            var model = input.Adapt<AddXhsSchemeInput, Model.XhsScheme>();
            model.SortCode = _service.GetMaxSortCode(input.SiteID) + 1;
            var id = _service.Insert(model);
            return id;
        }
        #endregion
        #region Update
        /// <summary>
        /// æ›´æ–°ä¸€æ¡
        /// </summary>
        [Route("Update@V1.0")]
        [HttpPut]
        public bool Update([Required] UpdateXhsProjectInput input)
        {
            var model = _service.GetByID(input.ID);
            if (model == null)
            {
                throw YOops.Oh(eResultCode.Alert, InternalErrorCodes.D001, $"ID:{input.ID} æ•°æ®ä¸å­˜åœ¨");
            }
            var rhs = new Model.XhsScheme(model);
            input.Adapt(rhs);
            var bol = _service.Update(rhs);
            return bol;
        }
        /// <summary>
        /// æ›´æ–°æŽ’序码
        /// </summary>
        [Route("UpdateSortCode@V1.0")]
        [HttpPut]
        public bool UpdateSortCode([Required] UpdateSortCodeInput input)
        {
            var bol = _service.UpdateSortCode(input.ID, input.SortCode);
            return bol;
        }
        /// <summary>
        /// æ›´æ–°æŽ’序
        /// </summary>
        [Route("UpdateSorter@V1.0")]
        [HttpPut]
        public bool UpdateSorter([Required] List<UpdateSortCodeInput> inputList)
        {
            if (inputList == null || inputList.Count < 1)
            {
                return false;
            }
            var list = inputList.Select(x => x.Adapt<Yw.Model.Sorter>()).ToList();
            var bol = _service.UpdateSorter(list);
            return bol;
        }
        /// <summary>
        /// æ›´æ–° Paras
        /// </summary>
        [Route("UpdateParas@V1.0")]
        [HttpPut]
        public bool UpdateParas([Required] UpdateParasInput input)
        {
            var bol = _service.UpdateParas(input.ID, input.Paras);
            return bol;
        }
        /// <summary>
        /// æ›´æ–° Flags
        /// </summary>
        [Route("UpdateFlags@V1.0")]
        [HttpPut]
        public bool UpdateFlags([Required] UpdateFlagsInput input)
        {
            var bol = _service.UpdateFlags(input.ID, input.Flags);
            return bol;
        }
        /// <summary>
        /// æ›´æ–° UseStatus
        /// </summary>
        [Route("UpdateUseStatus@V1.0")]
        [HttpPut]
        public bool UpdateUseStatus([Required] UpdateUseStatusInput input)
        {
            var bol = _service.UpdateUseStatus(input.ID, (Yw.Model.eUseStatus)input.UseStatus);
            return bol;
        }
        #endregion
        #region Exist
        /// <summary>
        /// é€šè¿‡ SiteID åˆ¤æ–­æ˜¯å¦å­˜åœ¨
        /// </summary>
        [Route("IsExistBySiteID@V1.0")]
        [HttpGet]
        public bool IsExistBySiteID([FromQuery][Required] SiteIDInput input)
        {
            return _service.IsExistBySiteID(input.SiteID);
        }
        /// <summary>
        /// é€šè¿‡ ProjectID åˆ¤æ–­æ˜¯å¦å­˜åœ¨
        /// </summary>
        [Route("IsExistByProjectID@V1.0")]
        [HttpGet]
        public bool IsExistByProjectID([FromQuery][Required] ProjectIDInput input)
        {
            return _service.IsExistByProjectID(input.ProjectID);
        }
        #endregion
        #region Delete
        /// <summary>
        /// é€šè¿‡ ID åˆ é™¤
        /// </summary>
        [Route("DeleteByID@V1.0")]
        [HttpDelete]
        public bool DeleteByID([FromQuery][Required] IDInput input)
        {
            var bol = _service.DeleteByID(input.ID, out string Msg);
            if (!bol)
            {
                throw YOops.Oh(eResultCode.Alert, InternalErrorCodes.D999, Msg);
            }
            return bol;
        }
        #endregion
    }
}
Application/HStation.Application.Assets.Core/03-scheme/XhsScheme_StdController.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,74 @@
namespace HStation.Application
{
    /// <summary>
    /// XhsScheme
    /// </summary>
    [Route("Xhs/Scheme/Std")]
    [ApiDescriptionSettings("Xhs", Name = "方案(Std)", Order = 79000)]
    public class XhsScheme_StdController : IDynamicApiController
    {
        /// <summary>
        /// èŽ·å–æ‰€æœ‰
        /// </summary>
        [Route("GetAll@V1.0")]
        [HttpGet]
        public List<XhsSchemeStdDto> GetAll()
        {
            var keyContent = $"Xhs_Scheme_Std_GetAll";
            var cacheKey = MemoryCacheKeyHelper.GetKey(MemoryCacheKey.WebApiLevel, MemoryCacheKey.Module, keyContent);
            var vm_list = Yw.MemoryCacheHelper.GetSet(cacheKey, () =>
            {
                var all = new Service.XhsScheme().GetAll();
                Service.XhsScheme.PublishCache(cacheKey);
                var vmList = all?.Select(x => new XhsSchemeStdDto(x)).ToList();
                return vmList;
            }, Yw.Service.ConfigHelper.CacheLevel1);
            return vm_list;
        }
        /// <summary>
        /// é€šè¿‡ ProjectID èŽ·å–
        /// </summary>
        [Route("GetByProjectID@V1.0")]
        [HttpGet]
        public List<XhsSchemeStdDto> GetByProjectID([FromQuery][Required] ProjectIDInput input)
        {
            var keyContent = $"Xhs_Scheme_Std_GetByProjectID_{input.ProjectID}";
            var cacheKey = MemoryCacheKeyHelper.GetKey(MemoryCacheKey.WebApiLevel, MemoryCacheKey.Module, keyContent);
            var vm_list = Yw.MemoryCacheHelper.GetSet(cacheKey, () =>
            {
                var all = new Service.XhsScheme().GetByProjectID(input.ProjectID);
                Service.XhsScheme.PublishCache(cacheKey);
                var vmList = all?.Select(x => new XhsSchemeStdDto(x)).ToList();
                return vmList;
            }, Yw.Service.ConfigHelper.CacheLevel3);
            return vm_list;
        }
        /// <summary>
        /// é€šè¿‡ Site èŽ·å–
        /// </summary>
        [Route("GetBySiteID@V1.0")]
        [HttpGet]
        public List<XhsSchemeStdDto> GetBySiteID([FromQuery][Required] SiteIDInput input)
        {
            var keyContent = $"Xhs_Scheme_Std_GetBySiteID_{input.SiteID}";
            var cacheKey = MemoryCacheKeyHelper.GetKey(MemoryCacheKey.WebApiLevel, MemoryCacheKey.Module, keyContent);
            var vm_list = Yw.MemoryCacheHelper.GetSet(cacheKey, () =>
            {
                var all = new Service.XhsScheme().GetBySiteID(input.SiteID);
                Service.XhsScheme.PublishCache(cacheKey);
                var vmList = all?.Select(x => new XhsSchemeStdDto(x)).ToList();
                return vmList;
            }, Yw.Service.ConfigHelper.CacheLevel4);
            return vm_list;
        }
    }
}
Application/HStation.Application.Assets.Core/09-dbfirst/XhsDbFirst_Controller.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
namespace Yw.Application
{
    /// <summary>
    /// DbFirst
    /// </summary>
    [Route("Xhs/DbFirst")]
    [ApiDescriptionSettings("Xhs", Name = "DbFirst", Order = 10000)]
    public class XhsDbFirst_Controller : IDynamicApiController
    {
        /// <summary>
        /// åˆå§‹åŒ–
        /// </summary>
        [Route("Initial@V1.0")]
        [HttpGet]
        public bool Initial()
        {
            var bol = HStation.Service.Xhs.DbFirstHelper.Initial(out string Msg);
            if (!bol)
            {
                throw YOops.Oh(eResultCode.Alert, InternalErrorCodes.L001, Msg);
            }
            return bol;
        }
    }
}
Application/HStation.Application.Assets.Core/GlobalUsings.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
global using Furion.DynamicApiController;
global using Furion.FriendlyException;
global using HStation.Dto;
global using HStation.Xhs;
global using Mapster;
global using Microsoft.AspNetCore.Mvc;
global using System.ComponentModel.DataAnnotations;
global using Yw.Dto;
global using Yw.Untity;
global using HStation.Dto.Xhs;
Application/HStation.Application.Assets.Core/HStation.Application.Assets.Core.csproj
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net6.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
  </PropertyGroup>
  <ItemGroup>
    <ProjectReference Include="..\..\Dto\HStation.Dto.Assets.Core\HStation.Dto.Assets.Core.csproj" />
    <ProjectReference Include="..\HStation.Application.Core\HStation.Application.Core.csproj" />
  </ItemGroup>
</Project>
BLL/HStation.BLL.Assets.Core/02-httpclient/01-PumpProduct/Class1.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,61 @@
using Yw.CAL.HttpClient;
namespace HStation.CAL.HttpClient
{
    /// <summary>
    ///
    /// </summary>
    public class PumpGroup : BaseCAL_Paras_Flags_TagName_Sorter<AddPumpGroupDto, UpdatePumpGroupDto, PumpGroupDto>, IPumpGroup
    {
        protected override string Prefix
        {
            get { return $"{HStation.BLL.Xhs.ConfigHelper.HttpUrl}/Xhs/Project"; }
        }
        /// <summary>
        ///
        /// </summary>
        public async Task<bool> Publish(long ID)
        {
            return await GetUrl("Publish@V1.0").Put<bool>(new { ID });
        }
        /// <summary>
        ///
        /// </summary>
        public async Task<bool> Deprecate(long ID)
        {
            return await GetUrl("Deprecate@V1.0").Put<bool>(new { ID });
        }
        /// <summary>
        ///
        /// </summary>
        public async Task<bool> IsExistTagName(string TagName)
        {
            var paras = new List<(string Name, object Value)>()
            {
                (nameof(TagName),TagName)
            };
            return await GetUrl("IsExistTagName@V1.0").Get<bool>(paras);
        }
        /// <summary>
        ///
        /// </summary>
        public async Task<bool> IsExistTagNameExceptID(string TagName, long ExceptID)
        {
            var paras = new List<(string Name, object Value)>()
            {
                (nameof(TagName),TagName),
                (nameof(ExceptID),ExceptID)
            };
            return await GetUrl("IsExistTagNameExceptID@V1.0").Get<bool>(paras);
        }
        public bool DeleteEx(long ID)
        {
            throw new NotImplementedException();
        }
    }
}
BLL/HStation.BLL.Assets.Core/HStation.BLL.Assets.Core.csproj
@@ -7,7 +7,7 @@
  </PropertyGroup>
  <ItemGroup>
    <Folder Include="02-httpclient\" />
    <Compile Remove="02-httpclient\01-PumpProduct\Class1.cs" />
  </ItemGroup>
  <ItemGroup>
@@ -16,4 +16,8 @@
    <ProjectReference Include="..\HStation.BLL.Core\HStation.BLL.Core.csproj" />
  </ItemGroup>
  <ItemGroup>
    <Folder Include="02-httpclient\01-PumpProduct\" />
  </ItemGroup>
</Project>
HStation.Xhs.Core.sln
@@ -123,6 +123,8 @@
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HStation.WinFrmUI.Auth.Core", "WinFrmUI\HStation.WinFrmUI.Auth.Core\HStation.WinFrmUI.Auth.Core.csproj", "{62B68CCE-1FDA-42EB-8BBC-2053EB0E04CA}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HStation.Application.Assets.Core", "Application\HStation.Application.Assets.Core\HStation.Application.Assets.Core.csproj", "{6BC4873C-FB0D-46F1-ADCD-C1FD96B29A5D}"
EndProject
Global
    GlobalSection(SolutionConfigurationPlatforms) = preSolution
        Debug|Any CPU = Debug|Any CPU
@@ -1018,6 +1020,24 @@
        {62B68CCE-1FDA-42EB-8BBC-2053EB0E04CA}.Release|x64.Build.0 = Release|Any CPU
        {62B68CCE-1FDA-42EB-8BBC-2053EB0E04CA}.Release|x86.ActiveCfg = Release|Any CPU
        {62B68CCE-1FDA-42EB-8BBC-2053EB0E04CA}.Release|x86.Build.0 = Release|Any CPU
        {6BC4873C-FB0D-46F1-ADCD-C1FD96B29A5D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {6BC4873C-FB0D-46F1-ADCD-C1FD96B29A5D}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {6BC4873C-FB0D-46F1-ADCD-C1FD96B29A5D}.Debug|x64.ActiveCfg = Debug|Any CPU
        {6BC4873C-FB0D-46F1-ADCD-C1FD96B29A5D}.Debug|x64.Build.0 = Debug|Any CPU
        {6BC4873C-FB0D-46F1-ADCD-C1FD96B29A5D}.Debug|x86.ActiveCfg = Debug|Any CPU
        {6BC4873C-FB0D-46F1-ADCD-C1FD96B29A5D}.Debug|x86.Build.0 = Debug|Any CPU
        {6BC4873C-FB0D-46F1-ADCD-C1FD96B29A5D}.dll_test|Any CPU.ActiveCfg = Debug|Any CPU
        {6BC4873C-FB0D-46F1-ADCD-C1FD96B29A5D}.dll_test|Any CPU.Build.0 = Debug|Any CPU
        {6BC4873C-FB0D-46F1-ADCD-C1FD96B29A5D}.dll_test|x64.ActiveCfg = Debug|Any CPU
        {6BC4873C-FB0D-46F1-ADCD-C1FD96B29A5D}.dll_test|x64.Build.0 = Debug|Any CPU
        {6BC4873C-FB0D-46F1-ADCD-C1FD96B29A5D}.dll_test|x86.ActiveCfg = Debug|Any CPU
        {6BC4873C-FB0D-46F1-ADCD-C1FD96B29A5D}.dll_test|x86.Build.0 = Debug|Any CPU
        {6BC4873C-FB0D-46F1-ADCD-C1FD96B29A5D}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {6BC4873C-FB0D-46F1-ADCD-C1FD96B29A5D}.Release|Any CPU.Build.0 = Release|Any CPU
        {6BC4873C-FB0D-46F1-ADCD-C1FD96B29A5D}.Release|x64.ActiveCfg = Release|Any CPU
        {6BC4873C-FB0D-46F1-ADCD-C1FD96B29A5D}.Release|x64.Build.0 = Release|Any CPU
        {6BC4873C-FB0D-46F1-ADCD-C1FD96B29A5D}.Release|x86.ActiveCfg = Release|Any CPU
        {6BC4873C-FB0D-46F1-ADCD-C1FD96B29A5D}.Release|x86.Build.0 = Release|Any CPU
    EndGlobalSection
    GlobalSection(SolutionProperties) = preSolution
        HideSolutionNode = FALSE
@@ -1072,6 +1092,7 @@
        {2F469712-C0AB-405C-BCA3-410612141D49} = {E956660D-6E09-417B-9A3C-27888AF69266}
        {AE2775AE-3C2D-49CB-BD3C-2FF5D4AE5B53} = {4F0A7BA1-6ED6-4F4F-A3B4-B9B3A133D869}
        {62B68CCE-1FDA-42EB-8BBC-2053EB0E04CA} = {4F0A7BA1-6ED6-4F4F-A3B4-B9B3A133D869}
        {6BC4873C-FB0D-46F1-ADCD-C1FD96B29A5D} = {276C57AF-5A9C-4A50-A79E-A5098D322FE9}
    EndGlobalSection
    GlobalSection(ExtensibilityGlobals) = postSolution
        SolutionGuid = {E02989A8-9B6F-43E5-AACA-790328215089}
WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/00-core/ImportXhsProjectDlg.cs
@@ -33,14 +33,15 @@
            _wizard = new ImportXhsProjectManager(_vm);
            _wizard.SelectedPageChangedEvent += _wizard_SelectedPageChangedEvent;
            _wizard.SelectedPageStateChangedEvent += _wizard_SelectedPageStateChangedEvent; ;
            InputXhsProjectInfoWizardPage.AutoAddItem += AutoAddItem;
            InputXhsProjectInfoWizardPage.DeleteItem += DeleteItem;
            //  InputXhsProjectInfoWizardPage.AutoAddItem += AutoAddItem;
            //   InputXhsProjectInfoWizardPage.DeleteItem += DeleteItem;
            _wizard.InitialManager(new IWizardPage<ImportXhsProjectViewModel>[] {
                this.inputXhsProjectInfoWizardPage,
                this.setXhsProjectMapLocationWizardPage,
                this.generateXhsProjectWizardPage,
                 this.importXhsProjectCompletedCtrl1
            });
            AutoAddItem();
        }
        //增加导航条item
WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/00-core/ImportXhsProjectHelper.cs
@@ -22,6 +22,8 @@
        {
            var msg = string.Empty;
            var IsContinue = true;
            #region ç¬¬ä¸€æ­¥ ä¸´æ—¶æ–‡ä»¶å¤„理(进度5%)
            msg = "开始导入项目...";
@@ -121,7 +123,18 @@
            if (!bol)
            {
                feedBackMsg?.Invoke("模型文件解析失败!!!", Color.Red);
                return false;
                //return false;
            }
            else
            {
                 IsContinue = false;
            }
            if (IsContinue)
            {
                feedBackMsg?.Invoke("项目导入成功。。。", Color.Green);
                feedBackProgress?.Invoke(100, 100);
                return true;
            }
            var tempFolderInfo = new DirectoryInfo(tempFolder);
WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/02-ProjectInfo/InputXhsProjectInfoWizardPage.cs
@@ -56,16 +56,16 @@
            get
            {
                _vm.ZipFile = this.btnEditSelectModelFile.Text.Trim();
                if (_vm.ZipFile != string.Empty)
                {
                    AllowImport = true;
                    AutoAddItem.Invoke();
                }
                else
                {
                    AllowImport = false;
                    DeleteItem.Invoke();
                }
                /*  if (_vm.ZipFile != string.Empty)
                  {
                      AllowImport = true;
                      AutoAddItem.Invoke();
                  }
                  else
                  {
                      AllowImport = false;
                      DeleteItem.Invoke();
                  }*/
                return _isInitialize;
            }
        }
WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/03-MapLocation/SetXhsProjectMapLocationWizardPage.cs
@@ -26,16 +26,16 @@
            this.mapSetSimpleMarkerContainer1.LoadCompletedEvent += MapSetSimpleMarkerContainer1_LoadCompletedEvent;
            this.mapSetSimpleMarkerContainer1.SetMarkerEvent += MapSetSimpleMarkerContainer1_SetMarkerEvent;
            await this.mapSetSimpleMarkerContainer1.InitialContainer();
            if (!InputXhsProjectInfoWizardPage.AllowImport)
            {
                AllowNext = false;
                AllowComplete = true;
            }
            else
            {
                AllowNext = true;
                AllowComplete = false;
            }
            /*  if (!InputXhsProjectInfoWizardPage.AllowImport)
              {
                  AllowNext = false;
                  AllowComplete = true;
              }
              else
              {
                  AllowNext = true;
                  AllowComplete = false;
              }*/
            PageStateChangedEvent.Invoke();
        }
@@ -64,8 +64,8 @@
        /// </summary>
        public bool AllowNext
        {
            get;
            set;
            get { return true; }
            set { }
        }
        /// <summary>
@@ -81,8 +81,8 @@
        /// </summary>
        public bool AllowComplete
        {
            get;
            set;
            get { return false; }
            set { }
        }
        /// <summary>
WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/05-ImportCompleted/ImportXhsProjectCompletedCtrl.Designer.cs
@@ -30,10 +30,10 @@
        {
            ComponentResourceManager resources = new ComponentResourceManager(typeof(ImportXhsProjectCompletedCtrl));
            stepProgressBar1 = new DevExpress.XtraEditors.StepProgressBar();
            stepItemForHydro = new DevExpress.XtraEditors.StepProgressBarItem();
            stepItemForProject = new DevExpress.XtraEditors.StepProgressBarItem();
            stepItemForHydroRelation = new DevExpress.XtraEditors.StepProgressBarItem();
            stepItemFormMap = new DevExpress.XtraEditors.StepProgressBarItem();
            stepItemForHydroRelation = new DevExpress.XtraEditors.StepProgressBarItem();
            stepItemForHydro = new DevExpress.XtraEditors.StepProgressBarItem();
            stepItemForBimfaceUpload = new DevExpress.XtraEditors.StepProgressBarItem();
            stepItemForBimfaceRelation = new DevExpress.XtraEditors.StepProgressBarItem();
            stepItemForBimfaceTranslate = new DevExpress.XtraEditors.StepProgressBarItem();
@@ -45,8 +45,8 @@
            stepProgressBar1.ContentAlignment = ContentAlignment.MiddleCenter;
            stepProgressBar1.Dock = DockStyle.Fill;
            stepProgressBar1.Items.Add(stepItemForProject);
            stepProgressBar1.Items.Add(stepItemForHydroRelation);
            stepProgressBar1.Items.Add(stepItemFormMap);
            stepProgressBar1.Items.Add(stepItemForHydroRelation);
            stepProgressBar1.Items.Add(stepItemForHydro);
            stepProgressBar1.Items.Add(stepItemForBimfaceUpload);
            stepProgressBar1.Items.Add(stepItemForBimfaceRelation);
@@ -54,20 +54,9 @@
            stepProgressBar1.Location = new Point(0, 0);
            stepProgressBar1.Name = "stepProgressBar1";
            stepProgressBar1.Orientation = Orientation.Vertical;
            stepProgressBar1.SelectedItemIndex = 5;
            stepProgressBar1.ShadowDrawMode = DevExpress.XtraEditors.StepProgressBarShadowDrawMode.ActiveElements | DevExpress.XtraEditors.StepProgressBarShadowDrawMode.InactiveElements;
            stepProgressBar1.Size = new Size(941, 615);
            stepProgressBar1.TabIndex = 0;
            //
            // stepItemForHydro
            //
            stepItemForHydro.ContentBlock1.ActiveStateImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("stepItemForHydro.ContentBlock1.ActiveStateImageOptions.SvgImage");
            stepItemForHydro.ContentBlock1.InactiveStateImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("stepItemForHydro.ContentBlock1.InactiveStateImageOptions.SvgImage");
            stepItemForHydro.ContentBlock2.Caption = "解析水力模型";
            stepItemForHydro.Name = "stepItemForHydro";
            stepItemForHydro.Options.Indicator.ActiveStateImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("stepItemForHydro.Options.Indicator.ActiveStateImageOptions.SvgImage");
            stepItemForHydro.Options.Indicator.ActiveStateImageOptions.SvgImageSize = new Size(24, 24);
            stepItemForHydro.State = DevExpress.XtraEditors.StepProgressBarItemState.Active;
            // 
            // stepItemForProject
            // 
@@ -77,17 +66,6 @@
            stepItemForProject.Name = "stepItemForProject";
            stepItemForProject.Options.Indicator.ActiveStateImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("stepItemForProject.Options.Indicator.ActiveStateImageOptions.SvgImage");
            stepItemForProject.Options.Indicator.ActiveStateImageOptions.SvgImageSize = new Size(24, 24);
            stepItemForProject.State = DevExpress.XtraEditors.StepProgressBarItemState.Active;
            //
            // stepItemForHydroRelation
            //
            stepItemForHydroRelation.ContentBlock1.ActiveStateImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("stepItemForHydroRelation.ContentBlock1.ActiveStateImageOptions.SvgImage");
            stepItemForHydroRelation.ContentBlock1.InactiveStateImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("stepItemForHydroRelation.ContentBlock1.InactiveStateImageOptions.SvgImage");
            stepItemForHydroRelation.ContentBlock2.Caption = "关联水力模型";
            stepItemForHydroRelation.Name = "stepItemForHydroRelation";
            stepItemForHydroRelation.Options.Indicator.ActiveStateImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("stepItemForHydroRelation.Options.Indicator.ActiveStateImageOptions.SvgImage");
            stepItemForHydroRelation.Options.Indicator.ActiveStateImageOptions.SvgImageSize = new Size(24, 24);
            stepItemForHydroRelation.State = DevExpress.XtraEditors.StepProgressBarItemState.Active;
            // 
            // stepItemFormMap
            // 
@@ -97,7 +75,24 @@
            stepItemFormMap.Name = "stepItemFormMap";
            stepItemFormMap.Options.Indicator.ActiveStateImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("stepItemFormMap.Options.Indicator.ActiveStateImageOptions.SvgImage");
            stepItemFormMap.Options.Indicator.ActiveStateImageOptions.SvgImageSize = new Size(24, 24);
            stepItemFormMap.State = DevExpress.XtraEditors.StepProgressBarItemState.Active;
            //
            // stepItemForHydroRelation
            //
            stepItemForHydroRelation.ContentBlock1.ActiveStateImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("stepItemForHydroRelation.ContentBlock1.ActiveStateImageOptions.SvgImage");
            stepItemForHydroRelation.ContentBlock1.InactiveStateImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("stepItemForHydroRelation.ContentBlock1.InactiveStateImageOptions.SvgImage");
            stepItemForHydroRelation.ContentBlock2.Caption = "关联水力模型";
            stepItemForHydroRelation.Name = "stepItemForHydroRelation";
            stepItemForHydroRelation.Options.Indicator.ActiveStateImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("stepItemForHydroRelation.Options.Indicator.ActiveStateImageOptions.SvgImage");
            stepItemForHydroRelation.Options.Indicator.ActiveStateImageOptions.SvgImageSize = new Size(24, 24);
            //
            // stepItemForHydro
            //
            stepItemForHydro.ContentBlock1.ActiveStateImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("stepItemForHydro.ContentBlock1.ActiveStateImageOptions.SvgImage");
            stepItemForHydro.ContentBlock1.InactiveStateImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("stepItemForHydro.ContentBlock1.InactiveStateImageOptions.SvgImage");
            stepItemForHydro.ContentBlock2.Caption = "解析水力模型";
            stepItemForHydro.Name = "stepItemForHydro";
            stepItemForHydro.Options.Indicator.ActiveStateImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("stepItemForHydro.Options.Indicator.ActiveStateImageOptions.SvgImage");
            stepItemForHydro.Options.Indicator.ActiveStateImageOptions.SvgImageSize = new Size(24, 24);
            // 
            // stepItemForBimfaceUpload
            // 
@@ -107,7 +102,6 @@
            stepItemForBimfaceUpload.Name = "stepItemForBimfaceUpload";
            stepItemForBimfaceUpload.Options.Indicator.ActiveStateImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("stepItemForBimfaceUpload.Options.Indicator.ActiveStateImageOptions.SvgImage");
            stepItemForBimfaceUpload.Options.Indicator.ActiveStateImageOptions.SvgImageSize = new Size(24, 24);
            stepItemForBimfaceUpload.State = DevExpress.XtraEditors.StepProgressBarItemState.Active;
            // 
            // stepItemForBimfaceRelation
            // 
@@ -117,7 +111,6 @@
            stepItemForBimfaceRelation.Name = "stepItemForBimfaceRelation";
            stepItemForBimfaceRelation.Options.Indicator.ActiveStateImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("stepItemForBimfaceRelation.Options.Indicator.ActiveStateImageOptions.SvgImage");
            stepItemForBimfaceRelation.Options.Indicator.ActiveStateImageOptions.SvgImageSize = new Size(24, 24);
            stepItemForBimfaceRelation.State = DevExpress.XtraEditors.StepProgressBarItemState.Active;
            // 
            // stepItemForBimfaceTranslate
            // 
WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/05-ImportCompleted/ImportXhsProjectCompletedCtrl.cs
@@ -50,6 +50,23 @@
                    }
                }
            }
            else
            {
                this.stepProgressBar1.SelectNext();
                if (vm.ProjectID.HasValue)
                {
                    this.stepProgressBar1.SelectNext();
                    if (!vm.MapInfoID.HasValue)
                    {
                        this.stepItemFormMap.ContentBlock2.Description = "自动跳过";
                    }
                    this.stepItemForBimfaceRelation.ContentBlock2.Description = "未上传模型或模型有误 å·²è·³è¿‡...";
                    this.stepItemForBimfaceUpload.ContentBlock2.Description = "未上传模型或模型有误 å·²è·³è¿‡...";
                    this.stepItemForHydro.ContentBlock2.Description = "未上传模型或模型有误 å·²è·³è¿‡...";
                     this.stepItemForHydroRelation.ContentBlock2.Description = "未上传模型或模型有误 å·²è·³è¿‡...";
                    this.stepItemForBimfaceTranslate.ContentBlock2.Description = "未上传模型或模型有误 å·²è·³è¿‡...";
                }
            }
        }
        /// <summary>
WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/05-ImportCompleted/ImportXhsProjectCompletedCtrl.resx
@@ -189,6 +189,65 @@
        ZWVuIiAvPg0KICA8L2c+DQo8L3N2Zz4L
</value>
  </data>
  <data name="stepItemFormMap.ContentBlock1.ActiveStateImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAP4CAAAC77u/
        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
        Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
        MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkdyZWVue2ZpbGw6IzAzOUMyMzt9Cgku
        QmxhY2t7ZmlsbDojNzI3MjcyO30KCS5SZWR7ZmlsbDojRDExQzFDO30KCS5ZZWxsb3d7ZmlsbDojRkZC
        MTE1O30KCS5CbHVle2ZpbGw6IzExNzdENzt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh
        Y2l0eTowLjU7fQoJLnN0MXtvcGFjaXR5OjAuNzU7fQo8L3N0eWxlPg0KICA8ZyBpZD0iSW5zZXJ0QnVi
        YmxlTWFwIj4NCiAgICA8cGF0aCBkPSJNMjEuNywxMC4zYzIuNSwwLjcsNC4zLDMsNC4zLDUuN2MwLDMu
        My0yLjcsNi02LDZ2Ny4ybC04LTh2LTcuM2MtMi41LTAuNC00LjYtMi4xLTUuNS00LjRMNCwxMnYyMGw4
        LThsOCw4ICAgbDgtOFY0TDIxLjcsMTAuM3oiIGNsYXNzPSJCbHVlIiAvPg0KICAgIDxjaXJjbGUgY3g9
        IjEzIiBjeT0iNyIgcj0iNSIgY2xhc3M9IkdyZWVuIiAvPg0KICAgIDxjaXJjbGUgY3g9IjIwIiBjeT0i
        MTYiIHI9IjQiIGNsYXNzPSJZZWxsb3ciIC8+DQogIDwvZz4NCjwvc3ZnPgs=
</value>
  </data>
  <data name="stepItemFormMap.ContentBlock1.InactiveStateImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAP4CAAAC77u/
        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
        Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
        MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkdyZWVue2ZpbGw6IzAzOUMyMzt9Cgku
        QmxhY2t7ZmlsbDojNzI3MjcyO30KCS5SZWR7ZmlsbDojRDExQzFDO30KCS5ZZWxsb3d7ZmlsbDojRkZC
        MTE1O30KCS5CbHVle2ZpbGw6IzExNzdENzt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh
        Y2l0eTowLjU7fQoJLnN0MXtvcGFjaXR5OjAuNzU7fQo8L3N0eWxlPg0KICA8ZyBpZD0iSW5zZXJ0QnVi
        YmxlTWFwIj4NCiAgICA8cGF0aCBkPSJNMjEuNywxMC4zYzIuNSwwLjcsNC4zLDMsNC4zLDUuN2MwLDMu
        My0yLjcsNi02LDZ2Ny4ybC04LTh2LTcuM2MtMi41LTAuNC00LjYtMi4xLTUuNS00LjRMNCwxMnYyMGw4
        LThsOCw4ICAgbDgtOFY0TDIxLjcsMTAuM3oiIGNsYXNzPSJCbHVlIiAvPg0KICAgIDxjaXJjbGUgY3g9
        IjEzIiBjeT0iNyIgcj0iNSIgY2xhc3M9IkdyZWVuIiAvPg0KICAgIDxjaXJjbGUgY3g9IjIwIiBjeT0i
        MTYiIHI9IjQiIGNsYXNzPSJZZWxsb3ciIC8+DQogIDwvZz4NCjwvc3ZnPgs=
</value>
  </data>
  <data name="stepItemFormMap.Options.Indicator.ActiveStateImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAK4CAAAC77u/
        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
        Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
        MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLlllbGxvd3tmaWxsOiNGRkIxMTU7fQoJ
        LlJlZHtmaWxsOiNEMTFDMUM7fQoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5HcmVlbntmaWxsOiMwMzlD
        MjM7fQoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh
        Y2l0eTowLjU7fQoJLnN0MXtkaXNwbGF5Om5vbmU7fQoJLnN0MntkaXNwbGF5OmlubGluZTtmaWxsOiMw
        MzlDMjM7fQoJLnN0M3tkaXNwbGF5OmlubGluZTtmaWxsOiNEMTFDMUM7fQoJLnN0NHtkaXNwbGF5Omlu
        bGluZTtmaWxsOiM3MjcyNzI7fQo8L3N0eWxlPg0KICA8ZyBpZD0iTWFya0NvbXBsZXRlIj4NCiAgICA8
        cG9seWdvbiBwb2ludHM9IjI3LDQgMTEsMjAgNSwxNCAyLDE3IDExLDI2IDMwLDcgICIgY2xhc3M9Ikdy
        ZWVuIiAvPg0KICA8L2c+DQo8L3N2Zz4L
</value>
  </data>
  <data name="stepItemForHydroRelation.ContentBlock1.ActiveStateImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
@@ -276,65 +335,6 @@
</value>
  </data>
  <data name="stepItemForHydroRelation.Options.Indicator.ActiveStateImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAK4CAAAC77u/
        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
        Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
        MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLlllbGxvd3tmaWxsOiNGRkIxMTU7fQoJ
        LlJlZHtmaWxsOiNEMTFDMUM7fQoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5HcmVlbntmaWxsOiMwMzlD
        MjM7fQoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh
        Y2l0eTowLjU7fQoJLnN0MXtkaXNwbGF5Om5vbmU7fQoJLnN0MntkaXNwbGF5OmlubGluZTtmaWxsOiMw
        MzlDMjM7fQoJLnN0M3tkaXNwbGF5OmlubGluZTtmaWxsOiNEMTFDMUM7fQoJLnN0NHtkaXNwbGF5Omlu
        bGluZTtmaWxsOiM3MjcyNzI7fQo8L3N0eWxlPg0KICA8ZyBpZD0iTWFya0NvbXBsZXRlIj4NCiAgICA8
        cG9seWdvbiBwb2ludHM9IjI3LDQgMTEsMjAgNSwxNCAyLDE3IDExLDI2IDMwLDcgICIgY2xhc3M9Ikdy
        ZWVuIiAvPg0KICA8L2c+DQo8L3N2Zz4L
</value>
  </data>
  <data name="stepItemFormMap.ContentBlock1.ActiveStateImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAP4CAAAC77u/
        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
        Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
        MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkdyZWVue2ZpbGw6IzAzOUMyMzt9Cgku
        QmxhY2t7ZmlsbDojNzI3MjcyO30KCS5SZWR7ZmlsbDojRDExQzFDO30KCS5ZZWxsb3d7ZmlsbDojRkZC
        MTE1O30KCS5CbHVle2ZpbGw6IzExNzdENzt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh
        Y2l0eTowLjU7fQoJLnN0MXtvcGFjaXR5OjAuNzU7fQo8L3N0eWxlPg0KICA8ZyBpZD0iSW5zZXJ0QnVi
        YmxlTWFwIj4NCiAgICA8cGF0aCBkPSJNMjEuNywxMC4zYzIuNSwwLjcsNC4zLDMsNC4zLDUuN2MwLDMu
        My0yLjcsNi02LDZ2Ny4ybC04LTh2LTcuM2MtMi41LTAuNC00LjYtMi4xLTUuNS00LjRMNCwxMnYyMGw4
        LThsOCw4ICAgbDgtOFY0TDIxLjcsMTAuM3oiIGNsYXNzPSJCbHVlIiAvPg0KICAgIDxjaXJjbGUgY3g9
        IjEzIiBjeT0iNyIgcj0iNSIgY2xhc3M9IkdyZWVuIiAvPg0KICAgIDxjaXJjbGUgY3g9IjIwIiBjeT0i
        MTYiIHI9IjQiIGNsYXNzPSJZZWxsb3ciIC8+DQogIDwvZz4NCjwvc3ZnPgs=
</value>
  </data>
  <data name="stepItemFormMap.ContentBlock1.InactiveStateImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAP4CAAAC77u/
        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
        Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
        MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkdyZWVue2ZpbGw6IzAzOUMyMzt9Cgku
        QmxhY2t7ZmlsbDojNzI3MjcyO30KCS5SZWR7ZmlsbDojRDExQzFDO30KCS5ZZWxsb3d7ZmlsbDojRkZC
        MTE1O30KCS5CbHVle2ZpbGw6IzExNzdENzt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh
        Y2l0eTowLjU7fQoJLnN0MXtvcGFjaXR5OjAuNzU7fQo8L3N0eWxlPg0KICA8ZyBpZD0iSW5zZXJ0QnVi
        YmxlTWFwIj4NCiAgICA8cGF0aCBkPSJNMjEuNywxMC4zYzIuNSwwLjcsNC4zLDMsNC4zLDUuN2MwLDMu
        My0yLjcsNi02LDZ2Ny4ybC04LTh2LTcuM2MtMi41LTAuNC00LjYtMi4xLTUuNS00LjRMNCwxMnYyMGw4
        LThsOCw4ICAgbDgtOFY0TDIxLjcsMTAuM3oiIGNsYXNzPSJCbHVlIiAvPg0KICAgIDxjaXJjbGUgY3g9
        IjEzIiBjeT0iNyIgcj0iNSIgY2xhc3M9IkdyZWVuIiAvPg0KICAgIDxjaXJjbGUgY3g9IjIwIiBjeT0i
        MTYiIHI9IjQiIGNsYXNzPSJZZWxsb3ciIC8+DQogIDwvZz4NCjwvc3ZnPgs=
</value>
  </data>
  <data name="stepItemFormMap.Options.Indicator.ActiveStateImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl