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