private MedalDetail BuildNewCharecteristics(MedalCalculations medal) { var detail = new MedalDetail { Score = BuildNewScore(medal), MedalCharacteristics = new List <MedalCharacteristic>() }; DateTime?businessSeniority = medal.BusinessSeniority; string businessSeniorityStr = businessSeniority.HasValue ? businessSeniority.Value.ToString("yyyy-MM-dd") : null; DateTime?regDate = medal.EzbobSeniority; string ezbobSeniorityStr = regDate.HasValue ? regDate.Value.ToString("yyyy-MM-dd") : null; detail.MedalCharacteristics.Add(new MedalCharacteristic { CustomerCharacteristic = "Business Score", Value = medal.BusinessScore.ToString("N0"), WeightUsed = medal.BusinessScoreWeight, Score = medal.BusinessScoreScore, Grade = (int)medal.BusinessScoreGrade }); detail.MedalCharacteristics.Add(new MedalCharacteristic { CustomerCharacteristic = "Free Cash Flow", Value = medal.FreeCashFlow.ToString("N2"), WeightUsed = medal.FreeCashFlowWeight, Score = medal.FreeCashFlowScore, Grade = (int)medal.FreeCashFlowGrade }); detail.MedalCharacteristics.Add(new MedalCharacteristic { CustomerCharacteristic = "Annual Turnover", Value = medal.AnnualTurnover.ToString("N2"), WeightUsed = medal.AnnualTurnoverWeight, Score = medal.AnnualTurnoverScore, Grade = (int)medal.AnnualTurnoverGrade }); detail.MedalCharacteristics.Add(new MedalCharacteristic { CustomerCharacteristic = "Tangible Equity", Value = medal.TangibleEquity.ToString("N2"), WeightUsed = medal.TangibleEquityWeight, Score = medal.TangibleEquityScore, Grade = (int)medal.TangibleEquityGrade }); detail.MedalCharacteristics.Add(new MedalCharacteristic { CustomerCharacteristic = "Business Seniority", Value = businessSeniorityStr, WeightUsed = medal.BusinessSeniorityWeight, Score = medal.BusinessSeniorityScore, Grade = (int)medal.BusinessSeniorityGrade }); detail.MedalCharacteristics.Add(new MedalCharacteristic { CustomerCharacteristic = "Consumer Score", Value = medal.ConsumerScore.ToString("N0"), WeightUsed = medal.ConsumerScoreWeight, Score = medal.ConsumerScoreScore, Grade = (int)medal.ConsumerScoreGrade }); detail.MedalCharacteristics.Add(new MedalCharacteristic { CustomerCharacteristic = "Net Worth", Value = medal.NetWorth.ToString("N2"), WeightUsed = medal.NetWorthWeight, Score = medal.NetWorthScore, Grade = (int)medal.NetWorthGrade }); detail.MedalCharacteristics.Add(new MedalCharacteristic { CustomerCharacteristic = "Marital Status", Value = medal.MaritalStatus, WeightUsed = medal.MaritalStatusWeight, Score = medal.MaritalStatusScore, Grade = (int)medal.MaritalStatusGrade }); detail.MedalCharacteristics.Add(new MedalCharacteristic { CustomerCharacteristic = "Num Of Loans", Value = medal.NumOfLoans.ToString("N0"), WeightUsed = medal.NumOfLoansWeight, Score = medal.NumOfLoansScore, Grade = (int)medal.NumOfLoansGrade }); detail.MedalCharacteristics.Add(new MedalCharacteristic { CustomerCharacteristic = "Num Of Early Repayments", Value = medal.NumOfEarlyRepayments.ToString("N0"), WeightUsed = medal.NumOfEarlyRepaymentsWeight, Score = medal.NumOfEarlyRepaymentsScore, Grade = (int)medal.NumOfEarlyRepaymentsGrade }); detail.MedalCharacteristics.Add(new MedalCharacteristic { CustomerCharacteristic = "Num Of Late Repayments", Value = medal.NumOfLateRepayments.ToString("N0"), WeightUsed = medal.NumOfLateRepaymentsWeight, Score = medal.NumOfLateRepaymentsScore, Grade = (int)medal.NumOfLateRepaymentsGrade }); detail.MedalCharacteristics.Add(new MedalCharacteristic { CustomerCharacteristic = "Num Of Stores", Value = medal.NumberOfStores.ToString("N0"), WeightUsed = medal.NumberOfStoresWeight, Score = medal.NumberOfStoresScore, Grade = (int)medal.NumberOfStoresGrade }); detail.MedalCharacteristics.Add(new MedalCharacteristic { CustomerCharacteristic = "Positive Feedbacks", Value = medal.PositiveFeedbacks.ToString("N0"), WeightUsed = medal.PositiveFeedbacksWeight, Score = medal.PositiveFeedbacksScore, Grade = (int)medal.PositiveFeedbacksGrade }); detail.MedalCharacteristics.Add(new MedalCharacteristic { CustomerCharacteristic = "Ezbob Seniority", Value = ezbobSeniorityStr, WeightUsed = medal.EzbobSeniorityWeight, Score = medal.EzbobSeniorityScore, Grade = (int)medal.EzbobSeniorityGrade }); GetTotal(detail); return(detail); }
private MedalDetail BuildCharecteristic(ScoringResult scoringResult) { var medalDetail = new MedalDetail(); string[] splitACDescription = scoringResult.ACDescription.Split(';'); string[] splitWeight = scoringResult.Weights.Split(';'); string[] splitACParameters = scoringResult.ACParameters.Split(';'); string[] splitMaxPoss = scoringResult.MAXPossiblePoints.Split(';'); const string pattern = @"([0-9]*\.[0-9]+|[0-9]+)"; var regex = new Regex(pattern); medalDetail.MedalCharacteristics = new List <MedalCharacteristic>(); for (var i = 0; i <= splitACDescription.Length - 1; i++) { medalDetail.MedalCharacteristics.Add(new MedalCharacteristic { CustomerCharacteristic = splitACDescription[i], WeightUsed = Convert.ToDecimal(splitWeight[i], CultureInfo.InvariantCulture), ACParameters = Convert.ToDecimal(regex.Match(splitACParameters[i]).ToString(), CultureInfo.InvariantCulture), MaxPoss = Convert.ToDecimal(splitMaxPoss[i], CultureInfo.InvariantCulture) }); } medalDetail.Score = BuildScore(scoringResult); GetTotal(medalDetail); return(medalDetail); }
private void GetTotal(MedalDetail detail) { detail.TotalACParameters = detail.MedalCharacteristics.Sum(m => m.ACParameters); detail.TotalMaxPoss = detail.MedalCharacteristics.Sum(m => m.MaxPoss); detail.TotalWeightUsed = detail.MedalCharacteristics.Sum(m => m.WeightUsed); detail.TotalPointsObtainedPercent = detail.TotalMaxPoss == 0 ? 0 : Math.Round((detail.TotalACParameters / detail.TotalMaxPoss * 100), 1); detail.TotalGrade = detail.MedalCharacteristics.Sum(x => x.Grade); detail.TotalScore = detail.MedalCharacteristics.Sum(x => x.Score); }