private async Task InitializeGasPumps(Request request)
        {
            if (GasPumpsDataService.GasPumpsByStore != null)
            {
                return;
            }

            var gasScanInfo = new ScanInfo();

            gasScanInfo.ScannedText = GetGasolineItemId(request);
            var getScanResultRequest = new GetScanResultRequest(gasScanInfo);
            var response             = await request.RequestContext.Runtime.ExecuteAsync <GetScanResultResponse>(getScanResultRequest, request.RequestContext);

            if (response.Result.MaskType == BarcodeMaskType.Item)
            {
                GasPumpsDataService.COST_PER_UNIT = response.Result.Product.BasePrice;
            }

            var orgUnits = await GetAllOrgUnitsAsync(request);

            GasPumpsByStore = new Dictionary <string, IEnumerable <GasPump> >();
            var itemId = GetGasolineItemId(request);

            if (orgUnits.Any())
            {
                foreach (var orgUnit in orgUnits)
                {
                    var gasPumps = CreateGasPumps(orgUnit);
                    GasPumpsByStore.Add(orgUnit.OrgUnitNumber, gasPumps);

                    var stationDetails = new GasStationDetails(orgUnit.OrgUnitNumber, itemId);
                    stationDetails.GasPumpCount = gasPumps.Count;
                    var daysSinceDelivery = (orgUnit.RecordId % 6) + 1;
                    stationDetails.LastGasDeliveryTime = DateTimeOffset.UtcNow.AddDays(daysSinceDelivery * -1);
                    var calculatedTime = DateTimeOffset.UtcNow.AddDays(7 - daysSinceDelivery).AddHours(orgUnit.RecordId % 8).AddMinutes(orgUnit.RecordId % 60);
                    stationDetails.NextGasDeliveryTime = new DateTimeOffset(calculatedTime.Year, calculatedTime.Month, calculatedTime.Day, calculatedTime.Hour, 0, 0, calculatedTime.Offset);
                    stationDetails.GasTankCapacity     = stationDetails.GasPumpCount * 1000;
                    stationDetails.GasTankLevel        = stationDetails.GasTankCapacity - (stationDetails.GasTankCapacity / 10 * daysSinceDelivery);
                    stationDetails.GasBasePrice        = GasPumpsDataService.COST_PER_UNIT;
                    GasStations.Add(stationDetails);
                }
            }
        }
 public GetGasStationDetailsDataResponse(GasStationDetails details)
 {
     this.Details = details;
 }