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); } }
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)); } }
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); }