public async Task <StartSwitchResponse> StartSwitch() { var response = new StartSwitchResponse(); var registerResponse = await RegisterPostcode(TestPostcode, _apiKey); if (registerResponse.NextStep().Is(CurrentSupplyRel)) { return(await GetStartSwitchResponse(registerResponse)); } if (!registerResponse.NextStep().Is(RegionRel)) { return(response); } var regionTemplate = await RegionTemplate(registerResponse); if (!RegionSuggested(regionTemplate)) { return(response); } var regionUrl = registerResponse.Links.First(l => l.Rel.Contains(RegionRel) && l.Rel.Contains(NextRel)).Uri; var regionConfirmationResponse = await _ehlHttpClient.PostApiGetResponse(regionUrl, regionTemplate, Environment); if (regionConfirmationResponse.NextStep().Is(CurrentSupplyRel)) { return(await GetStartSwitchResponse(regionConfirmationResponse)); } return(response); }
private StartSwitchResponse MapToEnergyResponse(ApiResponse ehlResponse) { var response = new StartSwitchResponse { CompareGas = (bool)GetEhlItemForName(ehlResponse, "compareGas").Data, CompareElectricity = (bool)GetEhlItemForName(ehlResponse, "compareElec").Data }; var group = GetEhlGroupForName(ehlResponse, "gasTariff"); response.DefaultGasSupplierId = int.Parse(GetEhlItemForName(group, "supplier").Data.ToString()); response.DefaultGasSupplierTariffId = int.Parse(GetEhlItemForName(group, "supplierTariff").Data.ToString()); response.DefaultGasPaymentMethod = (string)GetEhlItemForName(group, "paymentMethod").Data; group = GetEhlGroupForName(ehlResponse, "elecTariff"); response.DefaultElecSupplierId = int.Parse(GetEhlItemForName(group, "supplier").Data.ToString()); response.DefaultElecSupplierTariffId = int.Parse(GetEhlItemForName(group, "supplierTariff").Data.ToString()); response.DefaultElecPaymentMethod = (string)GetEhlItemForName(group, "paymentMethod").Data; response.DefaultElecEconomy7 = (bool)GetEhlItemForName(group, "economy7").Data; response.SwitchStatusUrl = ehlResponse.Links.First(l => l.Rel.Equals(SwitchRel)).Uri; response.CurrentSupplyUrl = ehlResponse.Links.First(l => l.Rel.Contains(CurrentSupplyRel)).Uri; response.CurrentSuppliersUrl = ehlResponse.LinkedDataSources.First(d => d.Rel.Equals(CurrentSuppliesRel)).Uri; return(response); }
public static GetPricesRequest GenerateValidPricesRequest(StartSwitchResponse response) { var request = new GetPricesRequest { CurrentSupplyUrl = response.CurrentSupplyUrl, SwitchUrl = response.SwitchStatusUrl, CompareType = CompareWhat.Both, GasSupplierId = 59, GasTariffId = 301, GasPaymentMethodId = 2, ElectricitySupplierId = 59, ElectricityTariffId = 301, ElectricityPaymentMethodId = 2, ElectricityEco7 = false, PercentageNightUsage = 0, UseDetailedEstimatorForElectricity = false, UseDetailedEstimatorForGas = false }; request.UsageData.GasKwh = 8000; request.UsageData.GasUsagePeriod = UsagePeriod.Quarterly; request.UsageData.ElectricityKwh = 8000; request.UsageData.ElectricityUsagePeriod = UsagePeriod.Quarterly; request.SpendData.GasSpendAmount = 500; request.SpendData.GasSpendPeriod = UsagePeriod.Annually; request.SpendData.ElectricitySpendAmount = 400; request.SpendData.ElectricitySpendPeriod = UsagePeriod.Annually; request.EstimatorData.HeatingUsage = "1"; request.EstimatorData.HouseInsulation = "1"; request.EstimatorData.HouseOccupied = "1"; request.EstimatorData.HouseType = "4"; request.EstimatorData.MainCookingSource = "1"; request.EstimatorData.MainHeatingSource = "0"; request.EstimatorData.NumberOfBedrooms = "4"; request.EstimatorData.NumberOfOccupants = "4"; return(request); }