StaffController.cs 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653
  1. using Microsoft.AspNetCore.Mvc;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Data;
  5. using wispro.sp.entity;
  6. using wispro.sp.share;
  7. using System.Linq;
  8. using Microsoft.AspNetCore.Authentication.JwtBearer;
  9. using Microsoft.AspNetCore.Authorization;
  10. using wispro.sp.entity.workflowDefine;
  11. using Microsoft.EntityFrameworkCore;
  12. using System.Collections;
  13. using NPOI.SS.Formula.Functions;
  14. namespace wispro.sp.api.Controllers
  15. {
  16. [Authorize]
  17. [Route("api/[controller]/[action]")]
  18. [ApiController]
  19. public class StaffController : ControllerBase
  20. {
  21. private static List<Staff> CacheList = new List<Staff>();
  22. spDbContext Context;
  23. public StaffController(spDbContext context)
  24. {
  25. Context = context;
  26. }
  27. public List<Staff> GetAll()
  28. {
  29. return Context.Staffs.ToList<Staff>();
  30. }
  31. private List<Staff> GetStaffList(dynamic dynamic,UserField userField)
  32. {
  33. try
  34. {
  35. Staff temUser = null;
  36. switch (userField.UserConditionType)
  37. {
  38. case UserConditionType.Staff:
  39. switch (userField.UserType)
  40. {
  41. case UserType.BindObjectProperty:
  42. if (dynamic == null)
  43. {
  44. return null;
  45. }
  46. else
  47. {
  48. var retObj = share.Utility.ObjectHelper.GetPropertyValue(userField.UserValue, dynamic);
  49. if (retObj is Staff)
  50. {
  51. return new List<Staff>() { (Staff)retObj };
  52. }
  53. else
  54. {
  55. if (retObj is List<Staff>)
  56. {
  57. return (List<Staff>)retObj;
  58. }
  59. }
  60. }
  61. break;
  62. case UserType.DoActionUser:
  63. break;
  64. case UserType.LoginUser:
  65. temUser = Context.Staffs.FirstOrDefault(s => s.Name == User.Identity.Name);
  66. return new List<Staff>() { temUser };
  67. break;
  68. case UserType.Staff:
  69. temUser = Context.Staffs.FirstOrDefault(s => s.Id == int.Parse(userField.UserValue.ToString()));
  70. if (temUser != null)
  71. {
  72. return new List<Staff>() { temUser };
  73. }
  74. break;
  75. }
  76. break;
  77. case UserConditionType.Department:
  78. var retList = Context.DepartmentPositions.Where(d => d.departmentId == int.Parse(userField.Department)).Select(p => p.Staff).ToList();
  79. return retList.Where(s=>s.IsOnJob ).ToList();
  80. break;
  81. case UserConditionType.Position:
  82. var query = Context.Staffs.Where(s=>true);
  83. var queryList = from u in query
  84. where ((from dp in Context.DepartmentPositions.Where(d => d.PositionId == int.Parse(userField.Positon)) select dp.StaffId).Contains(u.Id))
  85. select u;
  86. return queryList.ToList();
  87. break;
  88. case UserConditionType.UserDepartment:
  89. break;
  90. case UserConditionType.UserDepartmentPosition:
  91. break;
  92. case UserConditionType.DepartmentPosition:
  93. var retList1 = Context.DepartmentPositions.Where(d =>
  94. d.departmentId == int.Parse(userField.Department) &&
  95. d.PositionId == int.Parse(userField.Positon)
  96. )
  97. .Select(p => p.Staff).ToList();
  98. return retList1;
  99. break;
  100. }
  101. return new List<Staff>();
  102. }
  103. catch(Exception ex)
  104. {
  105. throw ex;
  106. }
  107. }
  108. public List<Staff> GetReviewers(int itemId, int appealTypeId)
  109. {
  110. try
  111. {
  112. var item = Context.PerformanceItems
  113. .Include(p=>p.Reviewer)
  114. .Include(p=>p.ItemStaffs).ThenInclude(p=>p.DoPerson)
  115. .Include(p=>p.PreOastaff)
  116. .Include(p=>p.Customer)
  117. .FirstOrDefault(p => p.Id == itemId);
  118. var apType = Context.AppealTypes.FirstOrDefault(p => p.Id == appealTypeId);
  119. UserField user = new UserField();
  120. if (String.IsNullOrEmpty(apType.ReviewerExpress))
  121. {
  122. return Context.Staffs.ToList();
  123. }
  124. else
  125. {
  126. List<UserField> lstUserField = new List<UserField>();
  127. if (apType.ReviewerExpress.StartsWith("p."))
  128. {
  129. UserField userField = new UserField();
  130. userField.UserConditionType = UserConditionType.Staff;
  131. userField.UserType = UserType.BindObjectProperty;
  132. userField.UserValue = apType.ReviewerExpress.Replace("p.", "").Trim();
  133. lstUserField.Add(userField);
  134. }
  135. else
  136. {
  137. lstUserField = System.Text.Json.JsonSerializer.Deserialize<List<UserField>>(apType.ReviewerExpress);
  138. //UserField userField = System.Text.Json.JsonSerializer.Deserialize<UserField>(apType.ReviewerExpress);
  139. }
  140. List<Staff> retStaffs = new List<Staff>();
  141. foreach(UserField uf in lstUserField)
  142. {
  143. var temStaffs = GetStaffList(item, uf);
  144. if(temStaffs != null)
  145. {
  146. foreach(var staff in temStaffs)
  147. {
  148. if(retStaffs.FirstOrDefault(s=>s.Id == staff.Id) == null) {
  149. staff.Customers = null;
  150. staff.StaffGrade = null;
  151. staff.ItemStaffs = null;
  152. staff.Positions = null;
  153. staff.ReviewerItems = null;
  154. #region 处理人为审核人,提交给部门顾问
  155. if (apType.Name == "案件系数复核" || apType.Name == "特殊情况申诉")
  156. {
  157. foreach (var doPerson in item.ItemStaffs)
  158. {
  159. if (doPerson.DoPerson.Id == staff.Id)
  160. {
  161. if (AuditUsers().Contains(staff.Name))
  162. {
  163. var temStaff = Context.Staffs
  164. .Where<Staff>(s => ((List<string>)AuditUsers()[staff.Name]).Contains(s.Name))
  165. .ToList();
  166. if (temStaff.Count > 0)
  167. {
  168. return temStaff;
  169. }
  170. }
  171. break;
  172. }
  173. }
  174. }
  175. #endregion
  176. retStaffs.Add(staff);
  177. }
  178. }
  179. }
  180. }
  181. return retStaffs;
  182. }
  183. }
  184. catch (Exception ex)
  185. {
  186. throw ex;
  187. }
  188. }
  189. private Hashtable AuditUsers()
  190. {
  191. Hashtable retStaffs = new Hashtable();
  192. retStaffs.Add("刘桂兰",new List<string>() { "程利", "周心志" });
  193. retStaffs.Add("张庆玲", new List<string>() { "贾凤涛" });
  194. retStaffs.Add("石惠", new List<string>() { "贾凤涛" });
  195. retStaffs.Add("钟锦光", new List<string>() { "李庆波", "陈舒敏" });
  196. retStaffs.Add("向鑫旭", new List<string>() { "李庆波", "陈舒敏" });
  197. retStaffs.Add("张晓薇", new List<string>() { "李庆波", "陈舒敏" });
  198. retStaffs.Add("杨超", new List<string>() { "李庆波", "陈舒敏" });
  199. retStaffs.Add("沈靖俞", new List<string>() { "李庆波", "陈舒敏" });
  200. retStaffs.Add("何丽", new List<string>() { "李庆波", "陈舒敏" });
  201. retStaffs.Add("管自英", new List<string>() { "王建峰" });
  202. retStaffs.Add("唐双", new List<string>() { "钟子敏","陈舒敏" });
  203. retStaffs.Add("李申", new List<string>() { "钟子敏", "陈舒敏" });
  204. retStaffs.Add("翁旋艺", new List<string>() { "钟子敏", "陈舒敏" });
  205. retStaffs.Add("何倚雯", new List<string>() { "钟子敏", "陈舒敏" });
  206. retStaffs.Add("陆跃", new List<string>() { "钟子敏", "陈舒敏" });
  207. retStaffs.Add("李姣", new List<string>() { "钟子敏", "陈舒敏" });
  208. retStaffs.Add("李建民", new List<string>() { "钟子敏", "陈舒敏" });
  209. retStaffs.Add("赵静", new List<string>() { "钟子敏", "陈舒敏" });
  210. return retStaffs;
  211. }
  212. public Staff GetUser(int Id)
  213. {
  214. return Context.Staffs.FirstOrDefault(p=>p.Id == Id);
  215. }
  216. public Staff GetByName(string Name)
  217. {
  218. return Context.Staffs.FirstOrDefault(p => p.Name == Name);
  219. }
  220. public ListApiResponse<Staff> Query(int pageIndex,int pageSize)
  221. {
  222. ListApiResponse<Staff> ret = new ListApiResponse<Staff>();
  223. ret.TotalCount = Context.Staffs.Count<Staff>();
  224. List<Staff> retList = Context.Staffs.Skip<Staff>((pageIndex - 1) * pageSize).Take(pageSize).ToList<Staff>();
  225. ret.Results = retList;
  226. return ret;
  227. }
  228. public ListApiResponse<Staff> QueryInDepartment(int deptId,int pageIndex,int pageSize)
  229. {
  230. ListApiResponse<Staff> ret = new ListApiResponse<Staff>();
  231. var dept = Context.Departments.FirstOrDefault<Department>(d=>d.Id == deptId);
  232. string strancestors = $"{dept.ancestors},{deptId}";
  233. if (dept != null)
  234. {
  235. var retList = Context.Staffs.Where<Staff>(s =>
  236. s.Positions.Where<DepartmentPosition>(dp => dp.department.ancestors.StartsWith(strancestors) || dp.department.Id == deptId).Count() > 0 );
  237. ret.TotalCount = retList.Count();
  238. ret.Results = retList.Skip<Staff>((pageIndex - 1) * pageSize).Take(pageSize).ToList();
  239. }
  240. else
  241. {
  242. ret.Results = new List<Staff>();
  243. }
  244. return ret;
  245. }
  246. public ApiSaveResponse UpdateUser(SaveUserObject saveUser)
  247. {
  248. ApiSaveResponse ret = new ApiSaveResponse();
  249. Staff editObject = null;
  250. if (saveUser.staff.Id == 0)
  251. {
  252. editObject = Context.Staffs.FirstOrDefault(p=>p.Name == saveUser.staff.Name);
  253. }
  254. else
  255. {
  256. editObject = Context.Staffs.FirstOrDefault(p => p.Id == saveUser.staff.Id);
  257. }
  258. if(editObject == null)
  259. {
  260. ret.Success = false;
  261. ret.ErrorMessage = "用户不存在";
  262. }
  263. else
  264. {
  265. using (var t = Context.Database.BeginTransaction())
  266. {
  267. try
  268. {
  269. if(saveUser.staff.Account != null && editObject.Account != saveUser.staff.Account)
  270. editObject.Account = saveUser.staff.Account;
  271. if (saveUser.staff.Department != null && editObject.Department != saveUser.staff.Department)
  272. editObject.Department = saveUser.staff.Department;
  273. if (saveUser.staff.EntyDate != null && editObject.EntyDate != saveUser.staff.EntyDate)
  274. editObject.EntyDate = saveUser.staff.EntyDate;
  275. editObject.IsCalPerformsnce = saveUser.staff.IsCalPerformsnce;
  276. editObject.IsOnJob = saveUser.staff.IsOnJob;
  277. editObject.IsGradeAssess = saveUser.staff.IsGradeAssess;
  278. if (saveUser.staff.Mail != null && editObject.Mail != saveUser.staff.Mail)
  279. editObject.Mail = saveUser.staff.Mail;
  280. if (saveUser.staff.Memo != null && editObject.Memo != saveUser.staff.Memo)
  281. editObject.Memo = saveUser.staff.Memo;
  282. if (saveUser.staff.Mobile != null && editObject.Mobile != saveUser.staff.Mobile)
  283. editObject.Mobile = saveUser.staff.Mobile;
  284. if (saveUser.staff.Name != null && editObject.Name != saveUser.staff.Name)
  285. editObject.Name = saveUser.staff.Name;
  286. if (saveUser.staff.Password != null && saveUser.staff.Id >0)
  287. editObject.Password = utility.MD5Utility.GetMD5(saveUser.staff.Password);
  288. if (saveUser.staff.Sex != null && editObject.Sex != saveUser.staff.Sex)
  289. editObject.Sex = saveUser.staff.Sex;
  290. if (saveUser.staff.StaffGradeId != null && editObject.StaffGradeId != saveUser.staff.StaffGradeId)
  291. editObject.StaffGradeId = saveUser.staff.StaffGradeId;
  292. if (saveUser.staff.Status != null && editObject.Status != saveUser.staff.Status)
  293. editObject.Status = saveUser.staff.Status;
  294. if (saveUser.staff.Tel != null && editObject.Tel != saveUser.staff.Tel)
  295. editObject.Tel = saveUser.staff.Tel;
  296. if (saveUser.staff.WorkPlace != null && editObject.WorkPlace != saveUser.staff.WorkPlace)
  297. editObject.WorkPlace = saveUser.staff.WorkPlace;
  298. if(saveUser.staff.RegularDate != null && editObject.RegularDate != saveUser.staff.RegularDate)
  299. editObject.RegularDate = saveUser.staff.RegularDate;
  300. Context.SaveChanges();
  301. var temDP = Context.DepartmentPositions
  302. .Where<DepartmentPosition>(d =>
  303. d.departmentId == saveUser.deptId &&
  304. d.StaffId == editObject.Id).ToList<DepartmentPosition>();
  305. foreach (var depPosition in temDP)
  306. {
  307. Context.DepartmentPositions.Remove(depPosition);
  308. }
  309. Context.SaveChanges();
  310. DepartmentPosition dp = new DepartmentPosition();
  311. dp.departmentId = saveUser.deptId;
  312. dp.PositionId = saveUser.positionId;
  313. dp.StaffId = editObject.Id;
  314. Context.DepartmentPositions.Add(dp);
  315. Context.SaveChanges();
  316. t.Commit();
  317. }
  318. catch(Exception ex)
  319. {
  320. ret.Success = false;
  321. ret.ErrorMessage = ex.Message;
  322. }
  323. }
  324. }
  325. return ret;
  326. }
  327. public ApiSaveResponse SaveUser(SaveUserObject saveUser)
  328. {
  329. ApiSaveResponse ret = new ApiSaveResponse();
  330. using (var t = Context.Database.BeginTransaction())
  331. {
  332. try
  333. {
  334. Staff staff = saveUser.staff;
  335. if (staff.Id == 0)
  336. {
  337. Staff temStaff = Context.Staffs.Where<Staff>(x => x.Name == staff.Name).FirstOrDefault();
  338. if (temStaff != null)
  339. {
  340. ret.Success = false;
  341. ret.ErrorMessage = $"用户【{staff.Name}】已存在!";
  342. }
  343. else
  344. {
  345. if(string.IsNullOrEmpty(staff.Account) || string.IsNullOrEmpty(staff.Password))
  346. {
  347. ret.Success = false;
  348. ret.ErrorMessage = $"用户名或密码没有设定";
  349. return ret;
  350. }
  351. else
  352. {
  353. staff.Password = utility.MD5Utility.GetMD5(staff.Password);
  354. }
  355. Context.Staffs.Add(staff);
  356. Context.SaveChanges();
  357. DepartmentPosition dp = new DepartmentPosition();
  358. dp.departmentId = saveUser.deptId;
  359. dp.PositionId = saveUser.positionId;
  360. dp.StaffId = staff.Id;
  361. Context.DepartmentPositions.Add(dp);
  362. Context.SaveChanges();
  363. }
  364. }
  365. else
  366. {
  367. Staff editObject = Context.Staffs.Where<Staff>(x => x.Id == staff.Id).FirstOrDefault();
  368. if (editObject != null)
  369. {
  370. //editObject.Account = staff.Account;
  371. editObject.Department = staff.Department;
  372. editObject.EntyDate = staff.EntyDate;
  373. editObject.IsCalPerformsnce = staff.IsCalPerformsnce;
  374. editObject.IsOnJob = staff.IsOnJob;
  375. editObject.IsGradeAssess = staff.IsGradeAssess;
  376. editObject.Mail = staff.Mail;
  377. editObject.Memo = staff.Memo;
  378. editObject.Mobile = staff.Mobile;
  379. editObject.Name = staff.Name;
  380. //editObject.Password = utility.MD5Utility.GetMD5(staff.Password);
  381. editObject.Sex = staff.Sex;
  382. editObject.StaffGradeId = staff.StaffGradeId;
  383. editObject.Status = staff.Status;
  384. editObject.Tel = staff.Tel;
  385. editObject.WorkPlace = staff.WorkPlace;
  386. editObject.RegularDate =staff.RegularDate;
  387. Context.SaveChanges();
  388. if (saveUser.deptId > 0)
  389. {
  390. var temDP = Context.DepartmentPositions
  391. .Where<DepartmentPosition>(d =>
  392. d.departmentId == saveUser.deptId &&
  393. d.StaffId == editObject.Id).ToList<DepartmentPosition>();
  394. foreach (var depPosition in temDP)
  395. {
  396. Context.DepartmentPositions.Remove(depPosition);
  397. }
  398. Context.SaveChanges();
  399. DepartmentPosition dp = new DepartmentPosition();
  400. dp.departmentId = saveUser.deptId;
  401. dp.PositionId = saveUser.positionId;
  402. dp.StaffId = editObject.Id;
  403. Context.DepartmentPositions.Add(dp);
  404. Context.SaveChanges();
  405. }
  406. }
  407. else
  408. {
  409. ret.Success = false;
  410. ret.ErrorMessage = $"编号为【{staff.Id}】的用户不存在!";
  411. }
  412. }
  413. t.Commit();
  414. ret.Success = true;
  415. }
  416. catch (Exception ex)
  417. {
  418. t.Rollback();
  419. ret.Success = false;
  420. ret.ErrorMessage = ex.Message;
  421. }
  422. }
  423. return ret;
  424. }
  425. [HttpPost]
  426. public ApiSaveResponse Save(Staff staff)
  427. {
  428. ApiSaveResponse ret = new ApiSaveResponse();
  429. try
  430. {
  431. if (staff.Id == 0)
  432. {
  433. Staff temStaff = Context.Staffs.Where<Staff>(x => x.Name == staff.Name).FirstOrDefault();
  434. if (temStaff != null)
  435. {
  436. if (staff.Account != null && staff.Account != temStaff.Account)
  437. temStaff.Account = staff.Account;
  438. if (staff.Department != null && staff.Department != temStaff.Department)
  439. temStaff.Department = staff.Department;
  440. if (staff.EntyDate != null && staff.EntyDate != temStaff.EntyDate)
  441. temStaff.EntyDate = staff.EntyDate;
  442. if (staff.IsCalPerformsnce != temStaff.IsCalPerformsnce)
  443. temStaff.IsCalPerformsnce = staff.IsCalPerformsnce;
  444. if (staff.IsGradeAssess != temStaff.IsGradeAssess)
  445. temStaff.IsGradeAssess = staff.IsGradeAssess;
  446. if (staff.IsOnJob != temStaff.IsOnJob)
  447. temStaff.IsOnJob = staff.IsOnJob;
  448. if (staff.Mail != null && staff.Mail != temStaff.Mail)
  449. {
  450. temStaff.Mail = staff.Mail;
  451. }
  452. if (staff.Memo != null && staff.Memo != temStaff.Memo)
  453. temStaff.Memo = staff.Memo;
  454. if (staff.Memo != null && staff.Memo != temStaff.Memo)
  455. temStaff.Mobile = staff.Mobile;
  456. if (staff.Sex != null && staff.Sex != temStaff.Sex)
  457. temStaff.Sex = staff.Sex;
  458. if (staff.StaffGradeId != null && staff.StaffGradeId != temStaff.StaffGradeId)
  459. temStaff.StaffGradeId = staff.StaffGradeId;
  460. if (staff.Status != null && staff.Status != temStaff.Status)
  461. temStaff.Status = staff.Status;
  462. if (staff.Tel != null && staff.Tel != temStaff.Tel)
  463. temStaff.Tel = staff.Tel;
  464. if (staff.WorkPlace != null && staff.WorkPlace != temStaff.WorkPlace)
  465. temStaff.WorkPlace = staff.WorkPlace;
  466. if(staff.RegularDate != null && staff.RegularDate != temStaff.RegularDate)
  467. {
  468. temStaff.RegularDate = staff.RegularDate;
  469. }
  470. Context.SaveChanges();
  471. //ret.Success = false;
  472. //ret.ErrorMessage = $"用户【{staff.Name}】已存在!";
  473. }
  474. else
  475. {
  476. Context.Staffs.Add(staff);
  477. }
  478. }
  479. else
  480. {
  481. Staff editObject = Context.Staffs.Where<Staff>(x => x.Id == staff.Id).FirstOrDefault();
  482. if (editObject != null)
  483. {
  484. if (staff.Account != null && staff.Account != editObject.Account)
  485. editObject.Account = staff.Account;
  486. if (staff.Department != null && staff.Department != editObject.Department)
  487. editObject.Department = staff.Department;
  488. if (staff.EntyDate != null && staff.EntyDate != editObject.EntyDate)
  489. editObject.EntyDate = staff.EntyDate;
  490. if (staff.IsCalPerformsnce != editObject.IsCalPerformsnce)
  491. editObject.IsCalPerformsnce = staff.IsCalPerformsnce;
  492. if (staff.IsGradeAssess != editObject.IsGradeAssess)
  493. editObject.IsGradeAssess = staff.IsGradeAssess;
  494. if (staff.IsOnJob != editObject.IsOnJob)
  495. editObject.IsOnJob = staff.IsOnJob;
  496. if (staff.Mail != null && staff.Mail != editObject.Mail)
  497. {
  498. editObject.Mail = staff.Mail;
  499. }
  500. if (staff.Memo != null && staff.Memo != editObject.Memo)
  501. editObject.Memo = staff.Memo;
  502. if (staff.Memo != null && staff.Memo != editObject.Memo)
  503. editObject.Mobile = staff.Mobile;
  504. if (staff.Sex != null && staff.Sex != editObject.Sex)
  505. editObject.Sex = staff.Sex;
  506. if (staff.StaffGradeId != null && staff.StaffGradeId != editObject.StaffGradeId)
  507. editObject.StaffGradeId = staff.StaffGradeId;
  508. if (staff.Status != null && staff.Status != editObject.Status)
  509. editObject.Status = staff.Status;
  510. if (staff.Tel != null && staff.Tel != editObject.Tel)
  511. editObject.Tel = staff.Tel;
  512. if (staff.WorkPlace != null && staff.WorkPlace != editObject.WorkPlace)
  513. editObject.WorkPlace = staff.WorkPlace;
  514. if(staff.RegularDate != null && staff.RegularDate != editObject.RegularDate)
  515. {
  516. editObject.RegularDate = staff.RegularDate;
  517. }
  518. }
  519. else
  520. {
  521. ret.Success = false;
  522. ret.ErrorMessage = $"编号为【{staff.Id}】的用户不存在!";
  523. }
  524. }
  525. Context.SaveChanges();
  526. ret.Success = true;
  527. }
  528. catch (Exception ex)
  529. {
  530. ret.Success = false;
  531. ret.ErrorMessage = ex.Message;
  532. }
  533. return ret;
  534. }
  535. }
  536. }