Esempio n. 1
0
        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());
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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)

                );
        }
Esempio n. 6
0
 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());
        }
Esempio n. 8
0
        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));
        }
Esempio n. 9
0
        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());
        }