protected void cmdUpdateSelected_Click(object sender, EventArgs e)
        {
            var item          = default(DataGridItem);
            var objEventEmail = new EventEmails(PortalId, ModuleId, LocalResourceFile,
                                                ((PageBase)Page).PageCulture.Name);

            try
            {
                switch (rbModerate.SelectedValue)
                {
                case "Events":
                    var objEventEmailInfo_1 = new EventEmailInfo();
                    objEventEmailInfo_1.TxtEmailSubject = txtEmailSubject.Text;
                    objEventEmailInfo_1.TxtEmailBody    = txtEmailMessage.Text;
                    objEventEmailInfo_1.TxtEmailFrom    = txtEmailFrom.Text;
                    var objCal = new EventInfo();
                    var objEventRecurMaster = default(EventRecurMasterInfo);
                    foreach (DataGridItem tempLoopVar_item in grdEvents.Items)
                    {
                        item = tempLoopVar_item;
                        switch (((RadioButtonList)item.FindControl("rbEventAction")).SelectedValue)
                        {
                        case "Approve":
                            objCal = _objCtlEvent.EventsGet(
                                Convert.ToInt32(grdEvents.DataKeys[item.ItemIndex]),
                                ModuleId);
                            objCal.Approved = true;
                            var newEventEmailSent = objCal.NewEventEmailSent;
                            objCal.NewEventEmailSent = true;
                            _objCtlEvent.EventsSave(objCal, true, TabId, false);
                            // Only send event emails when event approved for first time
                            if (!newEventEmailSent)
                            {
                                objCal.RRULE = "";
                                SendNewEventEmails(objCal);
                                CreateNewEventJournal(objCal);
                            }
                            // Email Requesting/Moderated User
                            if (chkEmail.Checked)
                            {
                                objCal.RRULE = "";
                                objEventEmailInfo_1.UserIDs.Clear();
                                objEventEmailInfo_1.UserIDs.Add(objCal.OwnerID);
                                objEventEmail.SendEmails(objEventEmailInfo_1, objCal);
                            }
                            break;

                        case "Deny":
                            objCal = _objCtlEvent.EventsGet(
                                Convert.ToInt32(grdEvents.DataKeys[item.ItemIndex]),
                                ModuleId);
                            //Don't Allow Delete on Enrolled Event - Only Cancel
                            objEventRecurMaster =
                                _objCtlEventRecurMaster.EventsRecurMasterGet(
                                    objCal.RecurMasterID, objCal.ModuleID);
                            if (objEventRecurMaster.RRULE != "")
                            {
                                objCal.Cancelled     = true;
                                objCal.LastUpdatedID = UserId;
                                objCal = _objCtlEvent.EventsSave(objCal, false, TabId, true);
                            }
                            else
                            {
                                _objCtlEventRecurMaster.EventsRecurMasterDelete(
                                    objCal.RecurMasterID, objCal.ModuleID);
                            }
                            // Email Requesting/Moderated User
                            if (chkEmail.Checked)
                            {
                                objCal.RRULE = "";
                                objEventEmailInfo_1.UserIDs.Clear();
                                objEventEmailInfo_1.UserIDs.Add(objCal.OwnerID);
                                objEventEmail.SendEmails(objEventEmailInfo_1, objCal);
                            }
                            break;
                        }
                    }
                    foreach (DataGridItem tempLoopVar_item in grdRecurEvents.Items)
                    {
                        item = tempLoopVar_item;
                        switch (((RadioButtonList)item.FindControl("rbEventRecurAction")).SelectedValue)
                        {
                        case "Approve":
                            objEventRecurMaster =
                                _objCtlEventRecurMaster.EventsRecurMasterGet(
                                    Convert.ToInt32(grdRecurEvents.DataKeys[item.ItemIndex]),
                                    ModuleId);
                            objEventRecurMaster.Approved = true;
                            _objCtlEventRecurMaster.EventsRecurMasterSave(
                                objEventRecurMaster, TabId, false);
                            var lstEvents = default(ArrayList);
                            lstEvents = _objCtlEvent.EventsGetRecurrences(
                                objEventRecurMaster.RecurMasterID,
                                objEventRecurMaster.ModuleID);
                            var blEmailSent = false;
                            foreach (EventInfo tempLoopVar_objCal in lstEvents)
                            {
                                objCal = tempLoopVar_objCal;
                                if (!objCal.Cancelled)
                                {
                                    objCal.Approved = true;
                                    var newEventEmailSent = objCal.NewEventEmailSent;
                                    objCal.NewEventEmailSent = true;
                                    _objCtlEvent.EventsSave(objCal, true, TabId, false);
                                    // Only send event emails when event approved for first time
                                    if (!newEventEmailSent && !blEmailSent)
                                    {
                                        objCal.RRULE = objEventRecurMaster.RRULE;
                                        SendNewEventEmails(objCal);
                                        CreateNewEventJournal(objCal);
                                        blEmailSent = true;
                                    }
                                }
                            }
                            // Email Requesting/Moderated User
                            if (chkEmail.Checked)
                            {
                                objCal.RRULE = objEventRecurMaster.RRULE;
                                objEventEmailInfo_1.UserIDs.Clear();
                                objEventEmailInfo_1.UserIDs.Add(objEventRecurMaster.CreatedByID);
                                objEventEmail.SendEmails(objEventEmailInfo_1, objCal);
                            }
                            break;

                        case "Deny":
                            objEventRecurMaster =
                                _objCtlEventRecurMaster.EventsRecurMasterGet(
                                    Convert.ToInt32(grdRecurEvents.DataKeys[item.ItemIndex]),
                                    ModuleId);
                            //Don't Allow Delete on Enrolled Event - Only Cancel
                            _objCtlEventRecurMaster.EventsRecurMasterDelete(
                                Convert.ToInt32(grdRecurEvents.DataKeys[item.ItemIndex]),
                                ModuleId);
                            // Email Requesting/Moderated User
                            if (chkEmail.Checked)
                            {
                                objCal.RRULE = objEventRecurMaster.RRULE;
                                objEventEmailInfo_1.UserIDs.Clear();
                                objEventEmailInfo_1.UserIDs.Add(objEventRecurMaster.CreatedByID);
                                objEventEmail.SendEmails(objEventEmailInfo_1, objCal);
                            }
                            break;
                        }
                    }
                    break;

                case "Enrollment":
                    // Not moderated
                    var objEnroll = default(EventSignupsInfo);
                    foreach (DataGridItem tempLoopVar_item in grdEnrollment.Items)
                    {
                        item = tempLoopVar_item;
                        if (((RadioButtonList)item.FindControl("rbEnrollAction")).SelectedValue != "")
                        {
                            objEnroll = _objCtlEventSignups.EventsSignupsGet(
                                Convert.ToInt32(grdEnrollment.DataKeys[item.ItemIndex]),
                                ModuleId, false);
                            var objCtlEvent       = new EventController();
                            var objEvent          = objCtlEvent.EventsGet(objEnroll.EventID, objEnroll.ModuleID);
                            var objEventEmailInfo = new EventEmailInfo();
                            objEventEmailInfo.TxtEmailSubject = txtEmailSubject.Text;
                            objEventEmailInfo.TxtEmailFrom    = txtEmailFrom.Text;
                            if (chkEmail.Checked)
                            {
                                if (objEnroll.UserID > -1)
                                {
                                    objEventEmailInfo.UserIDs.Add(objEnroll.UserID);
                                }
                                else
                                {
                                    objEventEmailInfo.UserEmails.Add(objEnroll.AnonEmail);
                                    objEventEmailInfo.UserLocales.Add(objEnroll.AnonCulture);
                                    objEventEmailInfo.UserTimeZoneIds.Add(objEnroll.AnonTimeZoneId);
                                }
                            }
                            switch (((RadioButtonList)item.FindControl("rbEnrollAction")).SelectedValue)
                            {
                            case "Approve":
                                objEnroll.Approved = true;
                                CreateEnrollment(objEnroll, objEvent);

                                // Email Requesting/Moderated User
                                if (Settings.SendEnrollMessageApproved)
                                {
                                    objEventEmailInfo.UserIDs.Add(objEvent.OwnerID);
                                }
                                objEventEmailInfo.TxtEmailBody =
                                    txtEmailMessage.Text +
                                    Settings.Templates.txtEnrollMessageApproved;
                                objEventEmail.SendEmails(objEventEmailInfo, objEvent, objEnroll);
                                break;

                            case "Deny":
                                DeleteEnrollment(
                                    Convert.ToInt32(grdEnrollment.DataKeys[item.ItemIndex]),
                                    objEvent.ModuleID, objEvent.EventID);

                                // Email Requesting/Moderated User
                                if (Settings.SendEnrollMessageDenied)
                                {
                                    objEventEmailInfo.UserIDs.Add(objEvent.OwnerID);
                                }
                                objEventEmailInfo.TxtEmailBody =
                                    txtEmailMessage.Text + Settings.Templates.txtEnrollMessageDenied;
                                objEventEmail.SendEmails(objEventEmailInfo, objEvent, objEnroll);
                                break;
                            }
                        }
                    }
                    break;
                }
            }
            catch (Exception exc) //Module failed to load
            {
                Exceptions.ProcessModuleLoadException(this, exc);
            }
            BindData();
        }