Exemplo n.º 1
0
        public async Task FetchAndSaveVillages()
        {
            var responseString = await _valueRetailAPI.GetValueRetailAPIData(new ValueRetailCommanRequestModel(), "all", "Villages");

            VillageResponse responseData = new VillageResponse();

            responseData = Mapper <VillageResponse> .MapJsonStringToObject(responseString.Result);

            foreach (var village in responseData.Villages)
            {
                try
                {
                    var VRVillage = _valueRetailVillageRepository.GetByVillageCode(village.VillageCode);
                    if (VRVillage == null)
                    {
                        VRVillage = _valueRetailVillageRepository.Save(new ValueRetailVillage
                        {
                            AltId        = Guid.NewGuid(),
                            VillageName  = village.VillageName,
                            VillageCode  = village.VillageCode,
                            CultureCode  = village.CultureCode,
                            CurrencyCode = village.CurrencyCode,
                            ModifiedBy   = Guid.NewGuid(),
                            IsEnabled    = true
                        });
                    }
                }
                catch (Exception ex)
                {
                    _logger.Log(LogCategory.Error, new Exception("Failed to save Value Retail Villages in Db", ex));
                }
            }
        }
Exemplo n.º 2
0
        protected override async Task Handle(ChauffeurDrivenCommand command)
        {
            var villages = _valueRetailVillageRepository.GetAll();

            foreach (var village in villages)
            {
                var httpRequest = new ValueRetailCommanRequestModel
                {
                    from        = DateTime.UtcNow,
                    cultureCode = village.CultureCode,
                    villageCode = village.VillageCode
                };

                var routeResponseString = await _valueRetailAPI.GetValueRetailAPIData(httpRequest, "Routes", "ChauffeurDriven");

                ChauffeurDrivenRouteResponse chauffeurDrivenRouteResponse = Mapper <ChauffeurDrivenRouteResponse> .MapFromJson(routeResponseString.Result);

                if (chauffeurDrivenRouteResponse.RequestStatus.Success)
                {
                    foreach (var route in chauffeurDrivenRouteResponse.Routes)
                    {
                        var @event = SaveToEvent(route, village);
                        if (objectComparersFactory.GetObjectsComparer <Event>().Compare(@event, new Event()))
                        {
                            throw new TaskCanceledException("Data Insertion Failed for Value Retail Chauffeur Drive.");
                        }
                        else
                        {
                            var cityAndCurrency = await SaveCityStateCountry(route, village);

                            var eventVenueMapping = SaveToVenue(route, @event, cityAndCurrency);
                            SaveDepartureLocations(route, eventVenueMapping);
                            var eventDetail = SaveToEventDetails(@event, eventVenueMapping);
                            SaveTicketDetail(route, eventDetail, cityAndCurrency);
                            SaveBlockedDates(route, @event, eventDetail);
                        }
                    }
                }
            }
        }
Exemplo n.º 3
0
        public async Task FetchAndSaveRoutes(ValueRetailVillage village)
        {
            var httpRequest = new ValueRetailCommanRequestModel
            {
                villageCode = village.VillageCode
            };

            var responseString = await _valueRetailAPI.GetValueRetailAPIData(httpRequest, "Journeys", "ShoppingExpress");

            ShoppingExpressJourney responseData = new ShoppingExpressJourney();

            try
            {
                responseData = Mapper <ShoppingExpressJourney> .MapFromJson(responseString.Result);
            }
            catch (ArgumentNullException ex)
            {
                throw ex;
            }

            foreach (var journey in responseData.Journeys)
            {
                foreach (var route in journey.Routes)
                {
                    try
                    {
                        var currentRoute = _valueRetailRouteRepository.GetByRouteIdStopIdLinkedRouteId(route.RouteId, route.StopId, route.LinkedRouteId);
                        if (currentRoute == null)
                        {
                            currentRoute = _valueRetailRouteRepository.Save(new ValueRetailRoute
                            {
                                VillageId       = village.Id,
                                JourneyType     = journey.JourneyType,
                                RouteId         = route.RouteId,
                                DepartureTime   = route.DepartureTime,
                                LinkedRouteId   = route.LinkedRouteId,
                                ReturnTime      = route.ReturnTime,
                                Name            = route.Name,
                                LocationId      = route.LocationId,
                                LocationName    = route.LocationName,
                                LocationAddress = route.LocationAddress,
                                StopId          = route.StopId,
                                StopOrder       = route.StopOrder,
                                Latitude        = route.Latitude,
                                Longitude       = route.Longitude,
                                AdultPrice      = route.Prices.Adult == null ? 0 : Convert.ToDecimal(route.Prices.Adult.Price),
                                ChildrenPrice   = route.Prices.Children == null ? 0 : Convert.ToDecimal(route.Prices.Children.Price),
                                FamilyPrice     = route.Prices.Family == null ? 0 : Convert.ToDecimal(route.Prices.Family.Price),
                                InfantPrice     = route.Prices.Infant == null ? 0 : Convert.ToDecimal(route.Prices.Infant.Price),
                                UnitPrice       = route.Prices.Unit == null ? 0 : Convert.ToDecimal(route.Prices.Unit.Price),
                                CreatedUtc      = DateTime.UtcNow,
                                CreatedBy       = Guid.NewGuid(),
                            });

                            if (route.ReturnStops != null && route.ReturnStops.Count > 0)
                            {
                                foreach (var returnStop in route.ReturnStops)
                                {
                                    var currentReturnStop = _valueRetailReturnStopsRepository.Save(new ValueRetailReturnStop
                                    {
                                        ValueRetailRouteId = currentRoute.Id,
                                        RouteId            = returnStop.RouteId,
                                        StopId             = returnStop.StopId,
                                        StopOrder          = returnStop.StopOrder,
                                        Name            = returnStop.Name,
                                        LocationId      = returnStop.LocationId,
                                        LocationName    = returnStop.LocationName,
                                        LocationAddress = returnStop.LocationAddress,
                                        ReturnTime      = returnStop.ReturnTime,
                                        Latitude        = returnStop.Latitude,
                                        Longitude       = returnStop.Longitude,
                                        CreatedUtc      = DateTime.UtcNow,
                                        CreatedBy       = Guid.NewGuid(),
                                    });
                                }
                            }
                        }
                    }
                    catch (TaskCanceledException ex)
                    {
                        _logger.Log(LogCategory.Error, ex);
                    }
                    catch (Exception ex)
                    {
                        _logger.Log(LogCategory.Error, new Exception("Failed to save Value Retail Routes in Db", ex));
                    }
                }
            }
        }