Beispiel #1
0
        public Task SendEmailResetPasswordAsync(string emailcode, ApplicationUser usermodel, string resetUrl)
        {
            if (string.IsNullOrEmpty(emailcode))
            {
                List <EmailToken> emailtoken = new List <EmailToken>();
                var emailTemplate            = _emailTemplateQuery.FirstOrDefault(m => m.Code == emailcode);
                if (emailTemplate.Id > 0)
                {
                    List <EmailToken> tokenCol = _emailTokenQuery.GetAllList(m => m.EmailCode == emailTemplate.Code).ToList();
                    foreach (var token in tokenCol)
                    {
                        if (token.Token.Equals("{Name}"))
                        {
                            token.PreviewText = usermodel.FirstName + " " + usermodel.LastName;
                        }
                        else if (token.Token.Equals("{Email}"))
                        {
                            token.PreviewText = usermodel.Email ?? string.Empty;
                        }
                        else if (token.Token.Equals("{Url}"))
                        {
                            token.PreviewText = resetUrl;
                        }
                    }

                    EmailLog mlog = new EmailLog();
                    mlog.Receiver    = usermodel.Email;
                    mlog.Sender      = _appSettings.EmailFromAddress;
                    mlog.Subject     = "Password Reset Notification";
                    mlog.MessageBody = GeneratePreviewHTML(emailTemplate.Body, tokenCol);
                    mlog.DateCreated = mlog.DateToSend = DateTime.Now;
                    mlog.IsSent      = mlog.HasAttachment = false;
                    var messageresponse = EmailSenderHelper(mlog.Receiver, mlog.Subject, mlog.MessageBody);
                    if (messageresponse.success)
                    {
                        mlog.IsSent = true;
                    }
                    _emailLogRepositoryCommand.Insert(mlog);
                    _emailLogRepositoryCommand.SaveChanges();
                }
            }
            return(Task.CompletedTask);
        }