示例#1
0
        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));
            }
        }
示例#2
0
        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));
            }
        }