示例#1
0
        public async Task <MethodResult> InserirAsync(Usuario usuario)
        {
            var validationResult = await _validator.ValidateAsync(usuario);

            if (!validationResult.IsValid)
            {
                return(new MethodResult(validationResult.Errors));
            }

            if (usuario.DataCriacao < DateTime.Now.AddSeconds(-60))
            {
                return(new MethodResult($"A Data de Criação {usuario.DataCriacao:G} é inválida"));
            }

            if (await _repository.EmailCadastradoAsync(usuario.Email))
            {
                return(new MethodResult(Messages.EmailExistente));
            }

            var result = await _repository.InserirAsync(usuario);

            if (result.Failed)
            {
                return(result);
            }

            return(await GravarLoginAsync(usuario));
        }
        public async Task <MethodResult> GravarLoginAsync(Usuario usuario)
        {
            usuario.DataUltimoLogin = DateTime.Now;
            usuario.DataUpdate      = usuario.DataUltimoLogin;

            usuario.Token = _tokenService.GenerateToken(usuario);

            if (usuario.Token.IsEmpty())
            {
                return(new MethodResult(Messages.TokenNaoEncontrado));
            }

            var validationResult = await _validator.ValidateAsync(usuario);

            if (!validationResult.IsValid)
            {
                return(new MethodResult(validationResult.Errors));
            }

            return(await _repository.AlterarAsync(usuario));
        }