public void Context() { var template = EmailTemplateBuilder.New .WithInitialHtml("12345") .Build(); const int emailId = 78; var email = new EmailBuilder() .WithId(emailId) .WithEmailTemplate(template) .Build(); var emailDto = new EmailDto { EmailId = emailId, Parts = new[] { new EmailPartDto { PartId = 123, PartType = PartType.Variable, VariableValue = "A" }, } }; _exception = Should.Throw <InvalidOperationException>(() => email.UpdateVariables(emailDto)); }
void UserEmailEventMoudle_After(User sender, CreateUserEventArgs eventArgs) { EmailService emailService = new EmailService(); //发送注册成功邮件 emailService.SendAsyn(EmailBuilder.Instance().RegisterSuccess(eventArgs.Password, sender)); }
public async Task <StoreUserModel> CreateUserAsync(CreateStoreUserModel createStoreUserModel) { var storeUser = mapper.Map <StoreUser>(createStoreUserModel); var user = await userManager.CreateAsync(storeUser, createStoreUserModel.Password); if (user.Succeeded) { var token = await userManager.GenerateEmailConfirmationTokenAsync(storeUser); var confirmPasswordLink = string.Concat(GlobalConfig.APIBaseUrl, $"/api/security/user/confirmemail?token={Base64UrlEncoder.Encode(token)}&email={storeUser.Email}"); var result = mapper.Map <StoreUserModel>(storeUser); var messageBuilder = new EmailBuilder(configuration) { To = new[] { storeUser.Email }, Subject = "Welcome To Bread2Bun", IsBodyHtml = true, Body = $"Hi {storeUser.FullName} , please click on the link below so that we can confirm your email address. <br/><br/>" + $"{confirmPasswordLink} <br/><br/>" + $"Happy eating!!!" }; await EmailBuilder.SendEmailAsync(messageBuilder); return(result); } else { var error = user.Errors.FirstOrDefault(); throw new ArgumentException(error.Description); } }
public void Spool_PurgesUnsendableEmailOlderThanConfiguredKeepSentForValue() { // test setup var email = CreateSubstituteEmail(); var func = EmailGeneratorWith(email); var dto = EmailBuilder.BuildRandomWithRecipient(); var ctx = SubstituteEmailContextBuilder.Create().WithEmails(dto).Build(); var deps = FakeEmailSpoolerDependenciesBuilder.Create() .WithDbContext(ctx) .WithEmailGenerator(func) .Build(); var dayVal = RandomValueGen.GetRandomInt(30, 40); deps.EmailSpoolerConfig.PurgeMessageWithAgeInDays.ReturnsForAnyArgs(ci => dayVal); dto.Sent = false; dto.SendAttempts = deps.EmailSpoolerConfig.MaxSendAttempts; dto.LastModified = DateTime.Now.AddDays(-dayVal).AddSeconds(-10); // pre-conditions Assert.AreEqual(1, ctx.Emails.Count()); // execute test using (var spooler = new EmailSpooler(deps)) { spooler.Spool(); } // test result email.DidNotReceive().Send(); Assert.AreEqual(0, ctx.Emails.Count()); ctx.Received().SaveChanges(); }
public async Task ForgotPasswordAsync(ForgotPassowrdModel forgotPassowrdModel) { var user = await userManager.FindByEmailAsync(forgotPassowrdModel.Email); if (user != null) { var token = await userManager.GeneratePasswordResetTokenAsync(user); var passwordReseLink = string.Concat(GlobalConfig.PresentationBaseUrl, $"/reset/resetpassword?token={Base64UrlEncoder.Encode(token)}&email={user.Email}"); var messageBuilder = new EmailBuilder(configuration) { To = new[] { user.Email }, Subject = "Reset Password", IsBodyHtml = true, Body = $"Hi {user.FullName} , please click on the link below reset your password. <br/><br/>" + $"{passwordReseLink} <br/><br/>" + $"Happy eating!!!" }; await EmailBuilder.SendEmailAsync(messageBuilder); } else if (user == null) { throw new NullReferenceException("This email does not belong to any acccount"); } }
public void Spool_DoesNotSendDisabledMails() { // test setup var email = CreateSubstituteEmail(); var func = EmailGeneratorWith(email); var dto = EmailBuilder.Create().WithRandomProps().WithRandomRecipient().WithRandomAttachment(2).Build(); dto.EmailRecipients.First().IsBCC = true; dto.EmailRecipients.First().IsCC = true; dto.SendAt = DateTime.Now.AddYears(-1); dto.Enabled = false; var ctx = SubstituteEmailContextBuilder.Create().WithEmails(dto).Build(); var deps = FakeEmailSpoolerDependenciesBuilder.Create() .WithDbContext(ctx) .WithEmailGenerator(func) .Build(); // pre-conditions Assert.AreEqual(2, dto.EmailAttachments.Count(a => a.Data.Length > 0 && a.Name.Length > 0)); // execute test using (var spooler = new EmailSpooler(deps)) { spooler.Spool(); } // test result email.DidNotReceive().Send(); }
public void Spool_WhenOneEmailNotSent_WhenEmailSendsSuccessfully_MarksEmailAsSent() { // test setup var email = CreateSubstituteEmail(); var func = EmailGeneratorWith(email); var dto = EmailBuilder.Create().WithRandomProps().WithRandomRecipient().WithRandomAttachment(2).Build(); dto.EmailRecipients.First().IsBCC = true; dto.EmailRecipients.First().IsCC = true; var ctx = SubstituteEmailContextBuilder.Create().WithEmails(dto).Build(); var deps = FakeEmailSpoolerDependenciesBuilder.Create() .WithDbContext(ctx) .WithEmailGenerator(func) .Build(); // pre-conditions Assert.AreEqual(2, dto.EmailAttachments.Count(a => a.Data.Length > 0 && a.Name.Length > 0)); // execute test ctx.DidNotReceive().SaveChanges(); using (var spooler = new EmailSpooler(deps)) { spooler.Spool(); } // test result Assert.IsTrue(dto.Sent); ctx.Received().SaveChanges(); }
public void Spool_WhenOneEmailNotSent_AddsAllAttachmentsWithContentIDsWithContentIds() { // test setup var email = CreateSubstituteEmail(); var func = EmailGeneratorWith(email); var dto = EmailBuilder.Create().WithRandomProps().WithRandomRecipient().WithRandomAttachment(2).Build(); dto.EmailRecipients.First().IsBCC = true; dto.EmailRecipients.First().IsCC = true; var ctx = SubstituteEmailContextBuilder.Create().WithEmails(dto).Build(); var deps = FakeEmailSpoolerDependenciesBuilder.Create() .WithDbContext(ctx) .WithEmailGenerator(func) .Build(); // pre-conditions Assert.AreEqual(2, dto.EmailAttachments.Count(a => a.Data.Length > 0 && a.Name.Length > 0)); // execute test using (var spooler = new EmailSpooler(deps)) { spooler.Spool(); } // test result foreach (var attachment in dto.EmailAttachments) { email.Received().AddAttachment(attachment.Name, attachment.Data, attachment.MIMEType, attachment.ContentID); } }
public void Spool_WhenOneEmailNotSentButSendAttemptsExceeded_DoesNotSendMail() { // test setup var email = CreateSubstituteEmail(); var func = EmailGeneratorWith(email); var dto = EmailBuilder.Create().WithRandomProps().WithRandomRecipient().WithRandomAttachment(2).Build(); var maxAttempts = RandomValueGen.GetRandomInt(3, 6); dto.EmailRecipients.First().IsBCC = true; dto.EmailRecipients.First().IsCC = true; dto.SendAt = DateTime.Now.AddYears(-1); dto.SendAttempts = maxAttempts + 1; var ctx = SubstituteEmailContextBuilder.Create().WithEmails(dto).Build(); var deps = FakeEmailSpoolerDependenciesBuilder.Create() .WithDbContext(ctx) .WithEmailGenerator(func) .Build(); deps.EmailSpoolerConfig.MaxSendAttempts.ReturnsForAnyArgs(ci => maxAttempts); // pre-conditions Assert.AreEqual(2, dto.EmailAttachments.Count(a => a.Data.Length > 0 && a.Name.Length > 0)); // execute test using (var spooler = new EmailSpooler(deps)) { spooler.Spool(); } // test result email.DidNotReceive().Send(); }
public async Task <ActionResult> RecoverPassword(string email) { try { var user = await _userManager.Users.FirstOrDefaultAsync(e => e.Email == email); if (user == null) { return(NotFound()); } var tokenResetPassword = await _userManager.GeneratePasswordResetTokenAsync(user); var emailBuilder = new EmailBuilder("", "", user.Id, "", tokenResetPassword); await _emailSender.SendEmailAsync(email, EmailBuilder.SubjectConfirmEmail, emailBuilder.GetPasswrodResetMessage()); return(StatusCode(200, "Um email de recuperação de senha foi enviado.")); } catch (NullReferenceException e) { return(StatusCode(404, e.Message)); } catch (Exception e) { return(StatusCode(500, e.Message)); } }
public void Spool_WhenOneEmailNotSent_AddsRecipientsToAllConfiguredFields() { // test setup var email = CreateSubstituteEmail(); var func = EmailGeneratorWith(email); var dto = EmailBuilder.Create().WithRandomProps().WithRandomRecipient().Build(); dto.EmailRecipients.First().IsBCC = true; dto.EmailRecipients.First().IsCC = true; var ctx = SubstituteEmailContextBuilder.Create().WithEmails(dto).Build(); var deps = FakeEmailSpoolerDependenciesBuilder.Create() .WithDbContext(ctx) .WithEmailGenerator(func) .Build(); // pre-conditions Assert.IsTrue(dto.EmailRecipients.Count(e => e.IsBCC && e.IsPrimaryRecipient && e.IsCC) == 1); // execute test using (var spooler = new EmailSpooler(deps)) { spooler.Spool(); } // test result foreach (var recipient in dto.EmailRecipients) { email.Received().AddRecipient(recipient.Recipient); email.Received().AddBCC(recipient.Recipient); email.Received().AddCC(recipient.Recipient); } }
} // delete soon protected void rg_email_history_ItemDataBound(object sender, GridItemEventArgs e) { if (e.Item is GridDataItem) { GridDataItem item = (GridDataItem)e.Item; if (item["Pattern"].Text != " ") { Label l = new Label(); l.Text = item["Pattern"].Text; System.Web.UI.WebControls.Image img_info = new System.Web.UI.WebControls.Image(); img_info.CssClass = "HandCursor"; img_info.ImageUrl = "~/images/leads/ico_info.png"; img_info.Height = img_info.Width = 15; img_info.ToolTip = EmailBuilder.GetPatternDetailsByPatternID(item["Pattern"].Text); img_info.Attributes.Add("style", "position:relative; top:2px; margin-left:4px;"); item["Pattern"].Controls.Add(l); item["Pattern"].Controls.Add(img_info); } if (item["Failed"].Text == "1") { item.ForeColor = Color.DarkOrange; } } }
public ActionResult SignUpForm(NewUser newUser, EmailBuilder mailBuilder) { if (string.IsNullOrEmpty(newUser.Email)) { ModelState.AddModelError("Email", "Please enter a valid Email"); } if (string.IsNullOrEmpty(newUser.Password)) { ModelState.AddModelError("Password", "Please enter a valid Password"); } if (string.IsNullOrEmpty(newUser.Username)) { ModelState.AddModelError("Username", "Please enter a valid Password"); } if (ModelState.IsValid) { if (newUser.checkUser() == true) { ModelState.AddModelError("ErrorMessage", "User already exists"); } else { newUser.generateSignUpCode(); mailBuilder.SendVerificationLinkEmail(newUser, newUser.generatedCode); TempData["verificationCode"] = newUser.generatedCode; TempData["NewUser"] = newUser; return(RedirectToAction("EmailConfirmation")); } } return(View("SignUp", newUser)); }
public IActionResult ShareProductByEmail(long id, ShareInfo info) { var config = new ConfigurationBuilder().AddJsonFile("appsettings.Development.Json").Build(); var product = _context.Products.SingleOrDefault(x => x.Id == id); if (product != null) { var emailBuilder = new EmailBuilder(product, info.TargetEmail); try { emailBuilder.SendEmail(); TempData["OperationStatus"] = "Success"; } catch { TempData["OperationStatus"] = "Fail"; } } else { TempData["OperationStatus"] = "Fail"; } return(RedirectToAction("Index", "Shop")); }
public async Task <ActionResult> Contact(SendAMessageViewModel sendAMessageViewModel) { try { sendAMessageViewModel.PhoneNumber = Sanitizer.GetSafeHtmlFragment(sendAMessageViewModel.PhoneNumber); sendAMessageViewModel.Message = Sanitizer.GetSafeHtmlFragment(sendAMessageViewModel.Message); sendAMessageViewModel.Name = Sanitizer.GetSafeHtmlFragment(sendAMessageViewModel.Name); sendAMessageViewModel.Subject = Sanitizer.GetSafeHtmlFragment(sendAMessageViewModel.Subject); sendAMessageViewModel.EmailAddress = Sanitizer.GetSafeHtmlFragment(sendAMessageViewModel.EmailAddress); var messageBuilder = new EmailBuilder() { To = MailingList.ToAllStaff, Subject = "Inquiry", IsBodyHtml = true, Body = BuildMailTemplate.CreateContactUsTemplate(sendAMessageViewModel) }; await EmailBuilder.SendEmailAsync(messageBuilder, sendAMessageViewModel.EmailAddress); return(Json(new { status = TransactionStatusEnum.success, subject = "Sent", message = "Your message has been sent successfully" }, JsonRequestBehavior.AllowGet)); } catch (Exception ex) { return(Json(new { status = TransactionStatusEnum.fail, subject = "Failed", message = ex.Message.ToString() }, JsonRequestBehavior.AllowGet)); //return Json(new { status = TransactionStatusEnum.fail, subject = "Failed", message = "Oops! Something went wrong while sending your message. Please try again" }, JsonRequestBehavior.AllowGet); } }
/// <summary> /// 修改密码页面 /// </summary> /// <param name="emailBuilder"></param> /// <param name="user"></param> /// <returns></returns> public static MailMessage ChangedPassword(this EmailBuilder emailBuilder, IUser user) { string templateName = "ChangedPassword"; dynamic model = emailBuilder.GetUserEmailModel(user); return(emailBuilder.Resolve(templateName, model, new string[] { user.AccountEmail })); }
public void AddNew_ActingOnCollection_ShouldAddNewItemAndReturnIt_AfterExecutingInitializerActionAndAfterAddACtion() { using (var ctx = GetContext()) { //---------------Set up test pack------------------- CollectionAssert.IsEmpty(ctx.Emails); var called = false; void SaveChanges() { ctx.SaveChangesWithErrorReporting(); called = true; } var email = EmailBuilder.BuildRandom(); //---------------Assert Precondition---------------- //---------------Execute Test ---------------------- var attachment = email.EmailAttachments.AddNew(a => { a.Data = GetRandomBytes(100); a.MIMEType = GetRandomString(2); called = true; }, o => { SaveChanges(); }); //---------------Test Result ----------------------- Assert.IsTrue(called); // just-in-casies CollectionAssert.IsNotEmpty(email.EmailAttachments); CollectionAssert.Contains(email.EmailAttachments, attachment); } }
public void RemoveRange_ActingOnICollection_ShouldRemoveParamsItems() { using (var ctx = GetContext()) { //---------------Set up test pack------------------- var email = EmailBuilder.BuildRandom(); var anotherEmail = EmailBuilder.BuildRandom(); // ReSharper disable once ConvertToLocalFunction Func <EmailAttachment> createAttachment = () => EmailAttachmentBuilder.Create().WithRandomProps().WithProp(o => o.Email = email).Build(); var item1 = createAttachment(); var item2 = createAttachment(); var item3 = createAttachment(); email.EmailAttachments.AddRange(item1, item2, item3); ctx.Emails.AddRange(email, anotherEmail); ctx.SaveChangesWithErrorReporting(); //---------------Assert Precondition---------------- CollectionAssert.IsNotEmpty(email.EmailAttachments); //---------------Execute Test ---------------------- email.EmailAttachments.RemoveRange(item1, item3); anotherEmail.EmailAttachments.AddRange(item1, item3); ctx.SaveChangesWithErrorReporting(); //---------------Test Result ----------------------- CollectionAssert.DoesNotContain(email.EmailAttachments, item1); CollectionAssert.Contains(email.EmailAttachments, item2); CollectionAssert.DoesNotContain(email.EmailAttachments, item3); } }
public void Deve_armazenar_um_email() { var email = EmailBuilder.Novo().Criar(); _armazenadorDeEmail.Salvar(email); _emailRepository.Verify(repository => repository.Salvar(email), Times.Once); }
/// <summary> /// 注册成功 /// </summary> /// <param name="emailBuilder">Email模板</param> /// <param name="password">密码</param> /// <param name="user">用户</param> /// <returns></returns> public static MailMessage RegisterSuccess(this EmailBuilder emailBuilder, string password, IUser user) { string templateName = "RegisterSuccess"; dynamic model = emailBuilder.GetUserEmailModel(user); model.Password = password; return(emailBuilder.Resolve(templateName, model, new string[] { user.AccountEmail })); }
/// <summary> /// 忘记密码 /// </summary> /// <param name="emailBuilder"></param> /// <param name="user"></param> /// <returns></returns> public static MailMessage ResetPassword(this EmailBuilder emailBuilder, IUser user) { string templateName = "ResetPassword"; dynamic model = emailBuilder.GetUserEmailModel(user); model.IP = WebUtility.GetIP(); return(emailBuilder.Resolve(templateName, model, new string[] { user.AccountEmail })); }
/// <summary> /// 提醒 /// </summary> /// <param name="emailBuilder"></param> /// <param name="userReminderInfos">用户提醒信息集合</param> /// <param name="user"></param> /// <returns></returns> public static MailMessage Reminder(this EmailBuilder emailBuilder, IList <UserReminderInfo> userReminderInfos, IUser user) { string templateName = "Reminder"; dynamic model = emailBuilder.GetUserEmailModel(user); model.UserReminderInfos = userReminderInfos; return(emailBuilder.Resolve(templateName, model, new string[] { user.AccountEmail })); }
/// <summary> /// 验证邮箱 /// </summary> /// <param name="emailBuilder"></param> /// <param name="user"></param> /// <returns></returns> public static MailMessage RegisterValidateEmail(this EmailBuilder emailBuilder, IUser user) { string templateName = "RegisterValidateEmail"; dynamic model = emailBuilder.GetUserEmailModel(user); model.EmailValidateUrl = SiteUrls.FullUrl(SiteUrls.Instance().RegisterValidateEmail(user.UserId)); return(emailBuilder.Resolve(templateName, model, new string[] { user.AccountEmail })); }
public void EnviarDanfeEmail(string _emailDestinatario, string _assunto, string _mensagem) { if (Nota.Empresa.ComponenteDfe == 0) //0 = Tecnospeed / 1 = Zeus Automação { string arquivo = ""; SpdNFeX.EmailServidor = Empresa.ServidorSMTP; SpdNFeX.EmailPorta = Empresa.PortaSMTP; SpdNFeX.EmailRemetente = Empresa.EmailUsuario; SpdNFeX.EmailUsuario = Empresa.EmailUsuario; SpdNFeX.EmailSenha = Empresa.EmailSenha; SpdNFeX.EmailDestinatario = _emailDestinatario; SpdNFeX.EmailAssunto = _assunto; SpdNFeX.EmailMensagem = _mensagem; if (Empresa.GMailAutenticacao) { SpdNFeX.EmailAutenticacao = Empresa.GMailAutenticacao; } try { arquivo = SpdNFeX.EnviarNotaDestinatario(Nota.ChaveNota, DiretorioPadrao + "\\LOG\\" + Nota.LogEnvio, DiretorioPadrao + "\\LOG\\" + Nota.LogRecibo); } catch { arquivo = SpdNFeX.EnviarNotaDestinatario(Nota.ChaveNota, DiretorioPadrao + "\\LogHom\\" + Nota.LogEnvio, DiretorioPadrao + "\\LogHom\\" + Nota.LogRecibo); } } else { NFe.Utils.Email.ConfiguracaoEmail ConfigEmail = new NFe.Utils.Email.ConfiguracaoEmail( Empresa.EmailUsuario, Empresa.EmailSenha, _assunto, _mensagem, Empresa.ServidorSMTP, Empresa.PortaSMTP, false, true); // Nome da Empresa ConfigEmail.Nome = Empresa.Fantasia; if (Empresa.GMailAutenticacao) { ConfigEmail.Ssl = true; } var emailBuilder = new EmailBuilder(ConfigEmail) .AdicionarDestinatario(_emailDestinatario) .AdicionarAnexo(DiretorioXML + "\\" + Nota.ChaveNota + "-nfe.xml") .AdicionarAnexo(DiretorioPadrao + "\\pdf\\" + Nota.ChaveNota + "-nfe.pdf"); //emailBuilder.ErroAoEnviarEmail += erro => MessageBox.Show(erro.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); emailBuilder.Enviar(); } }
static void Start() { var emailSender = new EmailSender(); var _pingTimeout = 200; var emailBuilder = new EmailBuilder("cubicle23-pc"); string emailMessage = emailBuilder.BuildReportAndRemoveServices(_pingTimeout); emailSender.Send(emailMessage, "*****@*****.**"); }
protected void BuildEmailHistoryTooltip(object sender, Telerik.Web.UI.ToolTipUpdateEventArgs args) { String EmailHistoryID = args.Value; String qry = "SELECT ContactID, ee.Email as 'E-mail', up.Fullname as 'Estimated By', EmailEstimationPatternID as 'Pattern', EmailEstimateByPatternFailed as 'Failed', Validated, DateAdded " + "FROM db_contact_email_history ee LEFT JOIN db_userpreferences up ON ee.EstimatedByUserID=up.UserID WHERE EmailEstimateID=@EmailEstimateID ORDER BY DateAdded"; DataTable dt_estimate = SQL.SelectDataTable(qry, "@EmailHistoryID", EmailHistoryID); if (dt_estimate.Rows.Count > 0) { String ContactID = dt_estimate.Rows[0]["ContactID"].ToString(); String PatternDetails = EmailBuilder.GetPatternDetailsByPatternID(dt_estimate.Rows[0]["Pattern"].ToString()); String EstimatedByFullName = dt_estimate.Rows[0]["Estimated By"].ToString(); String DateAdded = dt_estimate.Rows[0]["DateAdded"].ToString(); qry = "SELECT TRIM(CONCAT(CASE WHEN FirstName IS NULL THEN '' ELSE CONCAT(TRIM(FirstName), ' ') END, " + "CASE WHEN NickName IS NULL THEN '' ELSE '' END, CASE WHEN LastName IS NULL THEN '' ELSE TRIM(LastName) END)) as 'name' " + "FROM db_contact WHERE ContactID=@ContactID"; String ContactName = SQL.SelectString(qry, "name", "@ContactID", ContactID); Label lbl_title = new Label(); lbl_title.CssClass = "MediumTitle"; lbl_title.Text = "E-mail estimation history for contact '<b>" + Server.HtmlEncode(ContactName) + "</b>'"; lbl_title.Attributes.Add("style", "font-weight:500; margin-top:0px; margin-bottom:6px; position:relative; top:-3px;"); Label lbl_cur_email = new Label(); String BuiltInfo = "Currently estimated e-mail was built by " + Server.HtmlEncode(EstimatedByFullName) + " based on matched e-mail patterns of other contacts at this company." + "<br/>E-mail built using " + Server.HtmlEncode(PatternDetails) + "<br/>Built: " + Server.HtmlEncode(DateAdded); lbl_cur_email.Text = BuiltInfo; lbl_cur_email.Font.Size = 8; Panel p = new Panel(); p.Width = 679; qry = "SELECT Email as 'E-mail', Fullname as 'Estimated By', EmailEstimationPatternID as 'Pattern', EmailEstimateByPatternFailed as 'Failed', Validated, DateAdded " + "FROM db_contact_email_history ee LEFT JOIN db_userpreferences up ON ee.EstimatedByUserID=up.UserID WHERE ContactID=@ContactID ORDER BY EmailEstimateByPatternFailed, DateAdded DESC"; DataTable dt_email_history = SQL.SelectDataTable(qry.Replace("EmailHistoryID=@EmailHistoryID", "ContactID=@ContactID"), "@ContactID", ContactID); RadGrid rg_email_history = new RadGrid(); rg_email_history.Skin = "Silk"; rg_email_history.Font.Size = 7; rg_email_history.AutoGenerateColumns = true; rg_email_history.AllowSorting = false; rg_email_history.DataSource = dt_email_history; rg_email_history.DataBind(); rg_email_history.Width = 675; rg_email_history.ItemDataBound += rg_email_history_ItemDataBound; p.Controls.Add(lbl_title); p.Controls.Add(lbl_cur_email); p.Controls.Add(rg_email_history); args.UpdatePanel.ContentTemplateContainer.Controls.Add(p); args.UpdatePanel.ChildrenAsTriggers = true; } } // delete soon
public async Task <ActionResult> Register([FromBody] CreateUserViewModel newUser) { if (newUser.Password != newUser.PasswordConfirmation) { return(StatusCode(400, "A senha e confirmação de senha precisam ser iguais")); } if (!new User().IsValidEmail(newUser.Email)) { return(StatusCode(400, "Formato de email inválido")); } var mappedUser = new User() { UserName = newUser.UserName, Email = newUser.Email }; try { IdentityResult checkUserCreation = await _userManager.CreateAsync(mappedUser, newUser.Password); if (checkUserCreation.Succeeded) { _userManager.AddToRoleAsync(mappedUser, Roles.ROLE_USER).Wait(); } else { return(StatusCode(400, new { checkUserCreation.Errors })); } var tokenConfirmEmail = await _userManager.GenerateEmailConfirmationTokenAsync(mappedUser); var emailBuilder = new EmailBuilder("", "", mappedUser.Id, tokenConfirmEmail, ""); await _emailSender.SendEmailAsync(mappedUser.Email, EmailBuilder.SubjectConfirmEmail, emailBuilder.GetEmailConfirmationMessage()); return(StatusCode(200, "Por favor, confirme seu email antes de fazer login.")); } catch (NullReferenceException e) { return(StatusCode(404, e.Message)); } catch (Exception e) { return(StatusCode(500, e.Message)); } }
protected void BuildAllEmailsAtCompany(object sender, EventArgs e) { String Output = EmailBuilder.BuildEmailsByCompanyID(CompanyID, true, true, false, false, Util.GetUserId()); BindContacts(CompanyID); String Summary = Output.Substring(Output.IndexOf("E-mails Built:")).Replace(" ", " - ").Replace("<p>", String.Empty); Util.PageMessageAlertify(this, Summary, "E-mails Built!", RadAjaxManager.GetCurrent(this.Page)); btn_estimate_all_emails.Visible = false; }
public ConfirmAccountEmailBuilderTest() { _confirmAccountTemplateModel = new ConfirmAccountTemplateModel(); var mockViewRenderService = new Mock <IViewRenderService>(); mockViewRenderService.Setup(x => x.RenderToString("ConfirmAccountTemplate", _confirmAccountTemplateModel)) .ReturnsAsync("test"); _emailBuilder = new ConfirmAccountEmailBuilder <ConfirmAccountTemplateModel>(mockViewRenderService.Object); }
static void Main(string[] args) { Console.WriteLine("Email BUILDER!"); var emailBuilder = new EmailBuilder(); var diretor = new EmailDirector(emailBuilder); var email = diretor.Work(); email.Send(); }
public data_using_default_person_builder() { _personBuilder = new PersonBuilder(DataContainer); _emailBuilder = new EmailBuilder(DataContainer); _builder = new Builder<MyPerson>() .With(x => { var person = _personBuilder.Build(); var emails = _emailBuilder.WithPerson(person).Build(1, 3).ToArray(); x.Name = person.FullName; x.Emails = emails.Select(e => e.Address); }); }
public IHttpActionResult ChangePassword(ChangePasswordRequest request) { var response = new ChangePasswordResponse(); try { var isValidRequest = false; var memberId = request.GetMemberId(); var member = MembershipAdapter.GetMember(memberId); if (request.IsValidModel()) { if (!request.PasswordsMatch()) { request.AddError("Password", "Passwords do not match"); } } if (member.Authenticate(request.CurrentPassword)) { if (!request.HasErrors()) { isValidRequest = true; } } else { request.AddError("Current password", "Current password is invalid"); } if (isValidRequest) { var memberPassword = new MemberPassword(); memberPassword.MemberId = member.Id; memberPassword.InitializePassword(request.Password); memberPassword = MembershipAdapter.UpdatePassword(memberPassword); var email = new ChangePasswordEmail { DomainName = ConfigHelper.DomainName, DomainBaseUrl = ConfigHelper.DomainBaseUrl, Alias = member.Profile.Alias }; var emailBuilder = new EmailBuilder(EmailReference.HTML.Templates.Main, EmailReference.HTML.Contents.ChangePassword); var emailBody = emailBuilder.BuildBody<ChangePasswordEmail>(email); var emailResult = EmailHelper.SendEmail(ConfigHelper.NoReplayEmailAddress, ConfigHelper.DomainName, member.Email, member.Profile.Alias, email.Subject, emailBody, true); if (emailResult) { response.IsSuccessful = true; response.StatusMessage = "Password update succeeded"; } } else { response.IsSuccessful = false; response.StatusMessage = "Password update was unsuccessful"; response.Errors.AddRange(request.GetErrors()); } } catch (Exception ex) { request.CurrentPassword = string.Empty; request.Password = string.Empty; request.PasswordConfirm = string.Empty; this.Log<ChangePasswordRequest>(LogCategories.Error, request, ex.Message); response.IsSuccessful = false; response.StatusMessage = this.StatusMessageForExpection; response.Errors.Add(ex.Message); } return Ok(response); }
public IHttpActionResult UpdateProfile(ProfileUpdateRequest request) { var response = new ProfileUpdateResponse(); try { var isValidRequest = false; var emailChanged = false; var memberId = request.GetMemberId(); var member = MembershipAdapter.GetMember(memberId); if (request.IsValidModel()) { if (member.Exists()) { if (member.ConfirmedRegistration()) { if (memberId == member.Id) { isValidRequest = true; emailChanged = !string.Equals(request.Email, member.Email, StringComparison.InvariantCultureIgnoreCase); } } } } if (isValidRequest) { var memberProfile = new MemberProfile { MemberId = member.Id, TimeZoneId = request.TimeZoneId, Alias = request.Alias, Gender = request.Gender, BirthDate = request.BirthDate }; memberProfile = MembershipAdapter.UpdateProfile(memberProfile); if (emailChanged) { var memberEmailChange = MembershipAdapter.GetMemberEmailChange(member.Id); if (memberEmailChange.Exists()) { if (!string.Equals(memberEmailChange.Email, request.Email, StringComparison.InvariantCultureIgnoreCase)) { memberEmailChange.Email = request.Email; MembershipAdapter.UpdateEmailChange(memberEmailChange); } } else { memberEmailChange.MemberId = member.Id; memberEmailChange.Email = request.Email; MembershipAdapter.CreateEmailChange(memberEmailChange); } var memberTokens = MembershipAdapter.GetMemberTokens(member.Id, TokenTypes.EmailChange, true); var memberToken = new MemberToken(); memberToken.MemberId = member.Id; memberToken.TokenType = TokenTypes.EmailChange; memberToken.RequestDate = DateTime.Now.ToUniversalTime(); if (memberTokens.Any()) { memberToken.Token = memberTokens.ElementAt(0).Token; memberToken = MembershipAdapter.UpdateToken(memberToken); } else { memberToken.Token = Guid.NewGuid(); memberToken = MembershipAdapter.CreateToken(memberToken); } var email = new EmailChangeEmail { DomainName = ConfigHelper.DomainName, DomainBaseUrl = ConfigHelper.DomainBaseUrl, Alias = request.Alias, ConfirmationToken = memberToken.Token }; var emailBuilder = new EmailBuilder(EmailReference.HTML.Templates.Main, EmailReference.HTML.Contents.EmailChange); var emailBody = emailBuilder.BuildBody<EmailChangeEmail>(email); var emailResult = EmailHelper.SendEmail(ConfigHelper.NoReplayEmailAddress, ConfigHelper.DomainName, request.Email, member.Profile.Alias, email.Subject, emailBody, true); } response.IsSuccessful = true; response.StatusMessage = "Update profile succeeded"; } else { response.IsSuccessful = false; response.StatusMessage = "Update profile was unsuccessful"; response.Errors.AddRange(request.GetErrors()); } } catch (Exception ex) { this.Log<ProfileUpdateRequest>(LogCategories.Error, request, ex.Message); response.IsSuccessful = false; response.StatusMessage = this.StatusMessageForExpection; response.Errors.Add(ex.Message); } return Ok(response); }
public IHttpActionResult ResetPasswordToken(ResetPasswordRequest request) { var response = new SignInResponse(); try { var isValidRequest = false; var memberId = request.GetMemberId(); var member = MembershipAdapter.GetMember(request.Token); if (request.IsValidModel()) { if (!request.PasswordsMatch()) { request.AddError("Password", "Passwords do not match"); } else { if (member.Exists()) { if (memberId == member.Id) { if (member.HasTokens()) { if (member.Tokens.ElementAt(0).IsValid(TokenTypes.PasswordReset)) { isValidRequest = true; } } } } } } if (isValidRequest) { var memberPassword = new MemberPassword(); memberPassword.MemberId = member.Id; memberPassword.InitializePassword(request.Password); MembershipAdapter.UpdatePassword(memberPassword); var memberToken = new MemberToken { Token = member.Tokens.ElementAt(0).Token, MemberId = member.Id, TokenType = member.Tokens.ElementAt(0).TokenType, ExpirationDate = member.Tokens.ElementAt(0).ExpirationDate, ConfirmedDate = DateTime.Now.ToUniversalTime(), RequestDate = member.Tokens.ElementAt(0).RequestDate }; MembershipAdapter.UpdateToken(memberToken); response.MemberId = member.Id.ToString(); response.Alias = member.Profile.Alias; response.IsActive = member.IsActive; response.IsAdmin = member.IsAdmin; var email = new ResetPasswordEmail { DomainName = ConfigHelper.DomainName, DomainBaseUrl = ConfigHelper.DomainBaseUrl, Alias = member.Profile.Alias }; var emailBuilder = new EmailBuilder(EmailReference.HTML.Templates.Main, EmailReference.HTML.Contents.ResetPassword); var emailBody = emailBuilder.BuildBody<ResetPasswordEmail>(email); var emailResult = EmailHelper.SendEmail(ConfigHelper.NoReplayEmailAddress, ConfigHelper.DomainName, member.Email, member.Profile.Alias, email.Subject, emailBody, true); if (emailResult) { response.IsSuccessful = true; response.StatusMessage = "Reset password succeeded"; } } else { response.IsSuccessful = false; response.StatusMessage = "Reset password was unsuccessful"; response.Errors.AddRange(request.GetErrors()); } } catch (Exception ex) { request.Password = string.Empty; request.PasswordConfirm = string.Empty; this.Log<ResetPasswordRequest>(LogCategories.Error, request, ex.Message); response.IsSuccessful = false; response.StatusMessage = this.StatusMessageForExpection; response.Errors.Add(ex.Message); } return Ok(response); }
public IHttpActionResult Register(RegistrationRequest request) { var response = new RegistrationResponse(); try { var member = MembershipAdapter.GetMember(request.Email); if (member.Exists() && member.ConfirmedRegistration()) { request.AddError("Email", "Email already exists"); } if (request.IsValidModel()) { if (!request.PasswordsMatch()) { request.AddError("Password", "Passwords do not match"); } } if (!request.HasErrors()) { if (member.IsNewRegistration()) { member.Email = request.Email; member.RegistrationDate = DateTime.Now.ToUniversalTime(); member.IsActive = true; member.IsAdmin = false; member.Security = new MemberPassword(); member.Security.InitializePassword(request.Password); member.Profile = new MemberProfile(); member.Profile.Alias = request.Alias; member.Profile.TimeZoneId = ConfigHelper.DefaultTimeZoneId; var registrationToken = new MemberToken(); registrationToken.Token = Guid.NewGuid(); registrationToken.TokenType = TokenTypes.Registration; registrationToken.RequestDate = member.RegistrationDate; member.Tokens.Add(registrationToken); member = MembershipAdapter.AddMember(member); } else if (member.IsPendingRegistrationConfirmation()) { member.Security.InitializePassword(request.Password); member.Profile.Alias = request.Alias; var registrationToken = MembershipAdapter.GetMemberTokens(member.Id, TokenTypes.Registration, true); member.Tokens.Add(registrationToken.ElementAt(0)); member = MembershipAdapter.ReRegisterMember(member); } var email = new RegistrationEmail { DomainName = ConfigHelper.DomainName, DomainBaseUrl = ConfigHelper.DomainBaseUrl, Alias = request.Alias, ConfirmationToken = member.Tokens.ElementAt(0).Token }; var emailBuilder = new EmailBuilder(EmailReference.HTML.Templates.Main, EmailReference.HTML.Contents.Registration); var emailBody = emailBuilder.BuildBody<RegistrationEmail>(email); var emailResult = EmailHelper.SendEmail(ConfigHelper.NoReplayEmailAddress, ConfigHelper.DomainName, request.Email, request.Alias, email.Subject, emailBody, true); if (emailResult) { response.IsSuccessful = true; response.StatusMessage = "Registration succeeded"; } } else { response.Errors.AddRange(request.GetErrors()); response.IsSuccessful = false; response.StatusMessage = "Registration was unsuccessful"; } } catch (Exception ex) { request.Password = string.Empty; request.PasswordConfirm = string.Empty; this.Log<RegistrationRequest>(LogCategories.Error, request, ex.Message); response.IsSuccessful = false; response.StatusMessage = this.StatusMessageForExpection; response.Errors.Add(ex.Message); } return Ok(response); }
public IHttpActionResult ForgotPassword(ForgotPasswordRequest request) { var response = new ForgotPasswordResponse(); try { var isValidRequest = false; var member = MembershipAdapter.GetMember(request.Email); if (request.IsValidModel()) { if (member.Exists()) { if (member.ConfirmedRegistration()) { isValidRequest = true; } } } if (isValidRequest) { MemberToken memberToken = new MemberToken(); memberToken.MemberId = member.Id; memberToken.TokenType = TokenTypes.PasswordReset; memberToken.RequestDate = DateTime.Now.ToUniversalTime(); memberToken.ExpirationDate = memberToken.RequestDate.AddHours(ConfigHelper.PasswordResetExpiration); var memberTokens = MembershipAdapter.GetMemberTokens(member.Id, TokenTypes.PasswordReset, true); if (!memberTokens.Any()) { memberToken.Token = Guid.NewGuid(); memberToken = MembershipAdapter.CreateToken(memberToken); } else { memberToken.Token = memberTokens.ElementAt(0).Token; memberToken = MembershipAdapter.UpdateToken(memberToken); } var email = new ForgotPasswordEmail { DomainName = ConfigHelper.DomainName, DomainBaseUrl = ConfigHelper.DomainBaseUrl, Alias = member.Profile.Alias, Token = memberToken.Token }; var emailBuilder = new EmailBuilder(EmailReference.HTML.Templates.Main, EmailReference.HTML.Contents.ForgotPassword); var emailBody = emailBuilder.BuildBody<ForgotPasswordEmail>(email); var emailResult = EmailHelper.SendEmail(ConfigHelper.NoReplayEmailAddress, ConfigHelper.DomainName, member.Email, member.Profile.Alias, email.Subject, emailBody, true); if (emailResult) { response.IsSuccessful = true; response.StatusMessage = "Forgot password succeeded"; } } else { response.IsSuccessful = false; response.StatusMessage = "Forgot password was unsuccessful"; response.Errors.AddRange(request.GetErrors()); } } catch (Exception ex) { this.Log<ForgotPasswordRequest>(LogCategories.Error, request, ex.Message); response.IsSuccessful = false; response.StatusMessage = this.StatusMessageForExpection; response.Errors.Add(ex.Message); } return Ok(response); }
public IHttpActionResult ConfirmRegistrationToken(Guid token) { var response = new SignInResponse(); try { var isValidToken = false; var member = MembershipAdapter.GetMember(token); if (member.Exists()) { if (member.HasTokens()) { if (member.Tokens.ElementAt(0).IsValid(TokenTypes.Registration)) { isValidToken = true; } } } if (isValidToken) { member.MembershipDate = DateTime.Now.ToUniversalTime(); member.Tokens.ElementAt(0).ConfirmedDate = member.MembershipDate; member = MembershipAdapter.ConfirmRegistration(member); var email = new RegistrationConfirmationEmail { DomainName = ConfigHelper.DomainName, DomainBaseUrl = ConfigHelper.DomainBaseUrl, Alias = member.Profile.Alias }; var emailBuilder = new EmailBuilder(EmailReference.HTML.Templates.Main, EmailReference.HTML.Contents.RegistrationConfirmation); var emailBody = emailBuilder.BuildBody<RegistrationConfirmationEmail>(email); var emailResult = EmailHelper.SendEmail(ConfigHelper.NoReplayEmailAddress, ConfigHelper.DomainName, member.Email, member.Profile.Alias, email.Subject, emailBody, true); if (emailResult) { response.MemberId = member.Id.ToString(); response.Alias = member.Profile.Alias; response.IsActive = member.IsActive; response.IsAdmin = member.IsAdmin; response.IsSuccessful = true; response.StatusMessage = "Confirm registration succeeded"; } } else { response.IsSuccessful = false; response.StatusMessage = "Confirm registration was unsuccessful"; } } catch (Exception ex) { this.Log(LogCategories.Error, token.ToString(), ex.Message); response.IsSuccessful = false; response.StatusMessage = this.StatusMessageForExpection; response.Errors.Add(ex.Message); } return Ok(response); }