Exemple #1
0
        private DocumentoConductorDto GuardaDocumento(int idCuenta, DocumentoConductorDto documentoDto, TipoDocumento tipoDocumento)
        {
            var documento = _documentoService.GetByCriteria(DocumentoCriteria.Create().ByTipoAndCuenta(idCuenta, tipoDocumento.Id));

            if (documento == null)
            {
                documento = new Documento
                {
                    CuentaUsuarioId = idCuenta,
                    TipoDocumentoId = tipoDocumento.Id,
                    Referencia      = documentoDto.Referencia,
                    Vigencia        = documentoDto.Vigencia,
                    Imagen          = new Imagen
                    {
                        Image        = ImageConvertHelper.Base64ToByteArray(documentoDto.Imagen),
                        NombreImagen = documentoDto.Nombre,
                        FechaAlta    = DateTime.Now
                    }
                };
                _documentoService.Create(documento);
            }
            else
            {
                documento.Referencia                = documentoDto.Referencia;
                documento.Vigencia                  = documentoDto.Vigencia;
                documento.Imagen.Image              = ImageConvertHelper.Base64ToByteArray(documentoDto.Imagen);
                documento.Imagen.NombreImagen       = documentoDto.Nombre;
                documento.Imagen.UltimaModificacion = DateTime.Now;
                _documentoService.Update(documento);
            }
            return(new DocumentoConductorDto
            {
                Id = documento.Id
            });
        }
        public IActionResult Create(CuentaUsuarioDto cuentaUsuario)
        {
            try
            {
                if (cuentaUsuario.Usuario == null)
                {
                    throw new ArgumentException("La información para la cuenta de usuario está incompleta.");
                }

                var tiposCuenta = _tipoCuentaService.GetAll();
                if (!tiposCuenta.Any(item => item.Nombre.Equals("cliente", StringComparison.InvariantCultureIgnoreCase)))
                {
                    throw new ArgumentException("No se ha encontrado el tipo de cuenta de cliente.");
                }

                if (_usuarioService.GetByCriteria(UsuarioCriteria.Create().ByTelefono(cuentaUsuario.Usuario.Telefono)) != null)
                {
                    throw new Exception("El número telefónico proporcionado ya se encuentra registrado");
                }

                var cuenta = _mapper.Map <CuentaUsuario>(cuentaUsuario);
                cuenta.IdTipoCuenta = tiposCuenta.First(item => item.Nombre.Equals("cliente", StringComparison.InvariantCultureIgnoreCase)).Id;

                var imagen = new Imagen
                {
                    Image        = ImageConvertHelper.Base64ToByteArray(cuentaUsuario.Usuario.Imagen),
                    NombreImagen = cuentaUsuario.Usuario.NombreImagen
                };
                cuenta.Usuario.Imagen = imagen;

                var result = _cuentaUsuarioService.Create(cuenta);
                result.Usuario.Cuentas.Clear();
                return(Created("", result.Id));
            }
            catch (DbUpdateException ex)
            {
                var error = new ValidationProblemDetails
                {
                    Title  = "Error de creacion de cuenta",
                    Detail = (ex.InnerException as PostgresException).Detail
                };
                return(ValidationProblem(error));
            }
            catch (Exception ex)
            {
                var error = new ValidationProblemDetails
                {
                    Title  = "Error de creacion de cuenta",
                    Detail = ex.Message
                };
                return(ValidationProblem(error));
            }
        }
        public IActionResult Create(UsuarioDto usuario)
        {
            Imagen imagenEntity = null;

            try
            {
                imagenEntity = new Imagen
                {
                    Image        = ImageConvertHelper.Base64ToByteArray(usuario.Imagen),
                    NombreImagen = usuario.NombreImagen,
                    FechaAlta    = DateTime.Now
                };
                var usuarioEntity = new Usuario
                {
                    Nombre          = usuario.Nombre,
                    ApellidoPaterno = usuario.ApellidoPaterno,
                    ApellidoMaterno = usuario.ApellidoMaterno,
                    IdEntidad       = usuario.IdEntidad,
                    IdMunicipio     = usuario.IdMunicipio,
                    Telefono        = usuario.Telefono,
                    FechaNacimiento = usuario.FechaNacimiento,
                    FechaAlta       = DateTime.Now,
                    Imagen          = _imagenService.Create(imagenEntity)
                };

                var result = _usuarioService.Create(usuarioEntity);

                return(Created("", result));
            }
            catch (DbUpdateException ex)
            {
                if (imagenEntity != null)
                {
                    _imagenService.Delete(imagenEntity);
                }
                return(StatusCode(500, new { MessageError = (ex.InnerException as PostgresException).Detail }));
            }
            catch (Exception ex)
            {
                if (imagenEntity != null)
                {
                    _imagenService.Delete(imagenEntity);
                }
                return(StatusCode(500, new { MessageError = StringHelper.GetStringessageException(ex) }));
            }
        }