Пример #1
0
        public async void Should_Return_Filtered_VehicleModels()
        {
            // Arrange
            var vehicleModelsQueryable = DataProvider.GetVehicleModels().AsQueryable().BuildMock();
            var filter = new VehicleModelFilter
            {
                Manufacturer = "Ford"
            };
            var vehicleModelRepositoryMock = new Mock <IGenericRepository <VehicleModel, int> >();

            vehicleModelRepositoryMock.Setup(m => m.Get())
            .Returns(vehicleModelsQueryable.Object);
            var vehicleModelController = new VehicleModelController(vehicleModelRepositoryMock.Object,
                                                                    Mock.Of <IGenericRepository <Vehicle, int> >(),
                                                                    MapperProvider.GetMapper());
            // Act
            var request = await vehicleModelController.Get(filter);

            var result = request as OkObjectResult;

            // Assert
            Assert.NotNull(result);
            Assert.True(result.StatusCode == 200);
            var dtos = result.Value as List <VehicleModelDto>;

            Assert.NotNull(dtos);
            Assert.True(dtos.Count == 2);
        }
Пример #2
0
        private List <SelectListItem> GetVehicleModel()
        {
            VehicleModelFilter filter = new VehicleModelFilter();

            filter.Name = "";
            return(VehicleModelService.Get(filter).Select(b => new SelectListItem(b.Name, b.Id.ToString())).ToList());
        }
Пример #3
0
        private IQueryable <VehicleModelEntity> HandleFilteringForVehicleModels(VehicleModelFilter filter)
        {
            IQueryable <VehicleModelEntity> vehicleModels;

            if (filter.VehicleMakeId.HasValue)
            {
                if (!String.IsNullOrEmpty(filter.Name))
                {
                    vehicleModels = Context.VehicleModels.Where(vm => vm.VehicleMakeId == filter.VehicleMakeId && vm.Abrv.Contains(filter.Name.ToLower()));
                }
                else
                {
                    vehicleModels = Context.VehicleModels.Where(vm => vm.VehicleMakeId == filter.VehicleMakeId);
                }
            }
            else if (!String.IsNullOrEmpty(filter.Name))
            {
                vehicleModels = Context.VehicleModels.Where(vm => vm.Abrv.Contains(filter.Name.ToLower()));
            }
            else
            {
                vehicleModels = Context.VehicleModels;
            }

            return(vehicleModels);
        }
        public ActionResult Index()
        {
            VehicleModelFilter filter = new VehicleModelFilter();
            var items = VehicleModelService.Get(filter);

            return(View(items));
        }
Пример #5
0
        public async Task <IActionResult> Get([FromQuery] VehicleModelFilter filter)
        {
            var query = filter.Filter(vehicleModelRepository.Get());

            var vehicleModels = await query.ToListAsync();

            return(Ok(mapper.Map <IEnumerable <VehicleModelDto> >(vehicleModels)));
        }
        public List <VehicleModel> Get(VehicleModelFilter filter)
        {
            var items = (from m in Context.VehicleModel
                         orderby m.Name
                         select m).ToList();

            return(items);
        }
Пример #7
0
        public async Task <PagedResult <VehicleDto> > GetVehicles(VehicleModelFilter filter = null)
        {
            if (filter == null)
            {
                filter = new VehicleModelFilter();
            }

            if (filter?.PageSize < 0)
            {
                filter.PageSize = null;
            }
            if (filter?.PageNumber < 0)
            {
                filter.PageNumber = null;
            }

            IQueryable <VehicleModel> vehicleModels = _dbContext.VehicleModels
                                                      .Include(vm => vm.Ratings);

            if (!string.IsNullOrWhiteSpace(filter?.VehicleType))
            {
                vehicleModels = vehicleModels.Where(vm => vm.VehicleType.Contains(filter.VehicleType));
            }
            if (filter?.MinPricePerDay != null)
            {
                vehicleModels = vehicleModels.Where(vm => vm.PricePerDay >= filter.MinPricePerDay);
            }
            if (filter?.MaxPricePerDay != null)
            {
                vehicleModels = vehicleModels.Where(vm => vm.PricePerDay <= filter.MaxPricePerDay);
            }

            if (filter.Active)
            {
                vehicleModels = vehicleModels.Where(vm => vm.Active == filter.Active);
            }

            int?Total = null;

            if (((filter?.PageSize) ?? 0) != 0)
            {
                filter.PageNumber = filter.PageNumber ?? 0;
                Total             = vehicleModels.Count();
                vehicleModels     = vehicleModels.Skip(filter.PageNumber.Value * filter.PageSize.Value).Take(filter.PageSize.Value);
            }

            var results = await vehicleModels
                          .Select(VehicleDtoSelector)
                          .ToListAsync();

            return(new PagedResult <VehicleDto>
            {
                Total = Total,
                PageNumber = filter.PageNumber,
                PageSize = filter.PageSize,
                Results = results
            });
        }
Пример #8
0
        public async Task <PaginationList <IVehicleModel> > GetVehicleModelsAsync(VehicleModelFilter filter, int currentPage = 1, string orderBy = "")
        {
            var vehicleModelsEntities = HandleFilteringForVehicleModels(filter);

            vehicleModelsEntities = HandleSortingForVehicleModels(vehicleModelsEntities, orderBy);
            var vehicleModels  = Mapper.Map <IEnumerable <IVehicleModel> >(vehicleModelsEntities);
            var paginationList = new PaginationList <IVehicleModel>(vehicleModels, currentPage);

            return(await Task.FromResult(paginationList));
        }
Пример #9
0
        public List <VehicleModelDTO> Get(VehicleModelFilter filter)
        {
            var items = (from m in Context.VehicleModel
                         join b in Context.VehicleBrand on m.VehicleBrandId equals b.Id
                         orderby m.Name
                         select new VehicleModelDTO
            {
                Id = m.Id,
                Name = m.Name,
                VehicleBrandId = m.VehicleBrandId,
                VehicleBrandName = b.Name
            }).ToList();

            return(items);
        }
Пример #10
0
        public async Task OnGetAsync(string vehicleType, decimal?minPrice, decimal?maxPrice, string currentVehicleType, decimal?currentMinPrice, decimal?currentMaxPrice, int?pageNumber)
        {
            VehicleModelFilter filter = new VehicleModelFilter();

            filter.Active = true;
            User user = await _userManager.GetUserAsync(HttpContext.User);

            if (user != null)
            {
                if (_userManager.IsInRoleAsync(user, "Administrators").Result || _userManager.IsInRoleAsync(user, "Assistant").Result)
                {
                    filter.Active = false;
                }
            }

            if (vehicleType != null || minPrice != null || maxPrice != null)
            {
                pageNumber = 0;
            }
            else
            {
                if (string.IsNullOrEmpty(vehicleType))
                {
                    vehicleType = currentVehicleType;
                }
                if (minPrice == null)
                {
                    minPrice = currentMinPrice;
                }
                if (maxPrice == null)
                {
                    maxPrice = currentMaxPrice;
                }
            }

            VehicleType = vehicleType;
            MinPrice    = minPrice;
            MaxPrice    = maxPrice;

            filter.PageNumber     = pageNumber ?? 0;
            filter.VehicleType    = vehicleType;
            filter.MinPricePerDay = minPrice;
            filter.MaxPricePerDay = maxPrice;

            _logger.LogInformation(LoggingEvents.ListItems, "List VehicleModels");
            Vehicles = await _vehicleModelService.GetVehicles(filter);
        }
        // GET: VehicleModel
        public async Task <ActionResult> Index(Guid id, string orderBy, int currentPage, string searchQuery = "")
        {
            var vehicleMakeId = id;

            if (vehicleMakeId != null)
            {
                var filter = new VehicleModelFilter()
                {
                    VehicleMakeId = vehicleMakeId, Name = searchQuery
                };
                var vehicleModelsPaginationList = await Service.GetVehicleModelsAsync(filter, currentPage, orderBy);

                var mapped = Mapper.Map <IEnumerable <VehicleModelViewModel> >(vehicleModelsPaginationList.Items);

                ViewBag.TotalPages    = vehicleModelsPaginationList.TotalPages;
                ViewBag.VehicleMakeId = vehicleMakeId.ToString();
                return(View(mapped));
            }
            return(RedirectToAction(nameof(VehicleMakeController.Index)));
        }
Пример #12
0
 public virtual async Task <IEnumerable <IVehicleModel> > GetAsync(VehicleModelFilter filter = null)
 {
     return(Mapper.Map <IEnumerable <Model.VehicleModelPoco> >(Repository.GetWhere <VehicleModel>()).ToList());
 }
Пример #13
0
 public virtual Task <IEnumerable <IVehicleModel> > GetAsync(VehicleModelFilter filter = null)
 {
     return(Repository.GetAsync(filter));
 }