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 }); }
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); }