public void SetUp()
        {
            _expectedSingleGas = new List <EnergySupply>();
            _expectedDualFuels = new List <EnergySupply>();

            var futureSupplies = new FutureSupplies
            {
                Results = new List <Result>
                {
                    new Result
                    {
                        SupplyType = new SupplyType
                        {
                            Id = "4"
                        },
                        EnergySupplies = _expectedDualFuels
                    },
                    new Result
                    {
                        SupplyType = new SupplyType
                        {
                            Id = "1"
                        },
                        EnergySupplies = _expectedSingleGas
                    }
                }
            };

            _sut = new ResultsModel(futureSupplies);
        }
示例#2
0
        public static List <PriceResult> MapToPriceResults(this FutureSupplies ehlResults, GetPricesRequest request)
        {
            var mappedResults = new List <PriceResult>();

            var ehlResultsSet = ehlResults.Results.First(r => r.SupplyType.Id.Equals(request.CompareType.EhlSupplyType()));

            foreach (var supply in ehlResultsSet.EnergySupplies)
            {
                var paymentMethod = int.Parse(supply.SupplyDetails.PaymentMethod.Id);
                var priceResult   = new PriceResult
                {
                    AnnualSavings                   = decimal.Round(supply.ExpectedAnnualSavings, 0),
                    AnnualSpend                     = decimal.Round(supply.ExpectedAnnualSpend, 0),
                    ElectricityAnnualSavings        = supply.ExpectedElecAnnualSavings,
                    ElectricityAnnualSpend          = supply.ExpectedElecAnnualSpend,
                    ElectricityEstimatedMonthlyCost = supply.EstimatedElecMonthlyCost,
                    GasAnnualSavings                = supply.ExpectedGasAnnualSavings,
                    GasAnnualSpend                  = supply.ExpectedGasAnnualSpend,
                    GasEstimatedMonthlyCost         = supply.EstimatedGasMonthlyCost,
                    ResultId                = supply.Id,
                    SupplierId              = int.Parse(supply.Supplier.Id),
                    SupplierName            = supply.Supplier.Name,
                    SupplierRating          = supply.Supplier.ServiceStarRating,
                    TariffId                = int.Parse(supply.SupplyDetails.Id),
                    TariffName              = supply.SupplyDetails.Name,
                    TariffDetailsUrl        = supply.SupplyDetails.FurtherDetails.Uri,
                    PaymentMethod           = (PaymentMethodType)paymentMethod,
                    PaymentMethodId         = paymentMethod,
                    CanApply                = supply.CanApply,
                    CappedOrFixed           = supply.SupplyDetails.Attributes.Any(a => a.Equals("CappedOrFixed", StringComparison.InvariantCultureIgnoreCase)),
                    Green                   = supply.SupplyDetails.Attributes.Any(a => a.Equals("Green", StringComparison.InvariantCultureIgnoreCase)),
                    AccurateMonthlyBilling  = supply.SupplyDetails.Attributes.Any(a => a.Equals("AccurateMonthlyBilling", StringComparison.InvariantCultureIgnoreCase)),
                    StayWarm                = supply.SupplyDetails.Attributes.Any(a => a.Equals("StayWarm", StringComparison.InvariantCultureIgnoreCase)),
                    Economy10               = supply.SupplyDetails.Attributes.Any(a => a.Equals("Economy10", StringComparison.InvariantCultureIgnoreCase)),
                    PaperLessBilling        = supply.SupplyDetails.Attributes.Any(a => a.Equals("PaperlessBilling", StringComparison.InvariantCultureIgnoreCase)),
                    PaperBilling            = supply.SupplyDetails.Attributes.Any(a => a.Equals("PaperBilling", StringComparison.InvariantCultureIgnoreCase)),
                    NoStandingCharges       = supply.SupplyDetails.Attributes.Any(a => a.Equals("NoStandingCharges", StringComparison.InvariantCultureIgnoreCase)),
                    RenewableFuelPercentage = supply.SupplyDetails.RenewableFuelPercentage,
                    TotalExitFees           = CalculateTotalExitFees(request.CompareType, supply.SupplyDetails.ExitFeesGas, supply.SupplyDetails.ExitFeesElectricity),
                    CheapestBigSupplier     = PromotionsValidator(supply.Promotions, "CheapestBigSupplier"),
                    CheapestLongFixed       = PromotionsValidator(supply.Promotions, "CheapestLongFixed"),
                    CheapestShortFixed      = PromotionsValidator(supply.Promotions, "CheapestShortFixed"),
                    Cheapest                = PromotionsValidator(supply.Promotions, "Cheapest"),
                    CheapestMediumFixed     = PromotionsValidator(supply.Promotions, "CheapestMediumFixed"),
                    CheapestCanApply        = PromotionsValidator(supply.Promotions, "CheapestCanApply"),
                    CheapestGreen           = PromotionsValidator(supply.Promotions, "CheapestGreen"),
                    CheapestHighestRated    = PromotionsValidator(supply.Promotions, "CheapestHighestRated")
                };

                priceResult.SupplierRating = priceResult.SupplierRating > 5 ? 5 : priceResult.SupplierRating;

                // Key features
                priceResult.KeyFeatures = supply.SupplyDetails.KeyFeatures.ToPriceFeatures();

                // Set CTM custom feature text
                if (request.TariffCustomFeatureEnabled)
                {
                    priceResult.CustomFeatureText      = SetCustomFeatureText(string.Concat(priceResult.SupplierName, priceResult.TariffName).ToLowerInvariant(), request.CustomFeatures);
                    priceResult.HasTariffCustomFeature = !string.IsNullOrWhiteSpace(priceResult.CustomFeatureText);
                }

                mappedResults.Add(priceResult);
            }

            return(mappedResults);
        }