public async Task <IActionResult> Create([FromBody] ContactDto contact)
        {
            if (contact == null)
            {
                return(BadRequest("No existe un contacto para guardar"));
            }

            var contactClient = new Contact
            {
                Id                = Guid.NewGuid(),
                Nombres           = contact.Nombres,
                Empresa           = contact.Empresa,
                Correo            = contact.Correo,
                Telefono          = contact.Telefono,
                Mensaje           = contact.Mensaje,
                FechaCreacion     = DateTime.Now,
                FechaModificacion = DateTime.Now
            };

            contactClient = await contactRepository.Add(contactClient);

            var sender   = configuration.GetSection("Settings").GetSection("EnvioCorreo").GetSection("Sender").Value;
            var password = configuration.GetSection("Settings").GetSection("EnvioCorreo").GetSection("Password").Value;

            UtilsSendEmail.SendEmailNotificacion(contactClient.Correo, contactClient.Nombres, contactClient.Empresa, contactClient.Correo, contactClient.Telefono, contactClient.Mensaje, sender, password);

            return(Ok());
        }
        public async Task <IActionResult> Create([FromBody] UserDto user)
        {
            var result = await userRepository.Find(x => x.Correo == user.Correo);

            if (result != null)
            {
                return(BadRequest("El correo ya existe"));
            }

            user.Password = user.NroIdentificacion.ToString();

            byte[] passwordHash, passwordSalt;

            UtilsPassword.CreatePasswordHash(user.Password, out passwordHash, out passwordSalt);

            //var usuario = new User
            //{
            //    Id = Guid.NewGuid(),
            //    NroIdentificacion = user.NroIdentificacion,
            //    Nombres = user.Nombres,
            //    Apellidos = user.Apellidos,
            //    Correo = user.Correo,
            //    Telefono = user.Telefono,
            //    PasswordHash = passwordHash,
            //    PasswordSalt = passwordSalt,
            //    Activo = user.Activo,
            //    CambioPassword = false,
            //    FechaCreacion = DateTime.Now,
            //    FechaModificacion = DateTime.Now
            //};

            var usuario = mapper.Map <User>(user);

            usuario.Id                = Guid.NewGuid();
            usuario.FechaCreacion     = DateTime.Now;
            usuario.FechaModificacion = DateTime.Now;
            usuario.PasswordHash      = passwordHash;
            usuario.PasswordSalt      = passwordSalt;
            usuario.CambioPassword    = false;

            usuario.Rol = ValidarRol(usuario.Rol);

            usuario = await userRepository.Add(usuario);

            var objCambioPassword = await cambioPasswordRepository.Add(new CambioPassword
            {
                Id = Guid.NewGuid(),
                MinutosExpiracion = 120,
                Usuario           = usuario,
                Activo            = true,
                FechaCreacion     = DateTime.Now,
                FechaModificacion = DateTime.Now
            });

            var sender         = configuration.GetSection("Settings").GetSection("EnvioCorreo").GetSection("Sender").Value;
            var senderPassword = configuration.GetSection("Settings").GetSection("EnvioCorreo").GetSection("Password").Value;

            UtilsSendEmail.SendEmailChangePassword(usuario.Correo, $"({usuario.Nombres} {usuario.Apellidos})", objCambioPassword.Id.ToString(), sender, senderPassword);

            return(Ok());
        }