Пример #1
0
        public override async Task <OperationResult> Execute(ResetPasswordDto request)
        {
            if (string.IsNullOrWhiteSpace(request.Login))
            {
                return(new OperationSucceded());
            }

            User user = await _dbContext.Users.SingleAsync(u => u.EmailVerified && u.CandidateId == request.Login);

            var passwordReset = new PasswordReset()
            {
                UserId         = user.Id,
                Id             = Guid.NewGuid(),
                InsertDateTime = DateTime.UtcNow
            };

            _dbContext.PasswordResets.Add(passwordReset);
            await _dbContext.SaveChangesAsync();

            _sendEmailCommand.Execute(new EmailDto()
            {
                To    = user.Email,
                Title = EmailContentConfiguration.ResetPasswordTitle,
                Body  = EmailContentConfiguration.ResetPasswordBody(_endpointConfig.SetNewPassword(passwordReset.Id.ToString()))
            });

            return(new OperationSucceded());
        }