// NOTE: This is different between versions private PopulatedClaim MapToPopulatedClaim(Claim claim, IEnumerable <ClaimValue> postcodeClaims, string region) { var matchedClaims = postcodeClaims.Where(x => x.ClaimId == claim.Id).OrderBy(x => x.Order).ToList(); if (!matchedClaims.Any()) { return(null); } var popClaim = new PopulatedClaim() { Postcode = matchedClaims.FirstOrDefault().Postcode, Id = claim.Id, ClaimName = claim.Heading, ClaimValue = matchedClaims.FirstOrDefault().Value?.ToString("##,##0") ?? string.Empty, Threshold = matchedClaims.FirstOrDefault().Threshold, SourceId = claim.SourceId, Type = claim.Type, Industry = claim.Industry, ImagePath = !string.IsNullOrEmpty(claim.ImagePath) ? claim.ImagePath : "img/icon1.png" }; var showHardcodedValue = false; if (region != "aus" && popClaim.Type == Type.Static) { //if its not aus then we show the hardcoded value popClaim.ClaimValue = "117.8 Million"; showHardcodedValue = true; } else if (region == "aus" && popClaim.Type == Type.Static && matchedClaims.FirstOrDefault().Value < 500) { //if it is aus but there isn't a big enough value, show the hardcoded value popClaim.ClaimValue = "117.8 Million"; showHardcodedValue = true; } if (!string.IsNullOrEmpty(claim.ClaimText)) { var splitText = claim.ClaimText.Split(new string[] { "[VALUE]" }, StringSplitOptions.None).ToList(); var formattedClaimText = splitText.FirstOrDefault(); try { if (showHardcodedValue) { formattedClaimText = $"American Express has over 117.8 million Cards in Force world wide"; } else { for (var i = 0; i < matchedClaims.Count; i++) { formattedClaimText += $"{matchedClaims[i].Value?.ToString("##,##0") ?? string.Empty} {splitText[i + 1]?.TrimStart(' ') ?? string.Empty} "; } } } catch (Exception ex) { //TODO: improve. formatting fails sometimes } popClaim.FormattedClaimText = formattedClaimText; } else { popClaim.FormattedClaimText = string.Empty; } return(popClaim); }
private PopulatedClaim MapToSummedPopulatedClaim(Claim claim, IEnumerable <ClaimValue> postcodeClaims) { var matchedClaims = postcodeClaims.Where(x => x.ClaimId == claim.Id).OrderBy(x => x.Order).ToList(); if (!matchedClaims.Any()) { return(null); } var sumVal = matchedClaims.Where(x => x.Order == 0).Sum(x => x.Value); var popClaim = new PopulatedClaim() { Postcode = matchedClaims.FirstOrDefault().Postcode, Id = claim.Id, ClaimName = claim.Heading, ClaimValue = sumVal?.ToString("##,##0") ?? string.Empty, Threshold = matchedClaims.FirstOrDefault().Threshold, SourceId = claim.SourceId, Type = claim.Type, Industry = claim.Industry, ImagePath = !string.IsNullOrEmpty(claim.ImagePath) ? claim.ImagePath : "img/icon1.png" }; if (popClaim.Type == Type.Static) { popClaim.ClaimValue = "117.8 Million"; } if (!string.IsNullOrEmpty(claim.ClaimText)) { var splitText = claim.ClaimText.Split(new string[] { "[VALUE]" }, StringSplitOptions.None).ToList(); var formattedClaimText = splitText.FirstOrDefault(); try { for (var i = 0; i < matchedClaims.Count; i++) { if (i == 0 && popClaim.Type == Type.Static) { formattedClaimText += $"117.8 {splitText[i + 1]?.TrimStart(' ') ?? string.Empty} "; } else { formattedClaimText += $"{sumVal?.ToString("##,##0") ?? string.Empty} {splitText[i + 1]?.TrimStart(' ') ?? string.Empty} "; } } } catch (Exception ex) { //TODO: improve. formatting fails sometimes } popClaim.FormattedClaimText = formattedClaimText; } else { popClaim.FormattedClaimText = string.Empty; } return(popClaim); }