public async Task <Result <CodeEmailResult> > SendConfirmAccountEmail() { try { var user = await _userResolver.GetUser(); if (user != null) { var newSystemCode = new SystemCodeEntity() { GenerateDate = DateTime.Today, ExpirationDate = DateTime.Today.AddDays(30), Type = (int)SystemCodeType.Activate, UserId = user.Id, Code = GenerateCode() }; _systemCodeRepository.Add(newSystemCode); await _systemCodeRepository.Commit(); await _emailSender.SendCodeEmail(ContentType.ActivateAccount, user.Email, newSystemCode.Code); return(new Result <CodeEmailResult>(new CodeEmailResult() { ExpirationDate = newSystemCode.ExpirationDate })); } else { ErrorResult error = GenerateError("User is not logged in", "Id", "", ErrorStatus.Forbidden); return(new Result <CodeEmailResult>(error)); } } catch (Exception ex) { ErrorResult error = GenerateError(ex); return(new Result <CodeEmailResult>(error)); } }
public async Task <Result <CodeEmailResult> > SendResetPasswordEmail(string email) { try { var user = await GetUser(email); if (user != null) { var newSystemCode = new SystemCodeEntity() { GenerateDate = DateTime.Today, ExpirationDate = DateTime.Today.AddDays(30), Type = (int)SystemCodeType.Reset, UserId = user.ID, Code = GenerateCode() }; _systemCodeRepository.Add(newSystemCode); await _systemCodeRepository.Commit(); await _emailSender.SendCodeEmail(ContentType.ResetPassword, email, newSystemCode.Code); return(new Result <CodeEmailResult>(new CodeEmailResult() { ExpirationDate = newSystemCode.ExpirationDate })); } else { ErrorResult error = GenerateError("User not found", "Email", "Invalid email", ErrorStatus.ObjectNotFound); return(new Result <CodeEmailResult>(error)); } } catch (Exception ex) { ErrorResult error = GenerateError(ex); return(new Result <CodeEmailResult>(error)); } }