コード例 #1
0
        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));
            }
        }
コード例 #2
0
        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));
            }
        }