Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        /// <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);
        }
Exemplo n.º 5
0
        /// <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();
        }
Exemplo n.º 6
0
        /// <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();
        }
Exemplo n.º 10
0
        /// <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);
        }
Exemplo n.º 12
0
        /// <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());
 }
Exemplo n.º 16
0
        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));
            }
        }