using System; using WeEngine.Packages; namespace WeEngine.CommonDto.WeInfo { public class WeRoleDto { public WeRoleDto() { } public WeRoleDto(string roles) { var arr = roles.Split(':'); RoleNo = arr[0]; if (arr.Length > 1) { RoleName = arr[1]; } if (arr.Length > 2) { RoleWeight = int.TryParse(arr[2], out var w) ? w : 0; } if (arr.Length > 3) { TotalWeight = int.TryParse(arr[3], out var w) ? w : 0; } } public WeRoleDto(string roleNo, string roleName, decimal roleWeight, decimal totalWeight) { RoleNo = roleNo; RoleName = roleName; RoleWeight = roleWeight; TotalWeight = totalWeight; } public string RoleNo { get; set; } public string RoleName { get; set; } public decimal RoleWeight { get; set; } public decimal TotalWeight { get; set; } public decimal RolePer => Math.Round(TotalWeight == 0 ? 0 : RoleWeight * 100 / TotalWeight, 2); public static WeRoleDto DtoFrom(string roles) { var node = new RoleNode(); var arr = roles.Split(':'); node.RoleNo = arr[0]; if (arr.Length > 1) { node.RoleName = arr[1]; } if (arr.Length > 2) { node.SetWeight(int.TryParse(arr[2], out var w) ? w : 0); } if (arr.Length > 3) { node.SetTotalWeight(int.TryParse(arr[3], out var w) ? w : 0); } return new WeRoleDto(node.RoleNo, node.RoleName, node.RoleWeight, node.TotalWeight); } public override string ToString() { return new RoleNode(RoleNo, RoleName, RoleWeight, TotalWeight).ToString(); } } }