Пример #1
0
        public async Task <StepViewModel> GetTickets(FIL.Contracts.Enums.MasterEventType masterEvent, int eventId)
        {
            try
            {
                var queryResult = await _querySender.Send(new StepQuery
                {
                    EventId         = eventId,
                    MasterEventType = masterEvent
                });

                return(new StepViewModel
                {
                    CompletedStep = queryResult.CompletedStep,
                    CurrentStep = queryResult.CurrentStep,
                    EventId = queryResult.EventId,
                    StepModel = queryResult.StepModel,
                    EventName = queryResult.EventName,
                    EventStatus = queryResult.EventStatus,
                    IsTransacted = queryResult.IsTransacted,
                    EventFrequencyType = queryResult.EventFrequencyType,
                    Success = queryResult.Success
                });
            }
            catch (Exception e)
            {
                return(new StepViewModel {
                });
            }
        }
Пример #2
0
        public List <DynamicPlaceSections> GetAllDynamicSections(IOrderedEnumerable <IGrouping <string, PlaceDetail> > categoryGroup,
                                                                 FIL.Contracts.Enums.MasterEventType masterEventType,
                                                                 PageDetail pageDetail, bool IsMainCategory = false)
        {
            List <DynamicPlaceSections> DynamicPlaceSections = new List <DynamicPlaceSections>();

            foreach (var currentCatGroup in categoryGroup)
            {
                List <PlaceDetail> placeDetailList = new List <PlaceDetail>();
                if ((pageDetail.IsCategoryLevel == true &&
                     !pageDetail.IsCityLevel &&
                     !pageDetail.IsStateLevel &&
                     !pageDetail.IsCountryLevel) &&
                    pageDetail.PageType == Contracts.Enums.PageType.Category &&
                    (masterEventType != Contracts.Enums.MasterEventType.Online && masterEventType != Contracts.Enums.MasterEventType.InRealLife))
                {
                    var groupPlaceByCountry = currentCatGroup.GroupBy(s => s.CountryName).Take(4);
                    foreach (var currentPlaceGroup in groupPlaceByCountry)
                    {
                        placeDetailList.AddRange(currentPlaceGroup.OrderBy(a => Guid.NewGuid()).Take(4).ToList());
                    }
                }
                else
                {
                    placeDetailList.AddRange(currentCatGroup.OrderBy(a => Guid.NewGuid()).Take(16).ToList());
                }

                var DynamicPlaceSection = GetDynamicPlaceSection(placeDetailList, masterEventType, currentCatGroup.Key, pageDetail, IsMainCategory);

                DynamicPlaceSections.Add(DynamicPlaceSection);
            }
            return(DynamicPlaceSections);
        }
Пример #3
0
        public List <DynamicPlaceSections> GetDynamicSections(List <FIL.Contracts.Models.PlaceDetail> placeDetails,
                                                              FIL.Contracts.Enums.MasterEventType masterEventType,
                                                              PageDetail pageDetail)
        {
            List <DynamicPlaceSections> DynamicPlaceSections = new List <DynamicPlaceSections>();

            if (masterEventType == Contracts.Enums.MasterEventType.Online || masterEventType == Contracts.Enums.MasterEventType.InRealLife)
            {
                var categoryGroup = placeDetails.GroupBy(s => s.ParentCategoryId.ToString()).OrderByDescending(x => x.Count());
                DynamicPlaceSections = GetAllDynamicSections(categoryGroup, masterEventType, pageDetail);
            }
            else if (pageDetail.IsCategoryLevel)
            {
                var categoryGroup = placeDetails.GroupBy(s => s.Category).Take(4).OrderByDescending(x => x.Count());
                DynamicPlaceSections = GetAllDynamicSections(categoryGroup, masterEventType, pageDetail);
            }
            else if (pageDetail.IsSubCategoryLevel && !pageDetail.IsCountryLevel && !pageDetail.IsStateLevel && masterEventType != Contracts.Enums.MasterEventType.Online)
            {
                var categoryGroup = placeDetails.GroupBy(s => s.CountryName).Take(4).OrderByDescending(x => x.Count());
                DynamicPlaceSections = GetAllDynamicSections(categoryGroup, masterEventType, pageDetail);
            }
            else if (pageDetail.IsSubCategoryLevel && pageDetail.IsCountryLevel && masterEventType != Contracts.Enums.MasterEventType.Online)
            {
                var categoryGroup = placeDetails.GroupBy(s => s.StateName).Take(4).OrderByDescending(x => x.Count());
                DynamicPlaceSections = GetAllDynamicSections(categoryGroup, masterEventType, pageDetail);
            }
            else if (pageDetail.IsSubCategoryLevel && pageDetail.IsStateLevel && masterEventType != Contracts.Enums.MasterEventType.Online)
            {
                var categoryGroup = placeDetails.GroupBy(s => s.CityName).Take(4).OrderByDescending(x => x.Count());
                DynamicPlaceSections = GetAllDynamicSections(categoryGroup, masterEventType, pageDetail);
            }
            else if (pageDetail.PageType == Contracts.Enums.PageType.Country && !pageDetail.IsCategoryLevel && !pageDetail.IsSubCategoryLevel)
            {
                var parentCategoryGroup             = placeDetails.GroupBy(s => s.ParentCategory).Take(3).OrderByDescending(x => x.Count());
                var subCategoryGroup                = placeDetails.GroupBy(s => s.Category).Take(3).OrderByDescending(x => x.Count());
                var parentDynamicSections           = GetAllDynamicSections(parentCategoryGroup, masterEventType, pageDetail, true);
                var subCategoryDynamicPlaceSections = GetAllDynamicSections(subCategoryGroup, masterEventType, pageDetail, false);
                DynamicPlaceSections.AddRange(parentDynamicSections.ToList());
                DynamicPlaceSections.AddRange(subCategoryDynamicPlaceSections.ToList());
            }
            return(DynamicPlaceSections);
        }
Пример #4
0
        public DynamicPlaceSections GetDynamicPlaceSection(List <PlaceDetail> placeDetails,
                                                           FIL.Contracts.Enums.MasterEventType masterEventType,
                                                           string Key, PageDetail pageDetail, bool IsMainCategory = false)
        {
            DynamicPlaceSections DynamicPlaceSection = new DynamicPlaceSections();

            DynamicPlaceSection.PlaceDetails = new List <PlaceDetail>();
            var placeDetailList = placeDetails;

            DynamicPlaceSection.SectionDetails = new SectionDetail();
            DynamicPlaceSection.PlaceDetails   = placeDetailList.OrderBy(a => Guid.NewGuid()).ToList();

            if (masterEventType == Contracts.Enums.MasterEventType.Online)
            {
                DynamicPlaceSection.SectionDetails.Heading = "Top " + placeDetails.FirstOrDefault().ParentCategory + " from around the World";
            }
            else if (pageDetail.PageType == Contracts.Enums.PageType.Category)
            {
                DynamicPlaceSection.SectionDetails.Heading = ((Key.ToLower().Contains("top") || placeDetails.First().Category.Contains("top")) ? "" : ((Key.ToLower().Contains("museums") || placeDetails.First().Category.Contains("museums"))) ? "Iconic " : "Top ")
                                                             + (pageDetail.IsCategoryLevel ? Key : placeDetails.First().Category) + (placeDetails.FirstOrDefault().MasterEventTypeId == FIL.Contracts.Enums.MasterEventType.Online ? " from around " : " around ") +
                                                             (pageDetail.IsCategoryLevel ? (pageDetail.IsCountryLevel ? placeDetails.First().CountryName : pageDetail.IsStateLevel ?
                                                                                            placeDetails.First().StateName : pageDetail.IsCityLevel ? placeDetails.First().CityName : "the World") : Key);
            }
            else
            {
                StringBuilder sbTicketSummary = new StringBuilder();
                sbTicketSummary.Append("Top ");
                if ((!pageDetail.IsCategoryLevel && !pageDetail.IsSubCategoryLevel) || pageDetail.IsCategoryLevel)
                {
                    sbTicketSummary.Append(Key);
                }
                else
                {
                    sbTicketSummary.Append(placeDetails.First().Category);
                }
                sbTicketSummary.Append(IsMainCategory ? " feels around " : (placeDetails.FirstOrDefault().MasterEventTypeId == FIL.Contracts.Enums.MasterEventType.Online ? " from around " : " around "));
                if ((!pageDetail.IsCategoryLevel && !pageDetail.IsSubCategoryLevel) || pageDetail.IsCategoryLevel)
                {
                    if (pageDetail.IsCityLevel)
                    {
                        sbTicketSummary.Append(placeDetailList.First().CityName);
                    }
                    else if (pageDetail.IsStateLevel)
                    {
                        sbTicketSummary.Append(placeDetailList.First().StateName);
                    }
                    else
                    {
                        sbTicketSummary.Append(placeDetailList.First().CountryName);
                    }
                }
                else
                {
                    sbTicketSummary.Append(Key);
                }
                DynamicPlaceSection.SectionDetails.Heading = sbTicketSummary.ToString();
            }

            DynamicPlaceSection.SectionDetails.IsShowMore = true;

            if (masterEventType == Contracts.Enums.MasterEventType.Online)
            {
                DynamicPlaceSection.SectionDetails.Url = "/c/" + placeDetails.First().ParentCategorySlug;
            }
            else if (pageDetail.PageType == Contracts.Enums.PageType.Category)
            {
                DynamicPlaceSection.SectionDetails.Url = "/c/" + placeDetails.First().ParentCategorySlug + "/" + DynamicPlaceSection.PlaceDetails.First().SubCategorySlug +
                                                         (pageDetail.IsCountryLevel ? "/" + placeDetailList.First().StateName :
                                                          (pageDetail.IsStateLevel || pageDetail.IsCityLevel) ? "/" + placeDetailList.First().CityName : "");
            }
            else
            {
                StringBuilder sbTicketSummary = new StringBuilder();
                sbTicketSummary.Append(pageDetail.PagePath);
                if (IsMainCategory && !pageDetail.IsSubCategoryLevel)
                {
                    sbTicketSummary.Append("/" + DynamicPlaceSection.PlaceDetails.First().ParentCategorySlug);
                }
                if (!IsMainCategory && !pageDetail.IsSubCategoryLevel)
                {
                    sbTicketSummary.Append("/" + DynamicPlaceSection.PlaceDetails.First().SubCategorySlug);
                }
                if (pageDetail.IsSubCategoryLevel && pageDetail.IsCountryLevel)
                {
                    sbTicketSummary.Append("/" + Key);
                }
                else if (!pageDetail.IsCategoryLevel && !pageDetail.IsSubCategoryLevel && pageDetail.IsStateLevel)
                {
                    sbTicketSummary.Append("/" + placeDetailList.First().StateName.Replace(" ", "-").Replace(".", "").ToLower());
                }
                else if (pageDetail.IsCityLevel || pageDetail.IsStateLevel)
                {
                    sbTicketSummary.Append("/" + placeDetailList.First().CityName.Replace(" ", "-").Replace(".", "").ToLower());
                }
                DynamicPlaceSection.SectionDetails.Url = sbTicketSummary.ToString();
            }

            if (masterEventType == Contracts.Enums.MasterEventType.Online)
            {
                DynamicPlaceSection.SectionDetails.Query = "?category=" + placeDetailList.First().ParentCategoryId;
            }
            else if (pageDetail.PageType == Contracts.Enums.PageType.Category)
            {
                DynamicPlaceSection.SectionDetails.Query =
                    (pageDetail.IsCategoryLevel ? "?category=" + placeDetailList.First().ParentCategoryId + (pageDetail.IsCountryLevel ? "&country=" + placeDetailList.First().CountryId : pageDetail.IsStateLevel ? "&state=" + placeDetailList.First().StateId :
                                                                                                             pageDetail.IsCityLevel ? "&city=" + placeDetailList.First().CityId : "") :
                     pageDetail.IsCountryLevel ? "?category=" + placeDetailList.First().ParentCategoryId + "&subcategory=" + placeDetailList.First().EventCategoryId + "&state=" + placeDetailList.First().StateId :
                     (pageDetail.IsStateLevel || pageDetail.IsCityLevel) ? "?category=" + placeDetailList.First().ParentCategoryId + "&subcategory=" + placeDetailList.First().EventCategoryId + "&city=" + placeDetailList.First().CityId :
                     "?category=" + placeDetailList.First().ParentCategoryId + "&subcategory=" + placeDetailList.First().EventCategoryId + "&country=" + placeDetailList.First().CountryId
                    );
            }
            else
            {
                StringBuilder sbTicketSummary = new StringBuilder();
                sbTicketSummary.Append("?country=" + placeDetailList.First().CountryId);
                if (IsMainCategory)
                {
                    sbTicketSummary.Append("&category=" + placeDetailList.First().ParentCategoryId);
                }
                if (!IsMainCategory)
                {
                    sbTicketSummary.Append("&category=" + placeDetailList.First().ParentCategoryId + "&subcategory=" + placeDetailList.First().EventCategoryId);
                }
                if (pageDetail.IsSubCategoryLevel && pageDetail.IsCountryLevel)
                {
                    sbTicketSummary.Append("&state=" + placeDetailList.First().StateId);
                }
                if (!pageDetail.IsCategoryLevel && !pageDetail.IsSubCategoryLevel && pageDetail.IsStateLevel)
                {
                    sbTicketSummary.Append("&state=" + placeDetailList.First().StateId);
                }
                if (((pageDetail.IsStateLevel || pageDetail.IsCityLevel) && pageDetail.PageType == Contracts.Enums.PageType.Category) ||
                    pageDetail.PageType == Contracts.Enums.PageType.Country && pageDetail.IsCityLevel)
                {
                    sbTicketSummary.Append("&city=" + placeDetailList.First().CityId);
                }
                DynamicPlaceSection.SectionDetails.Query = sbTicketSummary.ToString();
            }
            return(DynamicPlaceSection);
        }