public ActionResult ConfirmPayment(RegistrationCompleteModel model) { model.PromptForConfirmation = false; RegistrationDetails registrationDetails = _sessionProvider.RegistrationDetails; if (registrationDetails == null || string.IsNullOrWhiteSpace(_sessionProvider.GoCardlessRedirectFlowId)) { TempData["Model"] = model; return(CurrentUmbracoPage()); } string mandateId = _goCardlessProvider.CompleteRedirectRequest(_sessionProvider.GoCardlessRedirectFlowId, _sessionProvider.SessionId); registrationDetails.PersonalDetails.DirectDebitMandateId = mandateId; var regDetails = registrationDetails.PersonalDetails; int costInPence = _membershipCostCalculator.Calculate(registrationDetails.MemberOptions, DateTime.Now); model.Cost = (costInPence / 100m).ToString("N2"); var paymentDescription = MemberProvider.GetPaymentDescription(registrationDetails.MemberOptions); var paymentResponse = _goCardlessProvider.CreatePayment(Logger, regDetails.DirectDebitMandateId, regDetails.Email, costInPence, paymentDescription); model.IsRegistered = paymentResponse == PaymentResponseDto.Success; if (model.IsRegistered) { var member = _memberProvider.CreateMember(regDetails, new string[] { MSTCRoles.Member }); _memberProvider.UpdateMemberDetails(member, registrationDetails.PersonalDetails, registrationDetails.MemberOptions); //Login the member FormsAuthentication.SetAuthCookie(member.Username, true); string content = GetRegEmailContent(registrationDetails, true); _emailProvider.SendEmail(EmailProvider.MembersEmail, EmailProvider.SupportEmail, "New MSTC member registration", content); _sessionProvider.RegistrationDetails = null; _sessionProvider.GoCardlessRedirectFlowId = null; TempData["Model"] = model; return(CurrentUmbracoPage()); } else { string content = GetRegEmailContent(registrationDetails, false); _emailProvider.SendEmail(EmailProvider.SupportEmail, EmailProvider.SupportEmail, "MSTC member registration problem", content); } TempData["Model"] = model; return(CurrentUmbracoPage()); }
public ActionResult ForgotPassword(ForgotPasswordModel model) { if (ModelState.IsValid) { var member = Services.MemberService.GetByEmail(model.Email); if (member == null) { ModelState.AddModelError("", "Unable to find user with that email address."); return(CurrentUmbracoPage()); } var newPassword = Membership.GeneratePassword(10, 1); newPassword = Regex.Replace(newPassword, @"[^a-zA-Z0-9]", m => "9"); Services.MemberService.SavePassword(member, newPassword); var sb = new StringBuilder(); sb.AppendFormat(string.Format("<p>Please find your new password below to access the site</p>")); sb.AppendFormat("<p><b>{0}</b></p>", newPassword); _emailProvider.SendEmail(model.Email, "*****@*****.**", "Mid Sussex Tri Club password reset", sb.ToString()); return(Redirect("/login/")); } return(CurrentUmbracoPage()); }
public void SendEmail() { var mockConfiguration = new Mock <ConfigurationProvider>(); mockConfiguration.Setup(c => c.GetConfigSetting(Constants.ConfigKeys.EmailPort)).Returns("25"); mockConfiguration.Setup(c => c.GetConfigSetting(Constants.ConfigKeys.EmailServer)).Returns("localhost"); mockConfiguration.Setup(c => c.GetConfigSetting(Constants.ConfigKeys.EmailFromAddress)).Returns("*****@*****.**"); var emailModel = new EmailModel() { EmailAddress = "*****@*****.**", EmailBody = "Hello World!", EmailSubject = "Hi!", isValid = true }; var mockSmtpAdapter = new Mock <SmtpAdapter>(); mockSmtpAdapter.Setup(m => m.SendEmail("localhost", 25, new MailMessage() { Body = emailModel.EmailBody, Subject = emailModel.EmailSubject, To = { new MailAddress(emailModel.EmailAddress) }, From = new MailAddress("*****@*****.**") })).Returns("Email Sent"); var provider = new EmailProvider(mockConfiguration.Object, mockSmtpAdapter.Object); var result = provider.SendEmail(emailModel); Assert.IsTrue(result); }
public ActionResult Register(PersonalDetails personalDetails, GuestOptions guestOptions) { if (!ModelState.IsValid) { return(CurrentUmbracoPage()); } var existingMember = Services.MemberService.GetByEmail(personalDetails.Email); if (existingMember != null) { ModelState.AddModelError("Email", "There is already a member registered with the supplied email address."); return(CurrentUmbracoPage()); } if (_guestRegistrationPage == null || !_guestRegistrationPage.GuestCodes.Contains(guestOptions.GuestCode, StringComparer.OrdinalIgnoreCase)) { ModelState.AddModelError("GuestCode", "The guest code does not match any available codes."); return(CurrentUmbracoPage()); } Logger.Info(typeof(RegistrationController), $"New guest registration request: {JsonConvert.SerializeObject(personalDetails)}"); string rootUrl = string.Format("{0}://{1}{2}", Request.Url.Scheme, Request.Url.Host, Request.Url.Port == 80 ? string.Empty : ":" + Request.Url.Port); string successUrl = string.Format("{0}/the-club/confirm-registration", rootUrl); //TODO - Register guest var member = _memberProvider.CreateMember(personalDetails, new string[] { MSTCRoles.Guest }); var memberOptions = new MemberOptions() { MembershipType = MembershipTypeEnum.Guest, OpenWaterIndemnityAcceptance = guestOptions.OpenWaterIndemnityAcceptance, GuestCode = guestOptions.GuestCode, }; _memberProvider.UpdateMemberDetails(member, personalDetails, memberOptions); //Login the member FormsAuthentication.SetAuthCookie(member.Username, true); string content = GetRegEmailContent(personalDetails, guestOptions); _emailProvider.SendEmail(EmailProvider.MembersEmail, EmailProvider.SupportEmail, "New MSTC guest registration", content); var model = new RegistrationCompleteModel() { PromptForConfirmation = false, IsRegistered = true }; TempData["Model"] = model; return(Redirect(successUrl)); }
public void PublishToSubscriber(Message pMessage) { EmailMessage mEmailMessage = pMessage as EmailMessage; EmailProvider.SendEmail( MessageTypeConverter.Instance.Convert < global::Common.Model.EmailMessage, global::EmailService.Business.Entities.EmailMessage>(mEmailMessage) ); }
public IHttpActionResult RecoverPassword(string email) { using (var context = new ApplicationDbContext()) { var userManager = new ApplicationUserManager(new ApplicationUserStore(context)); var user = userManager.Users.Where(x => x.Email.Equals(email)).FirstOrDefault(); if (user == null) { return(NotFound()); } var code = userManager.GeneratePasswordResetToken(user.Id); // ReSharper disable Mvc.ActionNotResolved var callbackUrl = Url.Link("Default", new { Controller = WebConstants.AccountControllerName, Action = WebConstants.ResetPasswordAction, userId = user.Id, code }); EmailProvider.SendEmail(user.Email, "Reset Password", "Hi " + user.UserName + ",<br/><br/>Please reset your password by clicking here: <a href=\"" + callbackUrl + "\">link</a><br/><br/>MyPharmacy Team"); // ReSharper restore Mvc.ActionNotResolved return(StatusCode(HttpStatusCode.NoContent)); } }
public ActionResult Submit(ContactModel model) { if (ModelState.IsValid) { string toAddress; if (_emailProvider.EmailLookup.TryGetValue(model.Topic, out toAddress) == false) { toAddress = "*****@*****.**"; } string content = $"<p>{model.Message}</p><p>Message from: {model.Name}</p><p>Email: {model.Email}</p>"; _emailProvider.SendEmail(toAddress, model.Email, "Mid Sussex Tri Club Website Enquiry", content); TempData["Message"] = "Thank you for contacting us, we will respond soon."; } return(CurrentUmbracoPage()); }
public ActionResult SubmitEmail(MailingListRequest request) { if (!ModelState.IsValid) { //write code to update student return(View("MailingList", new MailingList())); } using (var data = new revocarr_RiadosaOrgEntities()) { var existing = data.Contacts.Where(x => x.Email == request.emailAddress).SingleOrDefault(); if (existing != null) { ModelState.Clear(); return(View("MailingList", new MailingList { SuccessMessage = $"{request.emailAddress} saved." })); } data.Contacts.Add(new Contact { Email = request.emailAddress, DateAdded = DateTime.Now }); data.SaveChanges(); } var email = new EmailProvider(); email.SendEmail(new SendEmailRequest { ToAddress = "*****@*****.**", ToName = "Chief", Subject = "MailingList Submission", Body = $"New email address for the MailingList: {request.emailAddress}" }); var model = new MailingList { SuccessMessage = $"{request.emailAddress} saved. Thanks for subscribing." }; ModelState.Clear(); return(View("MailingList", model)); }
public ActionResult UpdateMemberDetails(MemberDetailsModel model) { var member = _memberProvider.GetLoggedInMember(); if (!ModelState.IsValid || member == null) { return(CurrentUmbracoPage()); } if (!string.Equals(member.Email.Trim(), model.Email.Trim(), StringComparison.OrdinalIgnoreCase)) { FormsAuthentication.SignOut(); FormsAuthentication.SetAuthCookie(model.Email, true); string emailContent = GetEmailChangeContent(model, member.Email); _emailProvider.SendEmail(EmailProvider.MembersEmail, EmailProvider.SupportEmail, "MSTC member email updated", emailContent); } SetMemberDetails(member, model); return(RedirectToCurrentUmbracoUrl()); }