private User GetUser(object dataItem) { User user = dataItem as User; if (user != null) { return(user); } EmailListUser elu = dataItem as EmailListUser; if (elu == null) { return(null); } if ((_LastUser != null) && (_LastUser.Email == elu.Email)) { return(_LastUser); } IList <User> users = UserDataSource.LoadForEmail(elu.Email); if (users.Count > 0) { _LastUser = users[0]; } else { _LastUser = null; } return(_LastUser); }
/// <summary> /// Determines whether the given user is a member of the given list. /// </summary> /// <param name="emailListId">The list to check</param> /// <param name="email">The email address to check for list membership</param> /// <returns>True if the user is a member of the list; false otherwise.</returns> public static bool IsMember(int emailListId, string email) { string loweredEmail = email.ToLowerInvariant(); EmailListUser elu = EmailListUserDataSource.Load(emailListId, loweredEmail); return(elu != null); }
public static EmailListUser Load(Int32 emailListId, String email) { EmailListUser emailListUser = new EmailListUser(); if (emailListUser.Load(emailListId, email)) { return(emailListUser); } return(null); }
public static bool Delete(Int32 emailListId, String email) { EmailListUser emailListUser = new EmailListUser(); if (emailListUser.Load(emailListId, email)) { return(emailListUser.Delete()); } return(false); }
/// <summary> /// converts a signup into a valid subscription /// </summary> public void Activate() { //ADD USER TO LIST EmailList list = this.EmailList; EmailListUser elu = new EmailListUser(this.EmailListId, this.Email); list.Users.Add(elu); list.Users.Save(); //DELETE THIS SUBSCRIPTION REQUEST this.Delete(); }
/// <summary> /// Removes the member from the list /// </summary> /// <param name="emailListId">The list to remove the member from</param> /// <param name="email">The email address to remove from list membership</param> public static EmailListUser RemoveMember(int emailListId, string email) { string loweredEmail = email.ToLowerInvariant(); EmailListUser elu = EmailListUserDataSource.Load(emailListId, loweredEmail); if (elu != null) { elu.Delete(); } return(elu); }
protected void SaveButton_Click(object sender, EventArgs e) { if (Page.IsValid) { // DETERMINE SELECTED LISTS List <int> offList = new List <int>(); List <int> onList = new List <int>(); int index = 0; foreach (RepeaterItem item in dlEmailLists.Items) { int tempListId = AlwaysConvert.ToInt(((HiddenField)item.FindControl("EmailListId")).Value); CheckBox selected = (CheckBox)item.FindControl("Selected"); if ((selected != null) && (selected.Checked)) { onList.Add(tempListId); } else { offList.Add(tempListId); } index++; } string email = AbleContext.Current.User.Email; // PROCESS LISTS THAT SHOULD NOT BE SUBSCRIBED foreach (int emailListId in offList) { EmailListUser elu = EmailListUserDataSource.Load(emailListId, email); if (elu != null) { elu.Delete(); } } // PROCESS LISTS THAT SHOULD BE SUBSCRIBED foreach (int emailListId in onList) { EmailListUser elu = EmailListUserDataSource.Load(emailListId, email); if (elu == null) { EmailList list = EmailListDataSource.Load(emailListId); if (list != null) { list.ProcessSignupRequest(email); } } } // DISPLAY RESULT ConfirmationMsg.Visible = true; } }
protected void UpdateButton_Click(object sender, EventArgs e) { List <int> offList = new List <int>(); List <int> onList = new List <int>(); //LOOP THROUGH SIGNUP LIST int index = 0; foreach (DataListItem item in dlEmailLists.Items) { int tempListId = (int)dlEmailLists.DataKeys[index]; CheckBox selected = (CheckBox)item.FindControl("Selected"); if ((selected != null) && (selected.Checked)) { onList.Add(tempListId); } else { offList.Add(tempListId); } index++; } string email = AbleContext.Current.User.Email; //PROCESS LISTS THAT SHOULD NOT BE SUBSCRIBED foreach (int emailListId in offList) { EmailListUser elu = EmailListUserDataSource.Load(emailListId, email); if (elu != null) { elu.Delete(); } } //PROCESS LISTS THAT SHOULD BE SUBSCRIBED IDatabaseSessionManager database = AbleContext.Current.Database; database.BeginTransaction(); foreach (int emailListId in onList) { EmailListUser elu = EmailListUserDataSource.Load(emailListId, email); if (elu == null) { EmailList list = EmailListDataSource.Load(emailListId); if (list != null) { list.ProcessSignupRequest(email); } } } //DISPLAY CONFIRMATION UpdatedMessage.Visible = true; database.CommitTransaction(); }
private void UpdateEmailLists() { // DETERMINE SELECTED LISTS List <int> offList = new List <int>(); List <int> onList = new List <int>(); int index = 0; foreach (DataListItem item in dlEmailLists.Items) { int tempListId = (int)dlEmailLists.DataKeys[index]; CheckBox selected = (CheckBox)item.FindControl("Selected"); if ((selected != null) && (selected.Checked)) { onList.Add(tempListId); } else { offList.Add(tempListId); } index++; } string email = AbleContext.Current.User.Email; // PROCESS LISTS THAT SHOULD NOT BE SUBSCRIBED foreach (int emailListId in offList) { EmailListUser elu = EmailListUserDataSource.Load(emailListId, email); if (elu != null) { elu.Delete(); } } // PROCESS LISTS THAT SHOULD BE SUBSCRIBED IDatabaseSessionManager database = AbleContext.Current.Database; database.BeginTransaction(); foreach (int emailListId in onList) { EmailListUser elu = EmailListUserDataSource.Load(emailListId, email); if (elu == null) { EmailList list = EmailListDataSource.Load(emailListId); if (list != null) { list.ProcessSignupRequest(email); } } } database.CommitTransaction(); }
/// <summary> /// Save this User object to database /// </summary> /// <returns><b>SaveResult</b> enumeration that represents the result of the save operation.</returns> public virtual SaveResult Save() { //IF USERNAME IS GUID, THIS IS AN ANONYMOUS USER this.IsAnonymous = (CommerceBuilder.Utility.AlwaysConvert.ToGuid(this.UserName) != Guid.Empty); //CHECK WHETHER WE ARE SAVING AN EXISTING USER if (this.UserId > 0) { //GET THE EMAIL VALUE STORED IN DATABASE string existingEmail = UserDataSource.GetEmail(this.UserId).ToLowerInvariant(); string newEmail = this.Email.ToLowerInvariant(); //SEE WHETHER THE NEW AND EXISTING EMAILS MATCH if (newEmail != existingEmail) { //EMAILS ARE DIFFERENT, IS THE NEW EMAIL VALID? bool newAddressValid = ValidationHelper.IsValidEmail(newEmail); //GET ALL EMAIL LISTS ASSOCIATED WITH EXISTING ADDRESS EmailListCollection emailLists = EmailListDataSource.LoadForEmail(existingEmail); //LOOP THE LISTS foreach (EmailList list in emailLists) { //REMOVE EXISTING ADDRESS FROM LISTS EmailListUser elu = list.RemoveMember(existingEmail); //IF NEW ADDRESS WAS VALID RE-ADD TO SAME LIST if (newAddressValid && (elu != null)) { list.AddMember(newEmail, elu.SignupDate, elu.SignupIP); } } //if the user is registered and the new email address is also valid if (newAddressValid && !this.IsAnonymous) { OrderCollection orders = OrderDataSource.LoadForUser(this.UserId); foreach (Order order in orders) { if (order.BillToEmail.ToLowerInvariant() == existingEmail) { order.BillToEmail = newEmail; order.Save(); } } } } // ENSURE THE AFFILIATE ASSOCIATION IS VALID this.ValidateAffiliate(); } return(this.BaseSave());; }
public static EmailListUserCollection LoadForEmailList(Int32 emailListId, int maximumRows, int startRowIndex, string sortExpression) { //CREATE THE DYNAMIC SQL TO LOAD OBJECT StringBuilder selectQuery = new StringBuilder(); selectQuery.Append("SELECT"); if (maximumRows > 0) { selectQuery.Append(" TOP " + (startRowIndex + maximumRows).ToString()); } selectQuery.Append(" " + EmailListUser.GetColumnNames(string.Empty)); selectQuery.Append(" FROM ac_EmailListUsers"); selectQuery.Append(" WHERE EmailListId = @emailListId"); if (!string.IsNullOrEmpty(sortExpression)) { selectQuery.Append(" ORDER BY " + sortExpression); } Database database = Token.Instance.Database; DbCommand selectCommand = database.GetSqlStringCommand(selectQuery.ToString()); database.AddInParameter(selectCommand, "@emailListId", System.Data.DbType.Int32, emailListId); //EXECUTE THE COMMAND EmailListUserCollection results = new EmailListUserCollection(); int thisIndex = 0; int rowCount = 0; using (IDataReader dr = database.ExecuteReader(selectCommand)) { while (dr.Read() && ((maximumRows < 1) || (rowCount < maximumRows))) { if (thisIndex >= startRowIndex) { EmailListUser emailListUser = new EmailListUser(); EmailListUser.LoadDataReader(emailListUser, dr); results.Add(emailListUser); rowCount++; } thisIndex++; } dr.Close(); } return(results); }
/// <summary> /// Sends the email messages geneated for this email template /// </summary> private void SendEmails(MailMergeRecipientCollection recipients) { if (recipients != null && recipients.Count > 0) { foreach (MailMergeRecipient recipient in recipients) { MailMessage message = null; try { try { message = this.GenerateMessage(recipient); } catch { // SKIP THIS continue; } if (message != null) { EmailClient.Send(message); //UPDATE LAST SEND DATE FOR EmailListUser if (recipient.Parameters.ContainsKey("emailListUser")) { EmailListUser elu = (EmailListUser)recipient.Parameters["emailListUser"]; elu.LastSendDate = LocaleHelper.LocalNow; elu.Save(); } } } catch (Exception ex) { Logger.Error("Error sending email with subject '" + message.Subject + "'.", ex); } } } }
public static SaveResult Insert(EmailListUser emailListUser) { return(emailListUser.Save()); }
public static SaveResult Update(EmailListUser emailListUser) { return(emailListUser.Save()); }
public static bool Delete(EmailListUser emailListUser) { return(emailListUser.Delete()); }
protected void Page_Load(object sender, EventArgs e) { string action = Request.QueryString["action"]; if (!string.IsNullOrEmpty(action)) { //DETERMINE THE ACTION action = action.ToLowerInvariant(); if (action == "remove") { //delete user from the list int emailListId = AlwaysConvert.ToInt(Request.QueryString["list"]); string email = Request.QueryString["email"]; string key = Request.QueryString["key"]; AbleContext.Current.Database.BeginTransaction(); EmailList list = EmailListDataSource.Load(emailListId); if ((list != null) && (email != null)) { string eluKey = string.Empty; EmailListUser elu = EmailListUserDataSource.Load(emailListId, email); if (elu != null) { eluKey = elu.SignupDate.ToString("MMddyyhhmmss"); } if (key == eluKey) { list.RemoveMember(email); phMessage.Controls.Add(new LiteralControl(string.Format(this.DeletedMessage, list.Name))); } } AbleContext.Current.Database.CommitTransaction(); } else if (action == "confirm") { //ADD USER TO LIST int emailListId = AlwaysConvert.ToInt(Request.QueryString["list"]); string email = Request.QueryString["email"]; string key = Request.QueryString["key"]; AbleContext.Current.Database.BeginTransaction(); EmailList list = EmailListDataSource.Load(emailListId); if ((list == null) || !ValidationHelper.IsValidEmail(email)) { Response.Redirect(AbleCommerce.Code.NavigationHelper.GetHomeUrl()); } EmailListSignup signup = EmailListSignupDataSource.Load(emailListId, email); if (signup != null) { if (key == signup.SignupKey) { signup.Activate(); //confirm user subscription phMessage.Controls.Add(new LiteralControl(string.Format(this.SubscribedMessage, list.Name))); } } else if (EmailListUserDataSource.Load(emailListId, email) != null) { //CHECK IF USER HAS ALREADY ACTIVATED //confirm user subscription phMessage.Controls.Add(new LiteralControl(string.Format(this.SubscribedMessage, list.Name))); } AbleContext.Current.Database.CommitTransaction(); } else if (action == "unsubrr") { int userId = AlwaysConvert.ToInt(Request.QueryString["uid"]); string email = Request.QueryString["email"]; if (string.IsNullOrEmpty(email)) { return; } CommerceBuilder.Users.User user = CommerceBuilder.Users.UserDataSource.Load(userId); if (user != null && email.ToLowerInvariant() == user.Email.ToLowerInvariant()) { user.Settings.OptOutReviewReminders = true; user.Save(); string message = "You have successfully unsubscribed from all future product review invitations. If you are a registered user, you may join again by logging into your account and updating your profile."; phMessage.Controls.Add(new LiteralControl(message)); } } } //IF RESPONSE IS EMPTY, REQUEST IS INVALID if (phMessage.Controls.Count == 0) { phMessage.Controls.Add(new LiteralControl(this.InvalidMessage)); } }