示例#1
0
        // 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);
        }
示例#2
0
        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);
        }