private ActionResult DefaultEmailNewsletterView() { UserProfile profile = new UserProfile(); EmailNewsletter model = new EmailNewsletter(); if (base.User.Identity.IsAuthenticated) { profile = this.GetModel(); if (profile != null) { model.IsLoggedIn = true; model.EmailAddress = profile.CustomerDetails.EmailAddress; } } string identifier = string.Format(this._settings.CraftListCategory, this.PublicationId); IList<Coats.Crafts.Models.Keyword> keywordsList = this._keywordrepository.GetKeywordsList(identifier); Location location = null; if (!model.IsLoggedIn) { try { location = new Location(base.HttpContext.Request.QueryString["fh_params"].Split(new char[] { '&' }).SingleOrDefault<string>(f => f.StartsWith("fh_location=")).Replace("fh_location=", "")); } catch (Exception) { location = null; } } foreach (Coats.Crafts.Models.Keyword keyword in keywordsList) { Func<SelectListItem, bool> predicate = null; SelectListItem sli = new SelectListItem { Text = keyword.Description, Value = keyword.Id, Selected = true }; if (model.IsLoggedIn) { if (profile != null) { if (predicate == null) { predicate = c => c.Value == sli.Value; } SelectListItem item = profile.CraftTypeList.SingleOrDefault<SelectListItem>(predicate); sli.Selected = (item != null) && item.Selected; } } else if (location != null) { try { List list2 = location.getCriteria("techniques"); if (list2.size() > 0) { sli.Selected = list2.ToString().Contains(string.Format("techniques{0}{1}", FacetedContentHelper.NestedLevelDelimiter, sli.Text.ToLower().Replace(" ", "_"))); } } catch (Exception) { } } model.Techniques.Add(sli); model.Techniques.Count<SelectListItem>(t => t.Selected); } return base.View("~/Views/Partials/EmailNewsletter.cshtml", model); }
public ActionResult EmailNewsletterSignup(EmailNewsletter emailNewsLetter) { Registration model = new Registration(); LoginForm form = new LoginForm(); RegistrationForm form2 = new RegistrationForm(); model.RegistrationForm = form2; model.LoginForm = form; this.GetModelData(model.RegistrationForm); model.RegistrationForm.CraftTypeList = emailNewsLetter.Techniques; SelectListItem item = model.RegistrationForm.EmailNewsletter.SingleOrDefault<SelectListItem>(e => e.Text == "Yes"); if (item != null) { item.Selected = true; } SelectListItem item2 = model.RegistrationForm.EmailNewsletter.SingleOrDefault<SelectListItem>(e => e.Text == "No"); if (item2 != null) { item2.Selected = false; } model.RegistrationForm.CustomerDetails.EmailAddress = emailNewsLetter.EmailAddress; return base.View("Index", model); }
public ActionResult EmailNewsletterSettings(EmailNewsletter emailNewsLetter, string EmailNewsletterSubmit, string redirectUrl) { bool flag = base.Request.IsAjaxRequest(); bool flag2 = false; bool flag3 = false; string str = string.Empty; string resource = Helper.GetResource("ProfileNotLoggedIn"); this.Logger.Debug("POST request for EmailNewsletterSettings triggered"); this.Logger.DebugFormat("emailNewsLetter {0} & EmailNewsletterSubmit {1}", new object[] { emailNewsLetter == null, EmailNewsletterSubmit }); if (base.User.Identity.IsAuthenticated && !string.IsNullOrEmpty(EmailNewsletterSubmit)) { Action<SelectListItem> action = null; CoatsUserProfile coatsUserProfile = CoatsUserProfile.GetProfile(base.HttpContext.User.Identity.Name); this.Logger.DebugFormat("coatsUserProfile? {0}", new object[] { coatsUserProfile == null }); if (coatsUserProfile != null) { if (emailNewsLetter != null) { if (action == null) { action = delegate (SelectListItem t) { Func<KeyValuePair<string, string>, bool> predicate = null; if (!t.Selected) { if (predicate == null) { predicate = k => k.Key == t.Value; } foreach (KeyValuePair<string, string> pair in coatsUserProfile.Keywords.Where<KeyValuePair<string, string>>(predicate).ToList<KeyValuePair<string, string>>()) { this.Logger.DebugFormat("Removing {0} {1}", new object[] { pair.Key, pair.Value }); coatsUserProfile.Keywords.Remove(pair.Key); } } if (!(!t.Selected || coatsUserProfile.Keywords.ContainsKey(t.Value))) { this.Logger.DebugFormat("Adding {0}", new object[] { t.Value }); coatsUserProfile.Keywords.Add(t.Value, "tcm"); } }; } emailNewsLetter.Techniques.ForEach(action); } coatsUserProfile.Save(); } flag2 = true; resource = Helper.GetResource("PreferencesUpdated"); redirectUrl = !string.IsNullOrEmpty(redirectUrl) ? redirectUrl : this._settings.EmailNewsLetterConfirmation; this.Logger.DebugFormat("Redirecting to {0}", new object[] { redirectUrl }); if (!flag) { return this.Redirect(redirectUrl); } } if (base.Request.IsAjaxRequest()) { return base.Json(new { success = flag2, allowRedirect = flag3, redirect = str, message = resource }); } return this.DefaultEmailNewsletterView(); }
public ActionResult Index(IComponentPresentation componentPresentation, EmailNewsletter emailNewsletter, string ReturnUrl = "", string stepoverride = "register") { if (!base.User.Identity.IsAuthenticated) { stepoverride = "register"; } ((dynamic) base.ViewBag).Stage = stepoverride; try { ((dynamic) base.ViewBag).Title = componentPresentation.Component.Fields["title"].Value; } catch (Exception) { } Registration model = new Registration { RegistrationForm = new RegistrationForm(), LoginForm = new LoginForm() }; NameValueCollection @params = base.Request.Params; if (!string.IsNullOrEmpty(@params["action"])) { if (@params["action"] == "addtoshoppinglist") { ((dynamic) base.ViewBag).Title = Helper.GetResource("SignupShoppingList"); } if (@params["action"] == "download") { ((dynamic) base.ViewBag).Title = Helper.GetResource("SignupDownload"); } } if (!string.IsNullOrEmpty(ReturnUrl)) { model.LoginForm.ReturnUrl = ReturnUrl + "?" + base.Request.QueryString.ToString().Replace("iframe=true", ""); model.RegistrationForm.returnUrl = ReturnUrl + "?" + base.Request.QueryString.ToString().Replace("iframe=true", ""); } else if (!string.IsNullOrWhiteSpace(base.Request.QueryString["source"])) { model.RegistrationForm.returnUrl = model.LoginForm.ReturnUrl = base.Request.QueryString["source"]; } else { model.LoginForm.ReturnUrl = base.Url.Content(WebConfiguration.Current.MyProfile); model.RegistrationForm.returnUrl = base.Url.Content(WebConfiguration.Current.MyProfile); } this.GetModelData(model.RegistrationForm); if ((emailNewsletter.Techniques != null) && (emailNewsletter.Techniques.Count > 0)) { model.RegistrationForm.CraftTypeList = emailNewsletter.Techniques; } if (!string.IsNullOrEmpty(emailNewsletter.EmailAddress)) { model.RegistrationForm.CustomerDetails.EmailAddress = emailNewsletter.EmailAddress; } SelectListItem item = model.RegistrationForm.EmailNewsletter.SingleOrDefault<SelectListItem>(e => e.Text == "No"); if (item != null) { item.Selected = true; } return base.View(model); }