public ActionResult HandleProfileChangePasswordForm(ProfileChangePasswordForm profileChangePasswordForm) { FormResponse formResponse = new FormResponse(); if (this.ModelState.IsValid) { IPartier partier = this.Members.GetCurrentPartier(); // IMPORTANT ! TODO: check existing password IMember member = this.Services.MemberService.GetById(partier.Id); if (member != null) { this.Services.MemberService.SavePassword(member, profileChangePasswordForm.Password); } formResponse.Success = true; } else { formResponse.Errors = this.ModelState.GetErrors(); } return(Json(formResponse, "text/plain")); }
public ActionResult HandleForgottenPasswordForm(ForgottenPasswordForm forgottenPasswordForm) { if (!this.ModelState.IsValid) { return(this.CurrentUmbracoPage()); } IPartier partier = this.Members.GetByUsername(forgottenPasswordForm.EmailAddress) as IPartier; if (partier != null) { Guid forgottenPasswordGuid = Guid.NewGuid(); partier.ForgottenPasswordGuid = forgottenPasswordGuid; ForgottenPassword forgottenPassword = (ForgottenPassword)this.CurrentPage; MailMessage mailMessage = new MailMessage(); mailMessage.From = new MailAddress(forgottenPassword.ServerEmailAddress); mailMessage.To.Add(new MailAddress(partier.Email)); mailMessage.Subject = forgottenPassword.EmailSubject; mailMessage.IsBodyHtml = true; mailMessage.Body = forgottenPassword.EmailBody.Replace("[%RESET_PASSWORD_LINK%]", this.Request.Url.Scheme + "://" + this.Request.Url.Host.ToLower() + this.Umbraco.TypedContentSingleAtXPath("//" + ResetPassword.Alias).Url + "?forgottenPasswordGuid=" + forgottenPasswordGuid.ToString("D")); using (SmtpClient smtpClient = new SmtpClient()) { smtpClient.Send(mailMessage); } } return(this.View("ForgottenPassword/Complete", this.CurrentPage)); }
public ActionResult HandleProfileBillingAddressForm(ProfileBillingAddressForm profileBillingAddressForm) { FormResponse formResponse = new FormResponse(); if (this.ModelState.IsValid) { Address address = new Address( profileBillingAddressForm.Address1, profileBillingAddressForm.Address2, profileBillingAddressForm.TownCity, profileBillingAddressForm.Postcode); IPartier partier = this.Members.GetCurrentPartier(); partier.BillingAddress = address; this.CheckRegistrationComplete(partier); formResponse.Success = true; } else { formResponse.Errors = this.ModelState.GetErrors(); } return(Json(formResponse, "text/plain")); }
private void MemberService_Deleting(IMemberService sender, DeleteEventArgs <IMember> e) { UmbracoHelper umbracoHelper = new UmbracoHelper(UmbracoContext.Current); foreach (IMember member in e.DeletedEntities) { switch (member.ContentTypeAlias) { case PartyHost.Alias: PartyHost partyHost = (PartyHost)umbracoHelper.TypedMember(member.Id); // remove party image media item partyHost.PartyImage = null; // delete all guests ? break; default: IPartier partier = (IPartier)umbracoHelper.TypedContent(member.Id); // delete media item for profile Image partier.ProfileImage = null; // get all wonderlandMessage, remove or mark as deleted ? (media will be on s3, so delete from there) // remove from wonderlandMemberParty break; } } }
public override ActionResult Index(RenderModel renderModel) { ResetPassword model = (ResetPassword)renderModel.Content; Guid forgottenPasswordGuid; if (Guid.TryParse(this.Request.QueryString["forgottenPasswordGuid"], out forgottenPasswordGuid)) { IPartier partier = this.Members.GetPartier(forgottenPasswordGuid); if (partier != null) { // clear guid, so it can't be reused partier.ForgottenPasswordGuid = Guid.Empty; // send cookie FormsAuthentication.SetAuthCookie(partier.Email, true); // cause redirect, so that the login takes effect return(this.Redirect(this.Umbraco.TypedContentSingleAtXPath("//" + ResetPassword.Alias).Url)); } } if (this.Members.IsLoggedInPartier()) { return(this.CurrentTemplate(model)); } else { // fallback and redirect to home return(this.Redirect(Home.GetCurrentHome(model).Url)); } }
public ActionResult RenderDonateForm() { DonateForm donateForm = new DonateForm(); // set hidden field with party guid donateForm.PartyGuid = ((Donate)this.CurrentPage).PartyHost.PartyGuid; PartyHost partyHost = this.Members.GetPartyHost(donateForm.PartyGuid); IPartier partier = this.Members.GetCurrentPartier(); // set the default amount to the party host's suggested donation (only if user isn't the party host) if (partier is PartyHost && partier.Id == partyHost.Id) { donateForm.Amount = 0; } else { donateForm.Amount = partyHost.SuggestedDonation; } if (partier != null) { donateForm.FirstName = partier.FirstName; donateForm.LastName = partier.LastName; donateForm.Address1 = partier.BillingAddress.Address1; donateForm.Address2 = partier.BillingAddress.Address2; donateForm.TownCity = partier.BillingAddress.TownCity; donateForm.Postcode = partier.BillingAddress.Postcode; } return(this.PartialView("Donate/Forms/DonateForm", donateForm)); }
public ActionResult RenderProfileNamesForm() { ProfileNamesForm profileNamesForm = new ProfileNamesForm(); IPartier partier = this.Members.GetCurrentPartier(); profileNamesForm.FirstName = partier.FirstName; profileNamesForm.LastName = partier.LastName; return(this.PartialView("Profile/Forms/ProfileNamesForm", profileNamesForm)); }
internal PartyWallItem(DonationRow donation) { IPartier partier = (IPartier) new MembershipHelper(UmbracoContext.Current).GetById((int)donation.MemberId); this.Id = -1; this.PartyWallItemType = PartyWallItemType.Donation; this.ThumbnailUrl = partier.ProfileImageUrl; this.IsPartyHost = partier is PartyHost && donation.PartyGuid == partier.PartyGuid; this.Name = partier.FirstName + " " + partier.LastName; this.Text = donation.Amount.ToString(); this.Timestamp = donation.Timestamp.ToUniversalTime(); }
public ActionResult RenderProfileBillingAddressForm() { ProfileBillingAddressForm profileBillingAddressForm = new ProfileBillingAddressForm(); IPartier partier = this.Members.GetCurrentPartier(); profileBillingAddressForm.Address1 = partier.BillingAddress.Address1; profileBillingAddressForm.Address2 = partier.BillingAddress.Address2; profileBillingAddressForm.TownCity = partier.BillingAddress.TownCity; profileBillingAddressForm.Postcode = partier.BillingAddress.Postcode; return(this.PartialView("Profile/Forms/ProfileBillingAddressForm", profileBillingAddressForm)); }
public ActionResult HandleProfileImageForm(ProfileImageForm profileImageForm) { FormResponse formResponse = new FormResponse(); if (this.ModelState.IsValid) { formResponse.Success = true; IPartier partier = this.Members.GetCurrentPartier(); if (profileImageForm.ProfileImage != null && profileImageForm.ProfileImage.ContentLength > 0 && profileImageForm.ProfileImage.InputStream.IsImage()) { ProfileImage profileImage = partier.ProfileImage; string url = string.Empty; if (profileImage == null) { // create new profile image profileImage = ProfileImages.CreateProfileImage(profileImageForm.ProfileImage); // get the new url url = profileImage.Url; // update pointer on partier partier.ProfileImage = profileImage; } else { // update existing profile image url = profileImage.UploadImage(profileImageForm.ProfileImage); } formResponse.Message = JsonConvert.SerializeObject(new { id = profileImage.Id, url = url }); //TODO:S3URL } else // remove reference to image { // this will cause the file deletion partier.ProfileImage = null; } } else { formResponse.Errors = this.ModelState.GetErrors(); } return(Json(formResponse, "text/plain")); }
/// <summary> /// a member can register, and skip the 2nd step /// if these values are then set afterwards when editing this profile, then we can then mark the registration as complete /// </summary> /// <param name="partier"></param> private void CheckRegistrationComplete(IPartier partier) { // once it has been completed, we never revert back, so only process if dot mailer thinks the host hasn't yet completed registration if (!partier.DotMailerRegistrationComplete) { if (!string.IsNullOrWhiteSpace(partier.FirstName) && !string.IsNullOrWhiteSpace(partier.LastName) && !string.IsNullOrWhiteSpace(partier.BillingAddress.ToString())) { if (partier is PartyHost) { DotMailerService.HostRegistrationCompleted((Contact)(PartyHost)partier); } else if (partier is PartyGuest) { DotMailerService.GuestRegistrationCompleted((Contact)(PartyGuest)partier); } } } }
public ActionResult HandleResetPasswordForm(ResetPasswordForm resetPasswordForm) { if (!this.ModelState.IsValid) { return(this.CurrentUmbracoPage()); } IPartier partier = this.Members.GetCurrentPartier(); if (partier != null) { IMember member = this.Services.MemberService.GetById(partier.Id); if (member != null) { this.Services.MemberService.SavePassword(member, resetPasswordForm.Password); } } return(this.View("ResetPassword/Complete", this.CurrentPage)); }
internal PartyWallItem(MessageRow message) { IPartier partier = (IPartier) new MembershipHelper(UmbracoContext.Current).GetById(message.MemberId); this.Id = message.MessageId; this.PartyWallItemType = PartyWallItemType.Message; this.ThumbnailUrl = partier.ProfileImageUrl; this.IsPartyHost = partier is PartyHost; this.Name = partier.FirstName + " " + partier.LastName; this.Text = message.Text; if (message.Image.HasValue) { UmbracoHelper umbracoHelper = new UmbracoHelper(UmbracoContext.Current); this.ImageUrl = umbracoHelper.TypedMedia(message.Image.Value).Url; // TODO:S3URL } this.Timestamp = message.Timestamp.ToUniversalTime(); }
public ActionResult HandleProfileNamesForm(ProfileNamesForm profileNamesForm) { FormResponse formResponse = new FormResponse(); if (this.ModelState.IsValid) { IPartier partier = this.Members.GetCurrentPartier(); partier.FirstName = profileNamesForm.FirstName; partier.LastName = profileNamesForm.LastName; this.CheckRegistrationComplete(partier); formResponse.Success = true; } else { formResponse.Errors = this.ModelState.GetErrors(); } return(Json(formResponse, "text/plain")); }
private void SendPaymentConfirmationEmail(DonationRow donationRow) { if (donationRow.MemberId.HasValue) { Donate donate = (Donate)this.Umbraco.TypedContentSingleAtXPath("//" + Donate.Alias); IPartier partier = (IPartier)this.Members.GetById(donationRow.MemberId.Value); PartyHost partyhost = this.Members.GetPartyHost(donationRow.PartyGuid); MailMessage mailMessage = new MailMessage(); mailMessage.From = new MailAddress(donate.ServerEmailAddress); mailMessage.To.Add(new MailAddress(partier.Email)); mailMessage.Subject = donate.EmailSubject; mailMessage.IsBodyHtml = true; mailMessage.Body = donate.EmailBody .Replace("[%FIRST_NAME%]", partier.FirstName) .Replace("[%LAST_NAME%]", partier.LastName) .Replace("[%PARTY_HOST%]", partyhost.FirstName + " " + partyhost.LastName) .Replace("[%EMAIL%]", partier.Email) .Replace("[%AMOUNT%]", "£" + donationRow.Amount.ToString("F")) .Replace("[%DONATION_TIMESTAMP%]", donationRow.Timestamp.ToShortDateString()) .Replace("[%VENDOR_TX_CODE%]", donationRow.VendorTxCode.ToString()); // Fire and forget Task.Run(() => { using (SmtpClient smtpClient = new SmtpClient()) { smtpClient.Send(mailMessage); } }); } }
public override ActionResult Index(RenderModel renderModel) // have to override index instead of a Party() method, as there isn't a Party template { Party model = (Party)renderModel.Content; PartyHost partyHost; try { partyHost = (PartyHost)this.Members.GetById(int.Parse(this.HttpContext.Items["partyHostId"].ToString())); } catch { partyHost = null; } // party host not found on query string, so if (!(partyHost is PartyHost)) { if (this.Members.IsLoggedInPartier()) { return(this.Redirect(((IPartier)this.Members.GetCurrentMember()).PartyUrl)); } // fallback to login return(this.Redirect(model.SiteSettings.LoginUrl)); } // known host, so set the party host for this cms page, and build the model model.PartyHost = partyHost; model.Heading = partyHost.PartyHeading; model.Copy = partyHost.PartyCopy; // partiers - the host + all guests model.Partiers = this.Members.GetPartiers(partyHost.PartyGuid); // urls with guids model.DonateUrl = this.Umbraco.TypedContentSingleAtXPath("//" + Donate.Alias).Url + "?partyGuid=" + partyHost.PartyGuid.ToString(); model.RegisterGuestUrl = this.Umbraco.TypedContentSingleAtXPath("//" + RegisterGuest.Alias).Url + "?partyGuid=" + partyHost.PartyGuid.ToString(); // determine view to return if (model.PartyHost.Blocked) { return(View("Blocked", model)); } if (this.Members.IsLoggedInPartier()) { IPartier partier = (IPartier)this.Members.GetCurrentMember(); if (partier is PartyHost && partier.Id == partyHost.Id) { return(View("Host", model)); } else if (partier is PartyGuest && ((PartyGuest)partier).PartyGuid == partyHost.PartyGuid) { return(View("Guest", model)); } } return(View("Anonymous", model)); }