MProject.cs 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  1. /* ==============================================================================
  2. * 功能描述:MProject
  3. * 创 建 者:Garrett
  4. * 创建日期:2018/3/8 15:52:54
  5. * ==============================================================================*/
  6. using System;
  7. using System.ComponentModel;
  8. using System.Windows;
  9. using Newtonsoft.Json.Linq;
  10. using SAGA.MBI.Login;
  11. using System.Collections.Generic;
  12. using System.IO;
  13. using System.Linq;
  14. using System.Xml.Serialization;
  15. using SAGA.DotNetUtils;
  16. using SAGA.DotNetUtils.Serializer;
  17. using SAGA.DotNetUtils.WPF.UserControl.ComboboxTreeView;
  18. using SAGA.MBI.CmbData;
  19. using SAGA.MBI.Common;
  20. using SAGA.MBI.DataArrange;
  21. using SAGA.MBI.FileStream;
  22. using SAGA.MBI.JsonConvert;
  23. using SAGA.MBI.RequestData;
  24. using SAGA.MBI.Tools;
  25. namespace SAGA.MBI.Model
  26. {
  27. [Serializable]
  28. [XmlRoot("MProject")]
  29. public class MProject: MFileBase
  30. {
  31. public MProject()
  32. {
  33. LoadUseControl();
  34. }
  35. public void LoadUseControl()
  36. {
  37. UserControlUp = new UcMFMProjectUp();
  38. UserControlDown = new UcMFMProjectDown();
  39. ProvinceCityVm=new ProvinceCityVm();
  40. }
  41. private string m_Password;
  42. public string Password
  43. {
  44. get { return m_Password; }
  45. set { m_Password = value; }
  46. }
  47. private string m_ProvinceRegion;
  48. [Description("Province")]
  49. public string ProvinceRegion
  50. {
  51. get { return m_ProvinceRegion; }
  52. set
  53. {
  54. m_ProvinceRegion = value;
  55. NotifyPropertyChanged("ProvinceRegion");
  56. //SetComboboxTree();
  57. }
  58. }
  59. private string m_CityRegion;
  60. [Description("City")]
  61. public string CityRegion
  62. {
  63. get { return m_CityRegion; }
  64. set
  65. {
  66. m_CityRegion = value;
  67. NotifyPropertyChanged("CityRegion");
  68. //SetComboboxTree();
  69. }
  70. }
  71. private string m_UrbanZoneRegion;
  72. [Description("UrbanZone")]
  73. public string UrbanZoneRegion
  74. {
  75. get { return m_UrbanZoneRegion; }
  76. set
  77. {
  78. m_UrbanZoneRegion = value;
  79. NotifyPropertyChanged("UrbanZoneRegion");
  80. //SetComboboxTree();
  81. }
  82. }
  83. private string m_ClimaticProvince;
  84. [Description("ClimateZone")]
  85. public string ClimaticProvince
  86. {
  87. get { return m_ClimaticProvince; }
  88. set
  89. {
  90. m_ClimaticProvince = value;
  91. NotifyPropertyChanged("ClimaticProvince");
  92. //由于云平台属性是统一赋值的,所以只用在这里处理Tree的初始化
  93. SetComboboxTree();
  94. }
  95. }
  96. private ProvinceCityVm m_ProvinceCityVm;
  97. [XmlIgnore]
  98. public ProvinceCityVm ProvinceCityVm
  99. {
  100. get { return m_ProvinceCityVm; }
  101. set
  102. {
  103. m_ProvinceCityVm = value;
  104. //NotifyPropertyChanged("ProvinceCityVm");
  105. }
  106. }
  107. /// <summary>
  108. /// 类备份,用于取消更改
  109. /// </summary>
  110. /// <returns></returns>
  111. public override void Clone()
  112. {
  113. // FileOperateBase.Serialize(MBIConst.MBITempSettingPath, "CloneFile.xml", this);
  114. // m_MFileBaseBak = FileOperateBase.Deserialize<MProject>(MBIConst.MBITempSettingPath, "CloneFile.xml");
  115. m_MFileBaseBak = SerializerByXml.Clone<MProject>(this);
  116. }
  117. public override bool Save()
  118. {
  119. if (this.BeCopyPath.IsNotNullEmpty())
  120. {
  121. string path = BeCopyPath.Substring(0, BeCopyPath.Length - this.Id.Length-1);
  122. WinSelectProjectPath win = new WinSelectProjectPath(this.Id, path);
  123. win.EnterBeDoThings();
  124. this.BeCopyPath = null;
  125. }
  126. //查看项目工作区路径是否修改
  127. //bool isWorkAreaChanged=((MProject)m_MFileBaseBak).LocalPath
  128. //将建筑数据上传到云平台
  129. //下载文件到指定文件夹
  130. return base.Save();
  131. }
  132. public override void SetJsonProperty(string json)
  133. {
  134. JObject jObject = JObject.Parse(json);
  135. this.Name = (string)jObject["ProjName"];
  136. this.LocalId = (string)jObject["ProjLocalID"];
  137. this.LocalName = (string)jObject["ProjLocalName"];
  138. base.SetJsonProperty(json);
  139. //设置下拉列表数据选中项
  140. //SetComboboxTree();
  141. }
  142. public override JObject GetJsonProperty()
  143. {
  144. var provinceCode = DalCmd.GetCodeByProvinceItem(ProvinceCityVm.TreeProvinceInfoCur);
  145. ProvinceRegion = provinceCode[0];
  146. CityRegion = provinceCode[1];
  147. UrbanZoneRegion = provinceCode[2];
  148. ClimaticProvince = DalCMBTreeView.GetCodeByItem(ProvinceCityVm.TreeClimaticRegionCur);
  149. JObject jObject = base.GetJsonProperty();
  150. jObject.Add("ProjLocalID", CommonTool.GetPropertyJArray(LocalId));
  151. jObject.Add("ProjLocalName", CommonTool.GetPropertyJArray(LocalName));
  152. return jObject;
  153. }
  154. /// <summary>
  155. /// 设置下拉列表数据选中项
  156. /// </summary>
  157. private void SetComboboxTree()
  158. {
  159. //设置下拉列表数据选中项
  160. ProvinceCityVm.TreeProvinceInfoCur = DalCmd.GetProvinceByCode(ProvinceCityVm.TreeProvinceInfos,
  161. this.ProvinceRegion, this.CityRegion, this.UrbanZoneRegion);
  162. if (this.ClimaticProvince.IsNotNullEmpty())
  163. ProvinceCityVm.TreeClimaticRegionCur =
  164. DalCMBTreeView.GetItemByCode(ProvinceCityVm.TreeClimaticRegions, this.ClimaticProvince);
  165. ProvinceCityVm.NotifyAction = NotifyPropertyChanged;
  166. }
  167. }
  168. }