コード例 #1
0
        protected override async Task Handle(ShoppingExpressCommand command)
        {
            VillageDescription villageDescription = Mapper <VillageDescription> .MapFromJson(await LoadJson());

            var villages = _valueRetailVillageRepository.GetAll();

            foreach (var village in villages)
            {
                var routes = FilterExpressRoutes(village.Id);

                var firstRoute = routes.FirstOrDefault();

                if (firstRoute != null)
                {
                    try
                    {
                        var @event          = SaveToEvent(firstRoute, villageDescription, village);
                        var cityAndCurrency = await SaveCityStateCountry(firstRoute, village);

                        var eventVenueMapping = SaveToVenue(firstRoute, @event, cityAndCurrency);
                        var eventDetail       = SaveToEventDetails(firstRoute, eventVenueMapping, @event);
                        SaveTicketDetails(firstRoute, eventDetail, cityAndCurrency);
                        await SaveBlockedDates(firstRoute, @event, eventDetail, village);

                        SaveDepartureLocations(routes, eventVenueMapping);
                    }
                    catch (Exception ex)
                    {
                        _logger.Log(Logging.Enums.LogCategory.Error, ex);
                    }
                }
            }
        }
コード例 #2
0
    private BaseCommand SeekFood()
    {
        var food_inside = from food in Description.Inventory where food.GenericName == EntityType.Food select food;

        if (food_inside.Count() > 0)
        {
            return new Interaction
                   {
                       CurrentMood = Mood.Happy,
                       Style       = InteractionStyle.Eat,
                       TargetID    = food_inside.ElementAt(0).EntityID
                   }
        }
        ;

        var closest = findClosest(from eon in Surroundings
                                  where eon.GenericName == EntityType.Food
                                  select eon) as ResourceDescription;

        if (closest != null)
        {
            if (canInteract(closest))
            {
                return new Interaction
                       {
                           CurrentMood = Mood.Happy,
                           Style       = InteractionStyle.Eat,
                           TargetID    = closest.EntityID
                       }
            }
            ;

            else
            {
                return new Movement
                       {
                           CurrentMood = Mood.Happy,
                           Style       = MovementStyle.Run,
                           xCoord      = closest.xCoord,
                           yCoord      = closest.yCoord
                       }
            };
        }

        VillageDescription myVillage = MyHive.MyVillage;

        if (canInteract(myVillage))
        {
            if (myVillage.FoodInBank > 0)
            {
                return new MagazinePull
                       {
                           CurrentMood = Mood.Happy,
                           VillageID   = myVillage.EntityID,
                           Type        = ResourceType.Food
                       }
            }
            ;
            else
            {
                return new Wait
                       {
                           CurrentMood = Mood.Angry
                       }
            };
        }
        else
        {
            return new Movement
                   {
                       CurrentMood = Mood.Angry,
                       Style       = MovementStyle.Walk,
                       xCoord      = myVillage.xCoord,
                       yCoord      = myVillage.yCoord
                   }
        };
    }
コード例 #3
0
        public Event SaveToEvent(ValueRetailExpressData valueRetailExpressRoute, VillageDescription villageDescription, ValueRetailVillage village)
        {
            string eventName = $"Luxury Shopping Trip from {_toEnglishTranslator.TranslateToEnglish(valueRetailExpressRoute.Name)}";

            var eventResult = new Event();

            eventResult = _eventRepository.GetByEventName(eventName);
            if (eventResult == null)
            {
                eventResult = _eventRepository.Save(new Event
                {
                    AltId                  = Guid.NewGuid(),
                    Name                   = eventName,
                    EventCategoryId        = ValueRetailEventCategoryConstant.ShoppingPackageParentCategory,
                    EventTypeId            = EventType.Perennial,
                    Description            = villageDescription.desc.FirstOrDefault(x => x.name == village.VillageCode).description,
                    ClientPointOfContactId = 2,
                    FbEventId              = null,
                    MetaDetails            = null,
                    IsFeel                 = true,
                    EventSourceId          = EventSource.ValueRetail,
                    TermsAndConditions     = "",
                    IsPublishedOnSite      = true,
                    PublishedDateTime      = DateTime.Now,
                    PublishedBy            = null,
                    TestedBy               = null,
                    Slug                   = valueRetailExpressRoute.Name.Replace(" ", "-"),
                    IsEnabled              = true,
                    ModifiedBy             = tempAltId,
                    UpdatedBy              = tempAltId,
                    UpdatedUtc             = DateTime.UtcNow,
                    CreatedBy              = tempAltId,
                    CreatedUtc             = DateTime.UtcNow
                });

                var eventSiteIdMapping = _eventSiteIdMappingRepository.GetByEventId(eventResult.Id);
                if (eventSiteIdMapping == null)
                {
                    _eventSiteIdMappingRepository.Save(new Contracts.DataModels.EventSiteIdMapping
                    {
                        EventId    = eventResult.Id,
                        SortOrder  = 999,
                        SiteId     = Site.feelaplaceSite,
                        ModifiedBy = tempAltId,
                        IsEnabled  = true,
                        CreatedUtc = DateTime.UtcNow,
                        CreatedBy  = tempAltId,
                        UpdatedUtc = DateTime.UtcNow,
                        UpdatedBy  = tempAltId
                    });
                }

                var eventCategoryMapping = _eventCategoryMappingRepository.GetByEventId(eventResult.Id).FirstOrDefault();
                if (eventCategoryMapping == null)
                {
                    _eventCategoryMappingRepository.Save(new Contracts.DataModels.EventCategoryMapping
                    {
                        EventId         = eventResult.Id,
                        EventCategoryId = ValueRetailEventCategoryConstant.ShoppingPackageChildCategory,
                        ModifiedBy      = tempAltId,
                        IsEnabled       = true,
                        CreatedUtc      = DateTime.UtcNow,
                        CreatedBy       = tempAltId,
                        UpdatedUtc      = DateTime.UtcNow,
                        UpdatedBy       = tempAltId
                    });
                }

                var days = _daysRepository.GetAll();
                foreach (var day in days)
                {
                    var placeweekOpenDays = _placeWeekOpenDaysRepository.GetByEventIdandDayId(eventResult.Id, day.Id);
                    if (placeweekOpenDays == null)
                    {
                        placeweekOpenDays = _placeWeekOpenDaysRepository.Save(new PlaceWeekOpenDays
                        {
                            AltId      = Guid.NewGuid(),
                            EventId    = eventResult.Id,
                            DayId      = day.Id,
                            IsSameTime = false,
                            ModifiedBy = tempAltId,
                            IsEnabled  = true,
                            CreatedUtc = DateTime.UtcNow,
                            CreatedBy  = tempAltId,
                            UpdatedUtc = DateTime.UtcNow,
                            UpdatedBy  = tempAltId
                        });
                    }
                }
            }
            return(eventResult);
        }