public IActionResult Update(MotivoCancelacionDto dto) { try { if (!dto.Id.HasValue) { throw new Exception("No se ha proporcionado un identificador de Motivo de Cancelacion válido."); } var entity = _service.GetById(dto.Id.Value); if (entity == null) { throw new Exception($"No se ha encontrado el Motivo de Cancelacion con el identificador {dto.Id}."); } _mapper.Map(dto, entity); entity.UltimaModificacion = DateTime.Now; _service.Update(entity); return(Ok()); } catch (DbUpdateException ex) { var error = new ValidationProblemDetails { Title = "Error de creacion de Motivo de Cancelacion", Detail = (ex.InnerException as PostgresException).Detail }; return(ValidationProblem(error)); } catch (Exception ex) { var error = new ValidationProblemDetails { Title = "Error de creacion de Motivo de Cancelacion", Detail = ex.Message }; return(ValidationProblem(error)); } }
public IActionResult CreateMotivoConductor(MotivoCancelacionDto dto) { try { var tiposCuenta = _tipoCuentaService.GetAll(); if (!tiposCuenta.Any(item => item.Nombre.Equals("conductor", StringComparison.InvariantCultureIgnoreCase))) { throw new ArgumentException("No se ha encontrado el tipo de cuenta de conductor."); } var entity = _mapper.Map <MotivoCancelacion>(dto); entity.FechaAlta = DateTime.Now; entity.IdTipoCuenta = tiposCuenta.First(item => item.Nombre.Equals("conductor", StringComparison.InvariantCultureIgnoreCase)).Id; var saved = _service.Create(entity); var result = _mapper.Map <MotivoCancelacionDto>(saved); return(Created($"/api/catalogo/MotivoCancelacion/{result.Id}", result)); } catch (DbUpdateException ex) { var error = new ValidationProblemDetails { Title = "Error de creacion de Motivo de Cancelacion", Detail = (ex.InnerException as PostgresException).Detail }; return(ValidationProblem(error)); } catch (Exception ex) { var error = new ValidationProblemDetails { Title = "Error de creacion de Motivo de Cancelacion", Detail = ex.Message }; return(ValidationProblem(error)); } }