WeRoleDto.cs 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. using System;
  2. using WeEngine.Packages;
  3. namespace WeEngine.CommonDto.WeInfo
  4. {
  5. public class WeRoleDto
  6. {
  7. public WeRoleDto()
  8. {
  9. }
  10. public WeRoleDto(string roles)
  11. {
  12. var arr = roles.Split(':');
  13. RoleNo = arr[0];
  14. if (arr.Length > 1)
  15. {
  16. RoleName = arr[1];
  17. }
  18. if (arr.Length > 2)
  19. {
  20. RoleWeight = int.TryParse(arr[2], out var w) ? w : 0;
  21. }
  22. if (arr.Length > 3)
  23. {
  24. TotalWeight = int.TryParse(arr[3], out var w) ? w : 0;
  25. }
  26. }
  27. public WeRoleDto(string roleNo, string roleName, decimal roleWeight, decimal totalWeight)
  28. {
  29. RoleNo = roleNo;
  30. RoleName = roleName;
  31. RoleWeight = roleWeight;
  32. TotalWeight = totalWeight;
  33. }
  34. public string RoleNo { get; set; }
  35. public string RoleName { get; set; }
  36. public decimal RoleWeight { get; set; }
  37. public decimal TotalWeight { get; set; }
  38. public decimal RolePer => Math.Round(TotalWeight == 0 ? 0 : RoleWeight * 100 / TotalWeight, 2);
  39. public static WeRoleDto DtoFrom(string roles)
  40. {
  41. var node = new RoleNode();
  42. var arr = roles.Split(':');
  43. node.RoleNo = arr[0];
  44. if (arr.Length > 1)
  45. {
  46. node.RoleName = arr[1];
  47. }
  48. if (arr.Length > 2)
  49. {
  50. node.SetWeight(int.TryParse(arr[2], out var w) ? w : 0);
  51. }
  52. if (arr.Length > 3)
  53. {
  54. node.SetTotalWeight(int.TryParse(arr[3], out var w) ? w : 0);
  55. }
  56. return new WeRoleDto(node.RoleNo, node.RoleName, node.RoleWeight, node.TotalWeight);
  57. }
  58. public override string ToString()
  59. {
  60. return new RoleNode(RoleNo, RoleName, RoleWeight, TotalWeight).ToString();
  61. }
  62. }
  63. }