public void Validate(ParametrosBusquedaVehiculo parametros)
        {
            if (string.IsNullOrWhiteSpace(parametros.FechaDesde) ||
                string.IsNullOrWhiteSpace(parametros.FechaHasta))
            {
                throw new ValidationException(MessageParametroAusente);
            }

            if (DateTime.Compare(parametros.FechaDesdeAsDateTime(), parametros.FechaHastaAsDateTime()) > 0)
            {
                throw new FormatException(MessageErrorFechas);
            }
        }
Ejemplo n.º 2
0
 public IActionResult Get([FromQuery] ParametrosBusquedaVehiculo parametros)
 {
     try
     {
         parametrosValidator.Validate(parametros);
         return(Ok(vehiculoMapper.ToVehiculoDTOList(vehiculoService.Listar(parametros))));
     }
     catch (ValidationException ve)
     {
         Console.WriteLine(ve);
         return(BadRequest(new ErrorResponse(StatusCodes.Status400BadRequest, ve.Message)));
     }
     catch (FormatException fe)
     {
         Console.WriteLine(fe);
         return(UnprocessableEntity(new ErrorResponse(StatusCodes.Status422UnprocessableEntity, fe.Message)));
     }
     catch (Exception e)
     {
         return(errorResponseFactory.InternalServerErrorResponse(e));
     }
 }
Ejemplo n.º 3
0
        public List <Vehiculo> Listar(ParametrosBusquedaVehiculo parametros)
        {
            /* Se obtienen los IDs de vehículos en operación entre el rango de fecha de los parámetros de búsqueda */
            ISet <int> idsVehiculosEnOperacion = higoContext.Operacion
                                                 .Where(o => operacionUtils.BetweenDateTimes(o, parametros.FechaDesdeAsDateTime(),
                                                                                             parametros.FechaHastaAsDateTime()))
                                                 .Select(o => o.IdVehiculo)
                                                 .ToHashSet();

            List <Vehiculo> vehiculos = higoContext.Vehiculo
                                        .Include(ModeloMarcaNavigationPropertyPath)
                                        .Include(v => v.IdCilindradaNavigation)
                                        .Include(v => v.IdEstadoVehiculoNavigation)
                                        .Where(v => !idsVehiculosEnOperacion.Contains(v.IdVehiculo))
                                        .Where(v => EstadoVehiculo.ACTIVO.ToString().Equals(v.IdEstadoVehiculoNavigation.Codigo))
                                        .Where(v => vehiculoUtils.MatchLocationIfPresent(v.Pais, parametros.Pais))
                                        .Where(v => vehiculoUtils.MatchLocationIfPresent(v.Provincia, parametros.Provincia))
                                        .Where(v => vehiculoUtils.MatchLocationIfPresent(v.Partido, parametros.Partido))
                                        .Where(v => vehiculoUtils.MatchLocationIfPresent(v.Localidad, parametros.Localidad))
                                        .OrderBy(v => v.IdVehiculo)
                                        .ToList();

            return(vehiculos);
        }