// GET: VehicleMake public async Task <ActionResult> Index(string sortBy, string currentFilter, string searchString, int?page) { VehicleFilters filters = new VehicleFilters(searchString, currentFilter); VehicleSorting sorting = new VehicleSorting(sortBy); VehiclePaging paging = new VehiclePaging(page); var vehicles = await _vehicleService.GetVehicleMakeListAsync(filters, sorting, paging); List <VehicleMakeViewModel> vehiclesListDest = iMapper.Map <List <VehicleMakeViewModel> >(vehicles); var paginatedVehiclesList = new StaticPagedList <VehicleMakeViewModel>(vehiclesListDest, paging.Page ?? 1, paging.ResultsPerPage, paging.TotalCount); UpdateView(ViewBag, filters, sorting, paging); return(View(paginatedVehiclesList)); }
public async Task ShouldReturnEmptyModelList() { //Arrange var vehicleModels = new List <IVehicleModel>().AsEnumerable(); string searchString = ""; string sortBy = ""; int page = 0; VehicleFilters filters = new VehicleFilters(searchString); VehicleSorting sorting = new VehicleSorting(sortBy); VehiclePaging paging = new VehiclePaging(page); _modelRepoMock.Setup(x => x.GetAll(filters, sorting, paging)).Returns(Task.FromResult(vehicleModels)); //Act var result = await _sut.GetVehicleModels(filters, sorting, paging); //Assert result.Should().BeEmpty(); }
// Index methods private void UpdateView(dynamic ViewBag, VehicleFilters filters, VehicleSorting sorting, VehiclePaging paging) { ViewBag.CurrentSort = sorting.SortBy; ViewBag.SortByName = sorting.SortByName; ViewBag.SortByAbrv = sorting.SortByAbrv; // paging - if searchString is updated, return to page 1 if (filters.SearchString != null) { paging.Page = 1; } else // else keep the filter { filters.SearchString = filters.CurrentFilter; } // current filter - keeps filter between pages ViewBag.CurrentFilter = filters.SearchString; }
private void UpdateView(dynamic ViewBag, VehicleFilters filters, VehicleSorting sorting, VehiclePaging paging) { // current sort by - keep sorting between pages ViewBag.CurrentSort = sorting.SortBy; // sort by ViewBag.SortByName = String.IsNullOrEmpty(sorting.SortBy) ? "name_desc" : ""; ViewBag.SortByAbrv = sorting.SortBy == "Abrv" ? "abrv_desc" : "Abrv"; ViewBag.SortById = sorting.SortBy == "MakeId" ? "makeid_desc" : "MakeId"; // paging - if searchString is updated, return to page 1 if (filters.SearchString != null) { paging.Page = 1; } else // else keep the filter { filters.SearchString = filters.CurrentFilter; } // current filter - keeps filter between pages ViewBag.CurrentFilter = filters.SearchString; }
public async Task <IHttpActionResult> GetVehicleModels(string sortBy, string searchString, int?page) { VehicleFilters filters = new VehicleFilters(searchString); VehicleSorting sorting = new VehicleSorting(sortBy); VehiclePaging paging = new VehiclePaging(page); IEnumerable <IVehicleModel> vehicleModels = await _vehicleService.GetVehicleModels(filters, sorting, paging); List <VehicleModelViewModel> vehicleModelsDest = iMapper.Map <List <VehicleModelViewModel> >(vehicleModels); return(Ok(new { models = vehicleModelsDest, pagingInfo = new { resultsPerPage = paging.ResultsPerPage, totalCount = paging.TotalCount, pageNumber = paging.Page, } })); }
public async Task ShouldReturnModelList() { //Arrange var vehicleModels = new List <IVehicleModel>() { new VehicleModel() { Id = 1, Name = "123", Abrv = "Mercedes", MakeId = 1 }, new VehicleModel() { Id = 2, Name = "A5", Abrv = "Audi", MakeId = 2 }, }.AsEnumerable(); string searchString = ""; string sortBy = ""; int page = 0; VehicleFilters filters = new VehicleFilters(searchString); VehicleSorting sorting = new VehicleSorting(sortBy); VehiclePaging paging = new VehiclePaging(page); _modelRepoMock.Setup(x => x.GetAll(filters, sorting, paging)).Returns(Task.FromResult(vehicleModels)); //Act var result = await _sut.GetVehicleModels(filters, sorting, paging); //Assert result.Should().BeEquivalentTo(vehicleModels); }
public async Task <IEnumerable <IVehicleMake> > GetVehicleMakes(VehicleFilters filters, VehicleSorting sorting, VehiclePaging paging) { IEnumerable <IVehicleMake> query = await _repository.GetAll(filters, sorting, paging); return(query.ToList()); }
public async Task <IEnumerable <VehicleModel> > GetVehicleModelList(VehicleFilters filters, VehicleSorting sorting, VehiclePaging paging) { return(await _vehicleRepository.GetVehicleModelList(filters, sorting, paging)); }
// Vehicle Make public async Task <IEnumerable <VehicleMake> > GetVehicleMakeList(VehicleFilters filters, VehicleSorting sorting, VehiclePaging paging) { IQueryable <VehicleMake> vehicles = from vehicle in _entities.VehicleMakes select vehicle; //filter/find if (filters.ShouldApplyFilters()) { vehicles = vehicles.Where(m => m.Name.Contains(filters.FilterBy) || m.Abrv.Contains(filters.FilterBy)); } paging.TotalCount = vehicles.Count(); // sort switch (sorting.SortBy) { case "name_desc": vehicles = vehicles.OrderByDescending(v => v.Name); break; case "Abrv": vehicles = vehicles.OrderBy(v => v.Abrv); break; case "abrv_desc": vehicles = vehicles.OrderByDescending(v => v.Abrv); break; default: // sort by name vehicles = vehicles.OrderBy(v => v.Name); break; } return(await vehicles.Skip(paging.ItemsToSkip).Take(paging.ResultsPerPage).ToListAsync()); }
public async Task <IEnumerable <IVehicleModel> > GetAll(VehicleFilters filters, VehicleSorting sorting, VehiclePaging paging) { IQueryable <VehicleModelEntityModel> models = _genericRepository.GetAll(); if (filters.ShouldApplyFilters()) { models = models.Where(m => m.Name.Contains(filters.FilterBy) || m.Abrv.Contains(filters.FilterBy) || m.MakeId.ToString().Contains(filters.FilterBy)); } paging.TotalCount = models.Count(); switch (sorting.SortBy) { case "name_desc": models = models.OrderByDescending(v => v.Name); break; case "Abrv": models = models.OrderBy(v => v.Abrv); break; case "abrv_desc": models = models.OrderByDescending(v => v.Abrv); break; case "MakeId": models = models.OrderBy(v => v.MakeId); break; case "makeid_desc": models = models.OrderByDescending(v => v.MakeId); break; default: models = models.OrderBy(v => v.Name); break; } return(await models.Skip(paging.ItemsToSkip).Take(paging.ResultsPerPage).ProjectTo <VehicleModel>(_mapperConfiguration).ToListAsync()); }
public async Task <IEnumerable <VehicleModel> > GetVehicleModelList(VehicleFilters filters, VehicleSorting sorting, VehiclePaging paging) { IQueryable <VehicleModel> models = from model in _entities.VehicleModels select model; if (filters.ShouldApplyFilters()) { models = models.Where(m => m.Name.Contains(filters.FilterBy) || m.Abrv.Contains(filters.FilterBy) || m.MakeId.ToString().Contains(filters.FilterBy)); } paging.TotalCount = models.Count(); // sort switch (sorting.SortBy) { case "name_desc": models = models.OrderByDescending(v => v.Name); break; case "Abrv": models = models.OrderBy(v => v.Abrv); break; case "abrv_desc": models = models.OrderByDescending(v => v.Abrv); break; case "MakeId": models = models.OrderBy(v => v.MakeId); break; case "makeid_desc": models = models.OrderByDescending(v => v.MakeId); break; default: // sort by name models = models.OrderBy(v => v.Name); break; } return(await models.Skip(paging.ItemsToSkip).Take(paging.ResultsPerPage).ToListAsync()); }