Example #1
0
        public PageModel <ITour> GetToursPage(TourFilter filter)
        {
            var dataFilter         = TourFilterConverter.ConvertToDbValue(filter);
            var tourPageData       = _tourDataManager.GetToursPage(dataFilter);
            var tourPageCollection = tourPageData.Collection.Select(c => new TourModel(c, _tourDataManager, _imageDataManager))
                                     .ToList();
            var result = new PageModel <ITour>(tourPageData.Count, tourPageCollection);

            return(result);
        }
        //[HttpPost]
        //public async Task<ActionResult> OrderTour(int? id)
        //{
        //    SetViewBag();

        //    return View("ToursPage");
        //}


        public ActionResult Filter(string type, string value)
        {
            var filter = new TourFilter()
            {
                Name = value,
                Type = type
            };

            // predicate: x => x.Developer == Bogdan
            // predicate: x => x.Genre == RPG

            if (type == "location")
            {
                filter.Predicate = (x => x.Hotel == value);
            }
            else if (type == "flight_date")
            {
                filter.Predicate = (x => x.Flight.DateStart == value);
            }
            else if (type == "flight_type")
            {
                filter.Predicate = (x => x.Flight.Type == value);
            }

            var filters = new List <TourFilter>();

            if (Session["TourFilter"] != null)
            {
                filters = Session["TourFilter"] as List <TourFilter>;
            }

            //var results = filters.GroupBy(
            // p => p.Name,
            // p => p.Type,
            // (key, g) => new { PersonId = key, Cars = g.ToList() });

            var found = filters.FirstOrDefault(f => f.Name == value && f.Type == type);

            if (found != null)
            {
                filters.Remove(found);
            }
            else
            {
                filters.Add(filter);
            }

            Session["TourFilter"] = filters;

            var tours = _tourService.GetAllTour(filters);

            SetViewBag();

            return(PartialView("ToursPartial", _mapper.Map <List <TourViewModel> >(tours)));
        }
        public PageViewModel <TourViewModel> GetCollection(string tourType, string country, int skip = 0, int take = int.MaxValue)
        {
            var tourFilter = new TourFilter(skip, take)
            {
                TourType   = string.IsNullOrWhiteSpace(tourType) ? (TourTypesEnum?)null : TourTypesConverter.ConvertFromString(tourType),
                CountryUrl = country
            };
            var toursPage = _tourManager.GetToursPage(tourFilter);
            var result    = GetToursPageViewModel(toursPage);

            return(result);
        }
Example #4
0
        public static TourDataFilter ConvertToDbValue(TourFilter tourFilter)
        {
            TourDataFilter result = new TourDataFilter
            {
                Skip       = tourFilter.Skip,
                Take       = tourFilter.Take,
                CountryUrl = tourFilter.CountryUrl,
                TourType   = tourFilter.TourType.HasValue ? TourTypesEnumConverter.ConvertToDbValue(tourFilter.TourType.Value) : null
            };

            return(result);
        }
        public PageViewModel <TourViewModel> GetEarlyCollection(string country, int skip = 0, int take = int.MaxValue)
        {
            var tourFilter = new TourFilter(skip, take)
            {
                TourType   = TourTypesEnum.Beach,
                CountryUrl = country
            };
            var toursPage = _tourManager.GetToursPage(tourFilter);
            var discount  = _settings.EarlyToursDiscount;
            var result    = GetToursPageViewModel(toursPage);

            SetDiscount(result.Collection, discount);

            return(result);
        }
        public List <TourDto> GetFiltered(TourFilter filter)
        {
            IQueryable <Tour> tours = Db.Tours;

            if (filter.isDeleted.HasValue)
            {
                tours = tours.Where(m => m.IsDeleted == filter.isDeleted.Value);
            }

            if (filter.artefactId.HasValue)
            {
                tours = tours.Where(m => m.Artefacts.Any(a => a.Id == filter.artefactId.Value));
            }

            return(Mapper.Map <List <TourDto> >(tours.OrderBy(m => m.ModifiedDate).Skip(filter.pageSize * filter.page).Take(filter.pageSize)));
        }
Example #7
0
        public IActionResult Index(TourFilter tourFilter)
        {
            TourViewModel viewModel = new TourViewModel();

            var sessionSortState = HttpContext.Session.Get(Constants.TourSort);

            if (sessionSortState != null && sessionSortState.Count > 0)
            {
                TourSort.State currSortState = (TourSort.State)Enum.Parse(typeof(TourSort.State), sessionSortState["sortState"]);
                viewModel.TourSort = new TourSort(currSortState);
            }
            viewModel.TourFilter = tourFilter;

            SetTours(viewModel);

            return(View(viewModel));
        }
        TourDto GetTour()
        {
            TourFilter filter = new TourFilter()
            {
                isDeleted = false, numPerPage = 1, pageNumber = 0
            };
            var tours = _controller.GetFiltered(filter);

            if (tours != null && tours.Any())
            {
                return(tours.First());
            }
            else
            {
                //Create a new tour for testing
                return(CreateTestTour());
            }
        }
Example #9
0
        public IActionResult Filter(TourFilter tourFilter)
        {
            TourViewModel viewModel = new TourViewModel();

            var sessionSortState = HttpContext.Session.Get(Constants.TourSort);

            if (sessionSortState != null && sessionSortState.Count > 0)
            {
                TourSort.State currSortState = (TourSort.State)Enum.Parse(typeof(TourSort.State), sessionSortState["sortState"]);
                viewModel.TourSort = new TourSort(currSortState);
            }
            viewModel.TourFilter = tourFilter;
            int pageNumber = HttpContext.Session.Get <int>(Constants.ClientPageNumber);

            if (pageNumber < 1)
            {
                pageNumber = 1;
            }
            SetTours(viewModel, pageNumber);

            return(View("Index", viewModel));
        }