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);
        }
Beispiel #3
0
        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);
        }