コード例 #1
0
        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);
        }
コード例 #2
0
 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));
     }
 }
コード例 #3
0
 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));
     }
 }
コード例 #4
0
 public bool Validate(ShipperSearch request)
 {
     throw new NotImplementedException();
 }