public async Task <bool> ExpiracionId([FromBody] CambioPasswordDto cambioPasswordDto)
        {
            //1. Buscar el usuario.
            //2. Validar Id expiración.

            var validarId = await cambioPasswordRepository.Find(x => x.Id == cambioPasswordDto.Id && x.Activo, x => x.Usuario);

            if (validarId == null)
            {
                return(false);
            }

            TimeSpan span = DateTime.Now - validarId.FechaCreacion;

            if (validarId.MinutosExpiracion < span.TotalMinutes)
            {
                // Activo = false.
                validarId.Activo = false;
                await cambioPasswordRepository.Edit(validarId);

                //Enviar nuevo correo.
                SendEmailUtils.SendEmail(validarId.Usuario.Correo, $"({validarId.Usuario.Nombres} {validarId.Usuario.Apellidos})", validarId.Id.ToString());
                return(false);
            }


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

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

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

            byte[] passwordHash, passwordSalt;

            Utils.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,
                FechaCreacion     = DateTime.Now,
                FechaModificacion = DateTime.Now,
                PasswordHash      = passwordHash,
                PasswordSalt      = passwordSalt,
                Activo            = user.Activo,
                CambioPassword    = false
            };

            usuario = await userRepository.Add(usuario);

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

            SendEmailUtils.SendEmail(usuario.Correo, $"({usuario.Nombres} {usuario.Apellidos})", objCambioPassword.Id.ToString());

            return(Ok());
        }