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); }
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); }