public async Task <IActionResult> GetDeviceSearchCriterion([FromQuery] DeviceSearchCriterion deviceSearchCriterion) { try { var products = await _repository.GetDeviceWithCriterion(deviceSearchCriterion); var result = _mapper.Map <List <DeviceWithoutValuesDTO> >(products); return(Ok(result)); } catch (Exception ex) { return(BadRequest(ex)); } }
public async void TestGetDeviceSearchCriterion() { var device = new DeviceSearchCriterion { Name = "Laptop" }; var mockRepository = new Mock <IDeviceRepository>(); var mockMapper = new Mock <IMapper>(); var deviceController = new DeviceController(mockRepository.Object, mockMapper.Object); var result = await deviceController.GetDeviceSearchCriterion(device); var x = result as OkObjectResult; Assert.Equal(200, x.StatusCode); }
public async Task <IEnumerable <Device> > GetDeviceWithCriterion(DeviceSearchCriterion deviceSearchCriterion) { return(await _context.Devices .Include(a => a.DeviceType) .ThenInclude(devicetype => devicetype.DeviceTypeProperties) .Where(p => p.Name.Contains(deviceSearchCriterion.Name) && p.DeviceType.Name.Contains(deviceSearchCriterion.TypeDevice) && p.DevicePropertyValues.Any(devPropVal => devPropVal.Value.Contains(deviceSearchCriterion.DeviceValues) && p.CreatedDateTime >= deviceSearchCriterion.DateTimeGreatOrEqThan && p.CreatedDateTime > deviceSearchCriterion.DateTimeGreatThan && p.CreatedDateTime < deviceSearchCriterion.DateTimeLessThan && p.CreatedDateTime <= deviceSearchCriterion.DateTimeLessOrEqThan && p.PriceDevice >= deviceSearchCriterion.PriceGreatOrEqThan && p.PriceDevice > deviceSearchCriterion.PriceGreatThan && p.PriceDevice < deviceSearchCriterion.PriceLessThan && p.PriceDevice <= deviceSearchCriterion.PriceLessOrEqThan)) .Skip(deviceSearchCriterion.DeviceNumOnThisPage * (deviceSearchCriterion.PageNumRes - 1)) .Take(deviceSearchCriterion.DeviceNumOnThisPage) .ToListAsync()); }