Beispiel #1
0
        public PageContentModel GetPlacePageContent(DynamicContentResponseModel dynamicContentResponseModel)
        {
            PageContentModel placePageContent = new PageContentModel();
            string           title            = String.Empty;
            string           description      = string.Empty;

            if (dynamicContentResponseModel.ParentCategoryName == "See & Do")
            {
                title       = DynamicContent.PlacePage.SeeAndDoCategory.Title;
                description = DynamicContent.PlacePage.SeeAndDoCategory.Description;
            }
            else if (dynamicContentResponseModel.ParentCategoryName == "Eat & Drink")
            {
                title       = DynamicContent.PlacePage.EatAndDrink.Title;
                description = DynamicContent.PlacePage.EatAndDrink.Description;
            }
            else if (dynamicContentResponseModel.ParentCategoryName == "Shop Local")
            {
                title       = DynamicContent.PlacePage.ShopLocal.Title;
                description = DynamicContent.PlacePage.ShopLocal.Description;
            }
            else if (dynamicContentResponseModel.ParentCategoryName == "Experiences & Activities")
            {
                title       = DynamicContent.PlacePage.ExperiencesAndActivities.Title;
                description = DynamicContent.PlacePage.ExperiencesAndActivities.Description;
            }
            else if (dynamicContentResponseModel.ParentCategoryName == "Live Stream" || dynamicContentResponseModel.MasterEventTypeId == MasterEventType.Online)
            {
                title       = DynamicContent.PlacePage.LiveStream.Title;
                description = DynamicContent.PlacePage.LiveStream.Description;
            }

            title       = title.Replace("placeName", dynamicContentResponseModel.PlaceName).Replace("cityName", dynamicContentResponseModel.CityName).Replace("countryName", dynamicContentResponseModel.CountryName);
            description = description.Replace("placeName", dynamicContentResponseModel.PlaceName).Replace("cityName", dynamicContentResponseModel.CityName).Replace("countryName", dynamicContentResponseModel.CountryName);

            placePageContent.Title       = title;
            placePageContent.Description = description;

            return(placePageContent);
        }
        public DynamicContentQueryResult Handle(DynamicContentQuery query)
        {
            DynamicContentResponseModel dynamicContentData = new DynamicContentResponseModel();

            try
            {
                //Get data for the Place Page
                if (query.Url.Contains("/place/"))
                {
                    var slug = query.Url.Split("/");
                    if (slug.Length >= 5)
                    {
                        var eventModelData = _eventRepository.GetAllBySlug(slug[5]).FirstOrDefault();
                        if (eventModelData != null)
                        {
                            dynamicContentData.PlaceName          = eventModelData.Name;
                            dynamicContentData.VenueName          = eventModelData.Venue;
                            dynamicContentData.CityName           = eventModelData.CityName;
                            dynamicContentData.StateName          = eventModelData.StateName;
                            dynamicContentData.CountryName        = eventModelData.CountryName;
                            dynamicContentData.ParentCategoryName = eventModelData.ParentCategory;
                            dynamicContentData.ParentCategoryUrl  = "/c/" + eventModelData.ParentCategorySlug + "?category=" + eventModelData.ParentCategoryId;
                            dynamicContentData.SubCategoryName    = eventModelData.Category;
                            dynamicContentData.SubCategoryUrl     = "/c/" + eventModelData.ParentCategorySlug + "/" + eventModelData.SubCategorySlug + "?category=" + eventModelData.ParentCategoryId + "subcategory=" + eventModelData.EventCategoryId;
                            dynamicContentData.PlaceDescription   = eventModelData.EventDescription;
                            dynamicContentData.AltId = eventModelData.AltId;
                            //Get Data required for product markup
                            var ticketDetailsList = _eventDetailRepository.GetAllTicketDetails(eventModelData.EventDetailId);
                            List <ProductMarkup> productMarkupModelList = new List <ProductMarkup>();

                            ProductMarkup productMarkupModel = new ProductMarkup();
                            productMarkupModel.@type              = "AggregateOffer";
                            productMarkupModel.availabilityEnds   = eventModelData.EventEndDateTime;
                            productMarkupModel.availabilityStarts = eventModelData.EventStartDateTime;
                            productMarkupModel.lowPrice           = eventModelData.MinPrice;
                            productMarkupModel.highPrice          = eventModelData.MaxPrice;
                            productMarkupModel.priceCurrency      = eventModelData.Currency;
                            productMarkupModel.validFrom          = eventModelData.EventStartDateTime;
                            productMarkupModel.availability       = "http://schema.org/InStock";
                            productMarkupModel.url   = query.Url;
                            productMarkupModel.name  = null;
                            productMarkupModel.price = eventModelData.MinPrice;
                            productMarkupModelList.Add(productMarkupModel);

                            foreach (var currentTicketDetail in ticketDetailsList)
                            {
                                ProductMarkup currentMarkupModel = new ProductMarkup();
                                currentMarkupModel.@type              = "Offer";
                                currentMarkupModel.availabilityEnds   = currentTicketDetail.SalesEndDateTime;
                                currentMarkupModel.availabilityStarts = currentTicketDetail.SalesStartDateTime;
                                currentMarkupModel.priceCurrency      = currentTicketDetail.Currency;
                                currentMarkupModel.validFrom          = currentTicketDetail.SalesStartDateTime;
                                currentMarkupModel.availability       = "http://schema.org/InStock";
                                currentMarkupModel.name      = currentTicketDetail.Name;
                                currentMarkupModel.url       = query.Url;
                                currentMarkupModel.price     = currentTicketDetail.Price;
                                currentMarkupModel.lowPrice  = null;
                                currentMarkupModel.highPrice = null;
                                productMarkupModelList.Add(currentMarkupModel);
                            }
                            dynamicContentData.MasterEventTypeId      = eventModelData.MasterEventTypeId;
                            dynamicContentData.ProductMarkupModelList = productMarkupModelList;
                        }
                    }
                }
                else
                {
                    var content = GetContent(query.Url, query.QueryString);

                    dynamicContentData.CityName            = content.CityName;
                    dynamicContentData.StateName           = content.StateName;
                    dynamicContentData.CountryName         = content.CountryName;
                    dynamicContentData.ParentCategoryName  = content.CategoryName;
                    dynamicContentData.SubCategoryName     = content.SubCategoryName;
                    dynamicContentData.GenericLocationName = content.LocationName;
                }
            }
            catch (Exception e)
            {
                _logger.Log(Logging.Enums.LogCategory.Error, new Exception("Exeception Caught at Dynamic Source Provider " + e.Message, e));
            }
            return(new DynamicContentQueryResult
            {
                DynamicContentResponseModel = dynamicContentData
            });
        }
Beispiel #3
0
        public PageContentModel GetCategoryPageContent(DynamicContentResponseModel dynamicContentResponseModel, bool isSubCat, bool isLocation, bool isCountry)
        {
            PageContentModel categoryPageContent = new PageContentModel();
            string           title       = String.Empty;
            string           description = string.Empty;

            if (dynamicContentResponseModel.ParentCategoryName == "See & Do")
            {
                if (!isLocation)
                {
                    title       = isSubCat ? DynamicContent.CategoryPages.SeeAndDo.SubCategory.Title : DynamicContent.CategoryPages.SeeAndDo.Title;
                    description = isSubCat ? DynamicContent.CategoryPages.SeeAndDo.SubCategory.Description : DynamicContent.CategoryPages.SeeAndDo.Description;
                }
                else
                {
                    if (!isSubCat)
                    {
                        title       = isCountry ? DynamicContent.CategoryPages.SeeAndDo.Country.Title : DynamicContent.CategoryPages.SeeAndDo.City.Title;
                        description = isCountry ? DynamicContent.CategoryPages.SeeAndDo.Country.Description : DynamicContent.CategoryPages.SeeAndDo.City.Description;
                    }
                    else
                    {
                        title       = isCountry ? DynamicContent.CategoryPages.SeeAndDo.SubCategory.Country.Title : DynamicContent.CategoryPages.SeeAndDo.SubCategory.City.Title;
                        description = isCountry ? DynamicContent.CategoryPages.SeeAndDo.SubCategory.Country.Description : DynamicContent.CategoryPages.SeeAndDo.SubCategory.City.Description;
                    }
                }
            }
            else if (dynamicContentResponseModel.ParentCategoryName == "Eat & Drink")
            {
                if (!isLocation)
                {
                    title       = isSubCat ? DynamicContent.CategoryPages.EatAndDrinks.SubCategory.Title : DynamicContent.CategoryPages.EatAndDrinks.Title;
                    description = isSubCat ? DynamicContent.CategoryPages.EatAndDrinks.SubCategory.Description : DynamicContent.CategoryPages.EatAndDrinks.Description;
                }
                else
                {
                    if (!isSubCat)
                    {
                        title       = isCountry ? DynamicContent.CategoryPages.EatAndDrinks.Country.Title : DynamicContent.CategoryPages.EatAndDrinks.City.Title;
                        description = isCountry ? DynamicContent.CategoryPages.EatAndDrinks.Country.Description : DynamicContent.CategoryPages.EatAndDrinks.City.Description;
                    }
                    else
                    {
                        title       = isCountry ? DynamicContent.CategoryPages.EatAndDrinks.SubCategory.Country.Title : DynamicContent.CategoryPages.EatAndDrinks.SubCategory.City.Title;
                        description = isCountry ? DynamicContent.CategoryPages.EatAndDrinks.SubCategory.Country.Description : DynamicContent.CategoryPages.EatAndDrinks.SubCategory.City.Description;
                    }
                }
            }
            else if (dynamicContentResponseModel.ParentCategoryName == "Shop Local")
            {
                if (!isLocation)
                {
                    title       = isSubCat ? DynamicContent.CategoryPages.ShopLocal.SubCategory.Title : DynamicContent.CategoryPages.ShopLocal.Title;
                    description = isSubCat ? DynamicContent.CategoryPages.ShopLocal.SubCategory.Description : DynamicContent.CategoryPages.ShopLocal.Description;
                }
                else
                {
                    if (!isSubCat)
                    {
                        title       = isCountry ? DynamicContent.CategoryPages.ShopLocal.Country.Title : DynamicContent.CategoryPages.ShopLocal.City.Title;
                        description = isCountry ? DynamicContent.CategoryPages.ShopLocal.Country.Description : DynamicContent.CategoryPages.ShopLocal.City.Description;
                    }
                    else
                    {
                        title       = isCountry ? DynamicContent.CategoryPages.ShopLocal.SubCategory.Country.Title : DynamicContent.CategoryPages.ShopLocal.SubCategory.City.Title;
                        description = isCountry ? DynamicContent.CategoryPages.ShopLocal.SubCategory.Country.Description : DynamicContent.CategoryPages.ShopLocal.SubCategory.City.Description;
                    }
                }
            }
            else if (dynamicContentResponseModel.ParentCategoryName == "Experiences & Activities")
            {
                if (!isLocation)
                {
                    title       = isSubCat ? DynamicContent.CategoryPages.ExperiencesAndActivities.SubCategory.Title : DynamicContent.CategoryPages.ExperiencesAndActivities.Title;
                    description = isSubCat ? DynamicContent.CategoryPages.ExperiencesAndActivities.SubCategory.Description : DynamicContent.CategoryPages.ExperiencesAndActivities.Description;
                }
                else
                {
                    if (!isSubCat)
                    {
                        title       = isCountry ? DynamicContent.CategoryPages.ExperiencesAndActivities.Country.Title : DynamicContent.CategoryPages.ExperiencesAndActivities.City.Title;
                        description = isCountry ? DynamicContent.CategoryPages.ExperiencesAndActivities.Country.Description : DynamicContent.CategoryPages.ExperiencesAndActivities.City.Description;
                    }
                    else
                    {
                        title       = isCountry ? DynamicContent.CategoryPages.ExperiencesAndActivities.SubCategory.Country.Title : DynamicContent.CategoryPages.ExperiencesAndActivities.SubCategory.City.Title;
                        description = isCountry ? DynamicContent.CategoryPages.ExperiencesAndActivities.SubCategory.Country.Description : DynamicContent.CategoryPages.ExperiencesAndActivities.SubCategory.City.Description;
                    }
                }
            }
            else if (dynamicContentResponseModel.ParentCategoryName == "Live Stream")
            {
                title       = isSubCat ? DynamicContent.CategoryPages.LiveStream.SubCategory.Title : DynamicContent.CategoryPages.LiveStream.Title;
                description = isSubCat ? DynamicContent.CategoryPages.LiveStream.SubCategory.Description : DynamicContent.CategoryPages.LiveStream.Description;
            }
            string requested_url_query = _httpContextAccessor.HttpContext.Request.QueryString.Value;
            var    locationName        = requested_url_query.Contains("state") ? dynamicContentResponseModel.StateName : dynamicContentResponseModel.CityName;

            title       = title.Replace("SubCategoryName", dynamicContentResponseModel.SubCategoryName).Replace("countryName", dynamicContentResponseModel.CountryName).Replace("cityName", locationName);
            description = description.Replace("SubCategoryName", dynamicContentResponseModel.SubCategoryName).Replace("countryName", dynamicContentResponseModel.CountryName).Replace("cityName", locationName);
            categoryPageContent.Title       = title;
            categoryPageContent.Description = description;
            return(categoryPageContent);
        }