public IEnumerable <ShipperDto> Execute(ShipperSearch request) { List <ShipperDto> shipperDtos = new List <ShipperDto>(); var shippers = _context.Shippers.AsQueryable(); if (request.Id == null) { if (request.Name != null) { shippers = shippers.Where(x => x.Name.Trim().ToLower().Contains(request.Name.Trim().ToLower())); } if (request.MinFreightBase != null) { shippers = shippers.Where(x => x.FreightBase >= request.MinFreightBase); } if (request.MaxFreightBase != null) { shippers = shippers.Where(x => x.FreightBase <= request.MaxFreightBase); } if (request.MinFreightPerKilo != null) { shippers = shippers.Where(x => x.FreightPerKilo >= request.MinFreightPerKilo); } if (request.MaxFreightBase != null) { shippers = shippers.Where(x => x.FreightPerKilo <= request.MaxFreightBase); } } else { shippers = shippers.Where(x => x.Id == request.Id); } if (shippers.Count() == 0) { throw new EntityNotFoundException($"Shippers"); } foreach (var shipper in shippers) { var shipperDto = new ShipperDto { Id = shipper.Id, FreightPerKilo = shipper.FreightPerKilo, FreightBase = shipper.FreightBase, Name = shipper.Name }; shipperDtos.Add(shipperDto); } return(shipperDtos); }
public IActionResult GetAll([FromQuery] ShipperSearch search) { try { var results = _getShippers.Execute(search); return(Ok(results)); } catch (EntityNotFoundException e) { return(NotFound(e.Message)); } catch (Exception e) { return(StatusCode(500, e.Message)); } }
public IActionResult Get(int id) { try { var search = new ShipperSearch { Id = id }; var result = _getShippers.Execute(search); return(Ok(result.First())); } catch (EntityNotFoundException e) { return(NotFound(e.Message)); } catch (Exception e) { return(StatusCode(500, e.Message)); } }
public bool Validate(ShipperSearch request) { throw new NotImplementedException(); }