public async Task <ActionResult> Index(int idPerito, int idAseguradora) { List <Siniestro> siniestros = null; if (idPerito == 0) { siniestros = await _repositorioSiniestros.ObtenerTodos(); } else { siniestros = await _repositorioSiniestros.ObtenerPorIdPerito(idPerito); } if (idAseguradora != 0) { siniestros = siniestros.Where(siniestro => siniestro.Aseguradora.Id == idAseguradora) .ToList(); } if (siniestros.Count == 0) { return(StatusCode(500, "No existen siniestros")); } siniestros = siniestros.OrderByDescending(siniestro => siniestro.FechaHoraAlta) .ToList(); List <SiniestroVm> siniestrosVms = SiniestroVm.ConvertirASiniestroVm(siniestros); return(Ok(siniestrosVms)); }
public async Task <ActionResult> ObtenerPorId(int id) { Siniestro siniestro = await _repositorioSiniestros.ObtenerPorId(id); if (siniestro is null) { return(NotFound($"No se ha encontrado el siniestro con id {id}")); } SiniestroVm siniestroVm = new SiniestroVm() { Id = siniestro.Id, IdEstado = siniestro.EstadoId, Estado = siniestro.Estado.Nombre, IdAseguradora = siniestro.AseguradoraId, Aseguradora = siniestro.Aseguradora.Nombre, Direccion = siniestro.Direccion, Descripcion = siniestro.Descripcion, IdPerito = siniestro.PeritoId, Perito = siniestro.Perito.Nombre, FechaHoraAlta = siniestro.FechaHoraAlta.ToString("dd/MM/yyyy HH:mm"), IdSujetoAfectado = (int)siniestro.SujetoAfectado, SujetoAfectado = siniestro.SujetoAfectado.ToString(), IdDanio = siniestro.DanioId.Value, Danio = siniestro.Danio.Nombre, ImpValoracionDanios = $"{siniestro.ImpValoracionDanios.ToString("F")} €" }; return(Ok(siniestroVm)); }
public void ValidarSiniestro(SiniestroVm siniestroVm) { if (siniestroVm.IdAseguradora <= 0) { throw new CodigoErrorHttpException("La aseguradora seleccionada no es válida", HttpStatusCode.InternalServerError); } if (siniestroVm.IdUsuarioAlta <= 0) { throw new CodigoErrorHttpException("El usuario de alta no es válido", HttpStatusCode.InternalServerError); } List <int> idsSujetoAfectado = Enum.GetValues(typeof(SujetoAfectado)).Cast <int>() .ToList(); bool existeIdSujetoAfectado = Array.Exists(idsSujetoAfectado.ToArray(), id => id == siniestroVm.IdSujetoAfectado); if (!existeIdSujetoAfectado) { throw new CodigoErrorHttpException("El sujeto afectado seleccionado no es válido", HttpStatusCode.InternalServerError); } if (siniestroVm.IdPerito <= 0) { throw new CodigoErrorHttpException("El perito seleccionado no es válido", HttpStatusCode.InternalServerError); } if (siniestroVm.IdDanio <= 0) { throw new CodigoErrorHttpException("El daño seleccionado no es válido", HttpStatusCode.InternalServerError); } if (siniestroVm.Direccion is null || siniestroVm.Direccion.Length == 0) { throw new CodigoErrorHttpException("La dirección está vacía", HttpStatusCode.InternalServerError); } if (siniestroVm.Descripcion is null || siniestroVm.Descripcion.Length == 0) { throw new CodigoErrorHttpException("La descripción está vacía", HttpStatusCode.InternalServerError); } }
public async Task <ActionResult> Create(SiniestroVm siniestroVm) { ValidarSiniestro(siniestroVm); Estado estado = await _repositorioEstados.ObtenerPorTipo(TipoEstado.SinValorar); Aseguradora aseguradora = await _repositorioAseguradoras.ObtenerPorId(siniestroVm.IdAseguradora); Usuario usuarioCreado = await _repositorioUsuarios.ObtenerPorId(siniestroVm.IdUsuarioAlta); SujetoAfectado sujetoAfectado = (SujetoAfectado)siniestroVm.IdSujetoAfectado; Usuario perito = await _repositorioPeritos.ObtenerPorId(siniestroVm.IdPerito); Danio danio = await _repositorioDanios.ObtenerPorId(siniestroVm.IdDanio); Siniestro siniestro = new Siniestro() { Estado = estado, Aseguradora = aseguradora, Direccion = siniestroVm.Direccion, Descripcion = siniestroVm.Descripcion, UsuarioCreado = usuarioCreado, FechaHoraAlta = DateTime.Now, SujetoAfectado = sujetoAfectado, ImpValoracionDanios = 0.00M, Perito = perito, Danio = danio }; try { await _repositorioSiniestros.Guardar(siniestro); } catch (Exception) { return(StatusCode(500, "No se ha podido crear el siniestro")); } return(Ok(true)); }
public async Task <ActionResult> Edit(int id, SiniestroVm siniestroVm) { ValidarSiniestro(siniestroVm); Estado estado = await _repositorioEstados.ObtenerPorId(siniestroVm.IdEstado); Aseguradora aseguradora = await _repositorioAseguradoras.ObtenerPorId(siniestroVm.IdAseguradora); SujetoAfectado sujetoAfectado = (SujetoAfectado)siniestroVm.IdSujetoAfectado; Usuario perito = await _repositorioPeritos.ObtenerPorId(siniestroVm.IdPerito); Danio danio = await _repositorioDanios.ObtenerPorId(siniestroVm.IdDanio); Siniestro siniestro = await _repositorioSiniestros.ObtenerPorId(id); siniestro.Estado = estado; siniestro.Aseguradora = aseguradora; siniestro.Direccion = siniestroVm.Direccion; siniestro.Descripcion = siniestroVm.Descripcion; siniestro.SujetoAfectado = sujetoAfectado; siniestro.Perito = perito; siniestro.Danio = danio; if (siniestroVm.IdEstado == (int)TipoEstado.Valorado) { siniestro.ImpValoracionDanios = decimal.Parse(siniestroVm.ImpValoracionDanios); } else { siniestro.ImpValoracionDanios = 0; } await _repositorioSiniestros.Actualizar(siniestro); return(Ok(true)); }