예제 #1
0
        public void grdEnrollment_ItemCommand(object sender, DataGridCommandEventArgs e)
        {
            var objEnroll = default(EventSignupsInfo);

            objEnroll = _objCtlEventSignups.EventsSignupsGet(
                Convert.ToInt32(grdEnrollment.DataKeys[e.Item.ItemIndex]), ModuleId, false);

            try
            {
                switch (e.CommandName)
                {
                case "Select":
                    try
                    {
                        var itemID             = objEnroll.EventID;
                        var objEventInfoHelper =
                            new EventInfoHelper(ModuleId, TabId, PortalId, Settings);
                        Response.Redirect(
                            objEventInfoHelper.AddSkinContainerControls(
                                EditUrl("ItemID", itemID.ToString(), "Edit"), "?"));
                    }
                    // ReSharper disable once EmptyGeneralCatchClause
                    catch (Exception)
                    { }
                    break;

                case "User":
                    var objCtlEvent = new EventController();
                    var objEvent    = objCtlEvent.EventsGet(objEnroll.EventID, objEnroll.ModuleID);

                    var objEventEmailInfo = new EventEmailInfo();
                    var objEventEmail     = new EventEmails(PortalId, ModuleId, LocalResourceFile,
                                                            ((PageBase)Page).PageCulture.Name);
                    objEventEmailInfo.TxtEmailSubject = txtEmailSubject.Text;
                    objEventEmailInfo.TxtEmailBody    = txtEmailMessage.Text;
                    objEventEmailInfo.TxtEmailFrom    = txtEmailFrom.Text;
                    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);
                    }
                    objEventEmail.SendEmails(objEventEmailInfo, objEvent, objEnroll);
                    break;
                }
            }
            catch (Exception exc) //Module failed to load
            {
                Exceptions.ProcessModuleLoadException(this, exc);
            }
            BindData();
        }
        protected void lnkSelectedDelete_Click(object sender, EventArgs e)
        {
            var item               = default(DataGridItem);
            var objEnroll          = default(EventSignupsInfo);
            var objCtlEventSignups = new EventSignupsController();
            var objEvent           = new EventInfo();
            var objCtlEvent        = new EventController();
            var eventID            = 0;

            foreach (DataGridItem tempLoopVar_item in grdEnrollment.Items)
            {
                item = tempLoopVar_item;
                if (((CheckBox)item.FindControl("chkSelect")).Checked)
                {
                    objEnroll = objCtlEventSignups.EventsSignupsGet(
                        Convert.ToInt32(grdEnrollment.DataKeys[item.ItemIndex]), ModuleId, false);
                    if (eventID != objEnroll.EventID)
                    {
                        objEvent = objCtlEvent.EventsGet(objEnroll.EventID, ModuleId);
                    }
                    eventID = objEnroll.EventID;

                    // Delete Selected Enrollee
                    DeleteEnrollment(Convert.ToInt32(grdEnrollment.DataKeys[item.ItemIndex]),
                                     objEvent.ModuleID, objEvent.EventID);

                    // Mail users
                    if (Settings.SendEnrollMessageDeleted)
                    {
                        var objEventEmailInfo = new EventEmailInfo();
                        var objEventEmail     = new EventEmails(PortalId, ModuleId, LocalResourceFile,
                                                                ((PageBase)Page).PageCulture.Name);
                        objEventEmailInfo.TxtEmailSubject = Settings.Templates.txtEnrollMessageSubject;
                        objEventEmailInfo.TxtEmailBody    = Settings.Templates.txtEnrollMessageDeleted;
                        objEventEmailInfo.TxtEmailFrom    = Settings.StandardEmail;
                        objEventEmailInfo.UserEmails.Add(PortalSettings.UserInfo.Email);
                        objEventEmailInfo.UserLocales.Add(PortalSettings.UserInfo.Profile.PreferredLocale);
                        objEventEmailInfo.UserTimeZoneIds.Add(PortalSettings.UserInfo.Profile.PreferredTimeZone
                                                              .Id);
                        objEventEmailInfo.UserIDs.Add(objEvent.OwnerID);
                        objEventEmail.SendEmails(objEventEmailInfo, objEvent, objEnroll);
                    }
                }
            }

            BindData();
        }
예제 #3
0
        protected void cmdUpdateSelected_Click(object sender, EventArgs e)
        {
            var item          = default(DataGridItem);
            var objEventEmail = new EventEmails(this.PortalId, this.ModuleId, this.LocalResourceFile,
                                                ((PageBase)this.Page).PageCulture.Name);

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

                        case "Deny":
                            objCal = this._objCtlEvent.EventsGet(
                                Convert.ToInt32(this.grdEvents.DataKeys[item.ItemIndex]),
                                this.ModuleId);
                            //Don't Allow Delete on Enrolled Event - Only Cancel
                            objEventRecurMaster =
                                this._objCtlEventRecurMaster.EventsRecurMasterGet(
                                    objCal.RecurMasterID, objCal.ModuleID);
                            if (objEventRecurMaster.RRULE != "")
                            {
                                objCal.Cancelled     = true;
                                objCal.LastUpdatedID = this.UserId;
                                objCal = this._objCtlEvent.EventsSave(objCal, false, this.TabId, true);
                            }
                            else
                            {
                                this._objCtlEventRecurMaster.EventsRecurMasterDelete(
                                    objCal.RecurMasterID, objCal.ModuleID);
                            }
                            // Email Requesting/Moderated User
                            if (this.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 this.grdRecurEvents.Items)
                    {
                        item = tempLoopVar_item;
                        switch (((RadioButtonList)item.FindControl("rbEventRecurAction")).SelectedValue)
                        {
                        case "Approve":
                            objEventRecurMaster =
                                this._objCtlEventRecurMaster.EventsRecurMasterGet(
                                    Convert.ToInt32(this.grdRecurEvents.DataKeys[item.ItemIndex]),
                                    this.ModuleId);
                            objEventRecurMaster.Approved = true;
                            this._objCtlEventRecurMaster.EventsRecurMasterSave(
                                objEventRecurMaster, this.TabId, false);
                            var lstEvents = default(ArrayList);
                            lstEvents = this._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;
                                    this._objCtlEvent.EventsSave(objCal, true, this.TabId, false);
                                    // Only send event emails when event approved for first time
                                    if (!newEventEmailSent && !blEmailSent)
                                    {
                                        objCal.RRULE = objEventRecurMaster.RRULE;
                                        this.SendNewEventEmails(objCal);
                                        this.CreateNewEventJournal(objCal);
                                        blEmailSent = true;
                                    }
                                }
                            }
                            // Email Requesting/Moderated User
                            if (this.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 =
                                this._objCtlEventRecurMaster.EventsRecurMasterGet(
                                    Convert.ToInt32(this.grdRecurEvents.DataKeys[item.ItemIndex]),
                                    this.ModuleId);
                            //Don't Allow Delete on Enrolled Event - Only Cancel
                            this._objCtlEventRecurMaster.EventsRecurMasterDelete(
                                Convert.ToInt32(this.grdRecurEvents.DataKeys[item.ItemIndex]),
                                this.ModuleId);
                            // Email Requesting/Moderated User
                            if (this.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 this.grdEnrollment.Items)
                    {
                        item = tempLoopVar_item;
                        if (((RadioButtonList)item.FindControl("rbEnrollAction")).SelectedValue != "")
                        {
                            objEnroll = this._objCtlEventSignups.EventsSignupsGet(
                                Convert.ToInt32(this.grdEnrollment.DataKeys[item.ItemIndex]),
                                this.ModuleId, false);
                            var objCtlEvent       = new EventController();
                            var objEvent          = objCtlEvent.EventsGet(objEnroll.EventID, objEnroll.ModuleID);
                            var objEventEmailInfo = new EventEmailInfo();
                            objEventEmailInfo.TxtEmailSubject = this.txtEmailSubject.Text;
                            objEventEmailInfo.TxtEmailFrom    = this.txtEmailFrom.Text;
                            if (this.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;
                                this.CreateEnrollment(objEnroll, objEvent);

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

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

                                // Email Requesting/Moderated User
                                if (this.Settings.SendEnrollMessageDenied)
                                {
                                    objEventEmailInfo.UserIDs.Add(objEvent.OwnerID);
                                }
                                objEventEmailInfo.TxtEmailBody =
                                    this.txtEmailMessage.Text + this.Settings.Templates.txtEnrollMessageDenied;
                                objEventEmail.SendEmails(objEventEmailInfo, objEvent, objEnroll);
                                break;
                            }
                        }
                    }
                    break;
                }
            }
            catch (Exception exc) //Module failed to load
            {
                Exceptions.ProcessModuleLoadException(this, exc);
            }
            this.BindData();
        }
예제 #4
0
        private void Page_Load(object sender, EventArgs e)
        {
            try
            {
                double dblTotal    = 0;
                var    strCurrency = "";

                if (!ReferenceEquals(this.Request.Params["ItemID"], null))
                {
                    this._itemID = int.Parse(this.Request.Params["ItemID"]);
                }
                if (!ReferenceEquals(this.Request.Params["AnonEmail"], null))
                {
                    this._anonEmail = HttpUtility.UrlDecode(this.Request.Params["AnonEmail"]);
                }
                if (!ReferenceEquals(this.Request.Params["AnonName"], null))
                {
                    this._anonName = HttpUtility.UrlDecode(this.Request.Params["AnonName"]);
                }
                if (!ReferenceEquals(this.Request.Params["AnonPhone"], null))
                {
                    this._anonTelephone = HttpUtility.UrlDecode(this.Request.Params["AnonPhone"]);
                    if (this._anonTelephone == "0")
                    {
                        this._anonTelephone = "";
                    }
                }

                // Set the selected theme
                this.SetTheme(this.pnlEventsModulePayPal);

                this.divMessage.Attributes.Add("style", "display:none;");

                if (!this.Page.IsPostBack)
                {
                    if (this._itemID != -1)
                    {
                        if (!ReferenceEquals(this.Request.Params["NoEnrol"], null))
                        {
                            this._noEnrol = int.Parse(this.Request.Params["NoEnrol"]);
                        }

                        var objEvent = default(EventInfo);
                        objEvent = this._objCtlEvent.EventsGet(this._itemID, this.ModuleId);

                        //  Compute Dates/Times (for recurring)
                        var startdate = objEvent.EventTimeBegin;
                        this.SelectedDate = startdate.Date;
                        var d = default(DateTime);
                        d = startdate.Date.AddMinutes(objEvent.EventTimeBegin.TimeOfDay.TotalMinutes);
                        this.lblStartDate.Text   = d.ToLongDateString() + " " + d.ToShortTimeString();
                        this.lblEventName.Text   = objEvent.EventName;
                        this.lblDescription.Text = this.Server.HtmlDecode(objEvent.EventDesc);
                        this.lblFee.Text         = string.Format("{0:#0.00}", objEvent.EnrollFee);
                        this.lblNoEnrolees.Text  = Convert.ToString(this._noEnrol);
                        this.lblPurchase.Text    = Localization.GetString("lblPurchase", this.LocalResourceFile);
                        this.lblPurchase.Visible = true;
                    }
                    else if (!ReferenceEquals(this.Request.Params["signupid"], null))
                    {
                        // Get EventSignup
                        this._objEventSignups = new EventSignupsInfo();
                        var signupID = Convert.ToInt32(this.Request.Params["signupid"]);
                        this._objEventSignups =
                            this._objCtlEventSignups.EventsSignupsGet(signupID, this.ModuleId, false);
                        this.lblStartDate.Text = this._objEventSignups.EventTimeBegin.ToLongDateString() + " " +
                                                 this._objEventSignups.EventTimeBegin.ToShortTimeString();
                        this.lblEventName.Text = this._objEventSignups.EventName;
                        // Get Related Event
                        var objEvent = default(EventInfo);
                        objEvent = this._objCtlEvent.EventsGet(this._objEventSignups.EventID,
                                                               this._objEventSignups.ModuleID);
                        this.lblDescription.Text = this.Server.HtmlDecode(objEvent.EventDesc);
                        this.lblFee.Text         = string.Format("{0:#0.00}", objEvent.EnrollFee);
                        this.lblNoEnrolees.Text  = Convert.ToString(this._objEventSignups.NoEnrolees);
                        if (this.Request.Params["status"].ToLower() == "enrolled")
                        {
                            // User has been successfully enrolled for this event (paid enrollment)
                            this.ShowMessage(Localization.GetString("lblComplete", this.LocalResourceFile),
                                             MessageLevel.DNNSuccess);
                            this.lblPurchase.Visible  = false;
                            this.cmdPurchase.Visible  = false;
                            this.cancelButton.Visible = false;
                            this.cmdReturn.Visible    = true;
                        }
                        else if (this.Request.Params["status"].ToLower() == "cancelled")
                        {
                            // User has been cancelled paid enrollment
                            this.ShowMessage(Localization.GetString("lblCancel", this.LocalResourceFile),
                                             MessageLevel.DNNWarning);
                            this.lblPurchase.Visible  = false;
                            this.cmdPurchase.Visible  = false;
                            this.cancelButton.Visible = false;
                            this.cmdReturn.Visible    = true;
                            // Make sure we delete the signup
                            this.DeleteEnrollment(signupID, objEvent.ModuleID, objEvent.EventID);

                            // Mail users
                            if (this.Settings.SendEnrollMessageCancelled)
                            {
                                var objEventEmailInfo = new EventEmailInfo();
                                var objEventEmail     =
                                    new EventEmails(this.PortalId, this.ModuleId, this.LocalResourceFile,
                                                    ((PageBase)this.Page).PageCulture.Name);
                                objEventEmailInfo.TxtEmailSubject = this.Settings.Templates.txtEnrollMessageSubject;
                                objEventEmailInfo.TxtEmailBody    = this.Settings.Templates.txtEnrollMessageCancelled;
                                objEventEmailInfo.TxtEmailFrom    = this.Settings.StandardEmail;
                                if (this._objEventSignups.UserID > -1)
                                {
                                    objEventEmailInfo.UserIDs.Add(this._objEventSignups.UserID);
                                }
                                else
                                {
                                    objEventEmailInfo.UserEmails.Add(this._objEventSignups.AnonEmail);
                                    objEventEmailInfo.UserLocales.Add(this._objEventSignups.AnonCulture);
                                    objEventEmailInfo.UserTimeZoneIds.Add(this._objEventSignups.AnonTimeZoneId);
                                }
                                objEventEmailInfo.UserIDs.Add(objEvent.OwnerID);
                                objEventEmail.SendEmails(objEventEmailInfo, objEvent, this._objEventSignups);
                            }
                        }
                    }
                    else // security violation attempt to access item not related to this Module
                    {
                        this.Response.Redirect(this.GetSocialNavigateUrl(), true);
                    }
                }

                dblTotal                   = Conversion.Val(this.lblFee.Text) * Conversion.Val(this.lblNoEnrolees.Text);
                this.lblTotal.Text         = Strings.Format(dblTotal, "#,##0.00");
                strCurrency                = this.PortalSettings.Currency;
                this.lblFeeCurrency.Text   = strCurrency;
                this.lblTotalCurrency.Text = strCurrency;
            }
            catch (Exception exc) //Module failed to load
            {
                Exceptions.ProcessModuleLoadException(this, exc);
            }
        }
예제 #5
0
        protected void cmdPurchase_Click(object sender, EventArgs e)
        {
            var objEvent = default(EventInfo);

            try
            {
                if (this.Page.IsValid)
                {
                    objEvent = this._objCtlEvent.EventsGet(this._itemID, this.ModuleId);
                    // User wants to purchase event, create Event Signup Record
                    this._objEventSignups = new EventSignupsInfo();

                    //Just in case the user has clicked back and has now clicked Purchase again!!
                    var objEventSignupsChk = default(EventSignupsInfo);
                    if (string.IsNullOrEmpty(this._anonEmail))
                    {
                        objEventSignupsChk =
                            this._objCtlEventSignups.EventsSignupsGetUser(
                                objEvent.EventID, this.UserId, objEvent.ModuleID);
                    }
                    else
                    {
                        objEventSignupsChk =
                            this._objCtlEventSignups.EventsSignupsGetAnonUser(
                                objEvent.EventID, this._anonEmail, objEvent.ModuleID);
                    }
                    if (!ReferenceEquals(objEventSignupsChk, null))
                    {
                        this._objEventSignups.SignupID = objEventSignupsChk.SignupID;
                    }
                    this._objEventSignups.EventID  = objEvent.EventID;
                    this._objEventSignups.ModuleID = objEvent.ModuleID;
                    if (string.IsNullOrEmpty(this._anonEmail))
                    {
                        this._objEventSignups.UserID         = this.UserId;
                        this._objEventSignups.AnonEmail      = null;
                        this._objEventSignups.AnonName       = null;
                        this._objEventSignups.AnonTelephone  = null;
                        this._objEventSignups.AnonCulture    = null;
                        this._objEventSignups.AnonTimeZoneId = null;
                    }
                    else
                    {
                        var objSecurity = new PortalSecurity();
                        this._objEventSignups.UserID    = -1;
                        this._objEventSignups.AnonEmail =
                            objSecurity.InputFilter(this._anonEmail, PortalSecurity.FilterFlag.NoScripting);
                        this._objEventSignups.AnonName =
                            objSecurity.InputFilter(this._anonName, PortalSecurity.FilterFlag.NoScripting);
                        this._objEventSignups.AnonTelephone =
                            objSecurity.InputFilter(this._anonTelephone, PortalSecurity.FilterFlag.NoScripting);
                        this._objEventSignups.AnonCulture    = Thread.CurrentThread.CurrentCulture.Name;
                        this._objEventSignups.AnonTimeZoneId = this.GetDisplayTimeZoneId();
                    }
                    this._objEventSignups.PayPalStatus      = "none";
                    this._objEventSignups.PayPalReason      = "PayPal call initiated...";
                    this._objEventSignups.PayPalPaymentDate = DateTime.UtcNow;
                    this._objEventSignups.Approved          = false;
                    this._objEventSignups.NoEnrolees        = int.Parse(this.lblNoEnrolees.Text);

                    this._objEventSignups = this.CreateEnrollment(this._objEventSignups, objEvent);

                    if (!ReferenceEquals(objEventSignupsChk, null))
                    {
                        this._objEventSignups =
                            this._objCtlEventSignups.EventsSignupsGet(objEventSignupsChk.SignupID,
                                                                      objEventSignupsChk.ModuleID, false);
                    }

                    // Mail users
                    if (this.Settings.SendEnrollMessagePaying)
                    {
                        var objEventEmailInfo = new EventEmailInfo();
                        var objEventEmail     = new EventEmails(this.PortalId, this.ModuleId, this.LocalResourceFile,
                                                                ((PageBase)this.Page).PageCulture.Name);
                        objEventEmailInfo.TxtEmailSubject = this.Settings.Templates.txtEnrollMessageSubject;
                        objEventEmailInfo.TxtEmailBody    = this.Settings.Templates.txtEnrollMessagePaying;
                        objEventEmailInfo.TxtEmailFrom    = this.Settings.StandardEmail;
                        if (string.IsNullOrEmpty(this._anonEmail))
                        {
                            objEventEmailInfo.UserEmails.Add(this.PortalSettings.UserInfo.Email);
                            objEventEmailInfo.UserLocales.Add(this.PortalSettings.UserInfo.Profile.PreferredLocale);
                            objEventEmailInfo.UserTimeZoneIds.Add(this.PortalSettings.UserInfo.Profile.PreferredTimeZone
                                                                  .Id);
                        }
                        else
                        {
                            objEventEmailInfo.UserEmails.Add(this._objEventSignups.AnonEmail);
                            objEventEmailInfo.UserLocales.Add(this._objEventSignups.AnonCulture);
                            objEventEmailInfo.UserTimeZoneIds.Add(this._objEventSignups.AnonTimeZoneId);
                        }
                        objEventEmailInfo.UserIDs.Add(objEvent.OwnerID);
                        objEventEmail.SendEmails(objEventEmailInfo, objEvent, this._objEventSignups);
                    }

                    // build PayPal URL
                    var ppurl = this.Settings.Paypalurl + "/cgi-bin/webscr?cmd=_xclick&business=";

                    var socialGroupId = this.GetUrlGroupId();

                    var objEventInfoHelper =
                        new EventInfoHelper(this.ModuleId, this.TabId, this.PortalId, this.Settings);
                    var returnURL = "";
                    if (socialGroupId > 0)
                    {
                        returnURL = objEventInfoHelper.AddSkinContainerControls(
                            Globals.NavigateURL(this.TabId, "PPEnroll", "Mid=" + Convert.ToString(this.ModuleId),
                                                "signupid=" + Convert.ToString(this._objEventSignups.SignupID),
                                                "status=enrolled", "groupid=" + socialGroupId), "?");
                    }
                    else
                    {
                        returnURL = objEventInfoHelper.AddSkinContainerControls(
                            Globals.NavigateURL(this.TabId, "PPEnroll", "Mid=" + Convert.ToString(this.ModuleId),
                                                "signupid=" + Convert.ToString(this._objEventSignups.SignupID),
                                                "status=enrolled"), "?");
                    }
                    if (returnURL.IndexOf("://") + 1 == 0)
                    {
                        returnURL = Globals.AddHTTP(Globals.GetDomainName(this.Request)) + returnURL;
                    }
                    var cancelURL = "";
                    if (socialGroupId > 0)
                    {
                        cancelURL = objEventInfoHelper.AddSkinContainerControls(
                            Globals.NavigateURL(this.TabId, "PPEnroll", "Mid=" + Convert.ToString(this.ModuleId),
                                                "signupid=" + Convert.ToString(this._objEventSignups.SignupID),
                                                "status=cancelled", "groupid=" + socialGroupId), "?");
                    }
                    else
                    {
                        cancelURL = objEventInfoHelper.AddSkinContainerControls(
                            Globals.NavigateURL(this.TabId, "PPEnroll", "Mid=" + Convert.ToString(this.ModuleId),
                                                "signupid=" + Convert.ToString(this._objEventSignups.SignupID),
                                                "status=cancelled"), "?");
                    }
                    if (cancelURL.IndexOf("://") + 1 == 0)
                    {
                        cancelURL = Globals.AddHTTP(Globals.GetDomainName(this.Request)) + cancelURL;
                    }
                    var strPayPalURL = "";
                    strPayPalURL = ppurl + Globals.HTTPPOSTEncode(objEvent.PayPalAccount);
                    strPayPalURL = strPayPalURL + "&item_name=" +
                                   Globals.HTTPPOSTEncode(objEvent.ModuleTitle + " - " + this.lblEventName.Text +
                                                          " ( " + this.lblFee.Text + " " + this.lblFeeCurrency.Text +
                                                          " )");
                    strPayPalURL = strPayPalURL + "&item_number=" +
                                   Globals.HTTPPOSTEncode(Convert.ToString(this._objEventSignups.SignupID));
                    strPayPalURL = strPayPalURL + "&quantity=" +
                                   Globals.HTTPPOSTEncode(Convert.ToString(this._objEventSignups.NoEnrolees));
                    strPayPalURL = strPayPalURL + "&custom=" +
                                   Globals.HTTPPOSTEncode(
                        Convert.ToDateTime(this.lblStartDate.Text).ToShortDateString());

                    // Make sure currency is in correct format
                    var dblFee    = double.Parse(this.lblFee.Text);
                    var uiculture = Thread.CurrentThread.CurrentCulture;
                    Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
                    strPayPalURL = strPayPalURL + "&amount=" +
                                   Globals.HTTPPOSTEncode(Strings.Format(dblFee, "#,##0.00"));
                    Thread.CurrentThread.CurrentCulture = uiculture;

                    strPayPalURL = strPayPalURL + "&currency_code=" +
                                   Globals.HTTPPOSTEncode(this.lblTotalCurrency.Text);
                    strPayPalURL = strPayPalURL + "&return=" + returnURL;
                    strPayPalURL = strPayPalURL + "&cancel_return=" + cancelURL;
                    strPayPalURL = strPayPalURL + "&notify_url=" +
                                   Globals.HTTPPOSTEncode(Globals.AddHTTP(Globals.GetDomainName(this.Request)) +
                                                          "/DesktopModules/Events/EventIPN.aspx");
                    strPayPalURL = strPayPalURL + "&undefined_quantity=&no_note=1&no_shipping=1";
                    //strPayPalURL = strPayPalURL & "&undefined_quantity=&no_note=1&no_shipping=1&rm=2"

                    // redirect to PayPal
                    this.Response.Redirect(strPayPalURL, true);
                }
            }
            catch (Exception exc) //Module failed to load
            {
                Exceptions.ProcessModuleLoadException(this, exc);
            }
        }
예제 #6
0
        private string SendEventNotifications()
        {
            var objEvents             = new EventController();
            var objEvent              = default(EventInfo);
            var objEventNotifications = new EventNotificationController();
            var notifyEvents          = default(ArrayList);
            var returnStr             = "Event Notification completed.";

            Status = "Sending Event Notifications";

            //***  All Event Notifications are stored in UTC internally.
            notifyEvents = objEventNotifications.EventsNotificationsToSend(DateTime.UtcNow);

            foreach (EventNotificationInfo objNotification in notifyEvents)
            {
                //Get the Associated Event
                objEvent = objEvents.EventsGet(objNotification.EventID, objNotification.ModuleID);

                if (!ReferenceEquals(objEvent, null))
                {
                    // Setup PortalSettings
                    var portalSettings =
                        CreatePortalSettings(objNotification.PortalAliasID, objNotification.TabID);
                    var folderName = DesktopModuleController
                                     .GetDesktopModuleByModuleName("DNN_Events", objEvent.PortalID).FolderName;

                    if (!ReferenceEquals(portalSettings, null))
                    {
                        // Make up the LocalResourceFile value
                        var templateSourceDirectory = Globals.ApplicationPath;
                        var localResourceFile       = templateSourceDirectory + "/DesktopModules/" + folderName + "/" +
                                                      Localization.LocalResourceDirectory + "/EventNotification.ascx.resx";

                        // Send the email
                        var objEventEmailInfo = new EventEmailInfo();
                        var objEventEmail     = new EventEmails(portalSettings.PortalId, objNotification.ModuleID,
                                                                localResourceFile, objNotification.NotifyLanguage);
                        objEventEmailInfo.TxtEmailSubject = objEvent.Notify;
                        objEventEmailInfo.TxtEmailBody    = objEvent.Reminder;
                        objEventEmailInfo.TxtEmailFrom    = objEvent.ReminderFrom;
                        objEventEmailInfo.UserEmails.Add(objNotification.UserEmail);
                        objEventEmailInfo.UserLocales.Add(objNotification.NotifyLanguage);
                        objEventEmailInfo.UserTimeZoneIds.Add(objEvent.EventTimeZoneId);
                        var domainurl = portalSettings.PortalAlias.HTTPAlias;
                        if (domainurl.IndexOf("/", StringComparison.Ordinal) > 0)
                        {
                            domainurl = domainurl.Substring(0, domainurl.IndexOf("/", StringComparison.Ordinal));
                        }

                        objEventEmail.SendEmails(objEventEmailInfo, objEvent, domainurl);
                    }

                    //*** Update Notification (so we don't send again)
                    objNotification.NotificationSent = true;
                    objEventNotifications.EventsNotificationSave(objNotification);
                    returnStr = "Event Notification completed. " + notifyEvents.Count + " Notification(s) sent!";
                }
            }

            //**** Delete Expired EventNotifications (older than 30 days)
            var endDate = DateTime.UtcNow.AddDays(-30);

            objEventNotifications.EventsNotificationDelete(endDate);

            Status = "Event Notifications Sent Successfully";
            ScheduleHistoryItem.Succeeded = true;
            return(returnStr);
        }
예제 #7
0
        private void MailUsTheOrder(string tagMsg, bool sendToUser = true)
        {
            // ********* RWJS - Seems to add no value, and would have always returned nothing *********
            //			InitializeSettings(Item_number)

            var sMessage   = "";
            var sEmail     = "";
            var strNewLine = Environment.NewLine;

            if (this._settings.HTMLEmail == "html")
            {
                strNewLine = "<br />";
            }
            sMessage = tagMsg + strNewLine
                       + "Transaction ID:   " + this._txnID + strNewLine
                       + "Transaction Type: " + this._txnType + strNewLine
                       + "Payment Type:     " + this._paymentType + strNewLine
                       + "Payment Status:   " + this._paymentStatus + strNewLine
                       + "Pending Reason:   " + this._pendingReason + strNewLine
                       + "Payment Date:     " + this._paymentDate + strNewLine
                       + "Receiver Email:   " + this._receiverEmail + strNewLine
                       + "Invoice:          " + this._invoice + strNewLine
                       + "Item Number:      " + this._itemNumber + strNewLine
                       + "Item Name:        " + this._itemName + strNewLine
                       + "Quantity:         " + this._quantity + strNewLine
                       + "Custom:           " + this._custom + strNewLine
                       + "Payment Currency: " + this._currency + strNewLine
                       + "Payment Gross:    " + this._paymentGross + strNewLine
                       + "Payment Fee:      " + this._paymentFee + strNewLine
                       + "Payer Email:      " + this._payerEmail + strNewLine
                       + "First Name:       " + this._firstName + strNewLine
                       + "Last Name:        " + this._lastName + strNewLine
                       + "Street Address:   " + this._addressStreet + strNewLine
                       + "City:             " + this._addressCity + strNewLine
                       + "State:            " + this._addressState + strNewLine
                       + "Zip Code:         " + this._addressZip + strNewLine
                       + "Country:          " + this._addressCountry + strNewLine
                       + "Address Status:   " + this._addressStatus + strNewLine
                       + "Payer Status:     " + this._payerStatus + strNewLine
                       + "Verify Sign:      " + this._verifySign + strNewLine
                       + "Subscriber Date:  " + this._subscrDate + strNewLine
                       + "Period 1:         " + this._period1 + strNewLine
                       + "Period 2:         " + this._period2 + strNewLine
                       + "Period 3:         " + this._period3 + strNewLine
                       + "Amount 1:         " + this._amount1 + strNewLine
                       + "Amount 2:         " + this._amount2 + strNewLine
                       + "Amount 3:         " + this._amount3 + strNewLine
                       + "Recurring:        " + this._recurring + strNewLine
                       + "Reattempt:        " + this._reattempt + strNewLine
                       + "Retry At:         " + this._retryAt + strNewLine
                       + "Recur Times:      " + this._recurTimes + strNewLine
                       + "UserName:         "******"Password:         "******"Subscriber ID:    " + this._subscrID + strNewLine
                       + "Notify Version:   "
                       + this._notifyVersion + strNewLine;


            var portalSettings = (PortalSettings)HttpContext.Current.Items["PortalSettings"];

            sEmail   = this._settings.StandardEmail.Trim();
            sMessage = sMessage;
            try
            {
                var sSystemPrice = Convert.ToDecimal(this._paymentGross);

                // Also verify that Gross Payment is what we logged as the Fee ("payment_gross" field )
                this._objEventSignups =
                    this._objCtlEventSignups.EventsSignupsGet(Convert.ToInt32(this._itemNumber), 0, true);
                this._objEvent =
                    this._objCtlEventEvent.EventsGet(this._objEventSignups.EventID, this._objEventSignups.ModuleID);
                var sPPPrice = this._objEvent.EnrollFee * this._objEventSignups.NoEnrolees;


                var objEventEmailInfo = new EventEmailInfo();
                var objEventEmail     = new EventEmails(this._objEvent.PortalID, this._objEventSignups.ModuleID,
                                                        this._localResourceFile);
                objEventEmailInfo.TxtEmailSubject = this._settings.Templates.txtEnrollMessageSubject;
                objEventEmailInfo.TxtEmailFrom    = sEmail;
                if (sendToUser)
                {
                    if (this._objEventSignups.UserID > -1)
                    {
                        objEventEmailInfo.UserIDs.Add(this._objEventSignups.UserID);
                    }
                    else
                    {
                        objEventEmailInfo.UserEmails.Add(this._objEventSignups.AnonEmail);
                        objEventEmailInfo.UserLocales.Add(this._objEventSignups.AnonCulture);
                        objEventEmailInfo.UserTimeZoneIds.Add(this._objEventSignups.AnonTimeZoneId);
                    }
                }
                objEventEmailInfo.UserIDs.Add(this._objEvent.OwnerID);
                var objEventEmailInfo2 = new EventEmailInfo();
                objEventEmailInfo2.TxtEmailFrom = sEmail;
                objEventEmailInfo2.UserEmails.Add(this._objEvent.PayPalAccount);
                objEventEmailInfo2.UserLocales.Add("");
                objEventEmailInfo2.UserTimeZoneIds.Add("");

                if (sPPPrice == sSystemPrice)
                {
                    //we're ok
                    objEventEmailInfo2.TxtEmailSubject =
                        "Sale of: " + this._itemName + " from " + portalSettings.PortalName;
                    objEventEmailInfo2.TxtEmailBody = sMessage;
                    if (this._paymentStatus.ToUpper() == "COMPLETED")
                    {
                        this.SavePayPalInfo(true, this._objEvent);

                        // Mail users
                        if (this._settings.SendEnrollMessagePaid)
                        {
                            objEventEmailInfo.TxtEmailBody = this._settings.Templates.txtEnrollMessagePaid;
                            objEventEmail.SendEmails(objEventEmailInfo, this._objEvent, this._objEventSignups, true);
                        }
                    }
                    else
                    {
                        this.SavePayPalInfo(false, this._objEvent);

                        // Mail users
                        if (this._settings.SendEnrollMessagePending)
                        {
                            objEventEmailInfo.TxtEmailBody = this._settings.Templates.txtEnrollMessagePending;
                            objEventEmail.SendEmails(objEventEmailInfo, this._objEvent, this._objEventSignups, true);
                        }
                    }
                }
                else
                {
                    //someone is trying to rip us off.
                    objEventEmailInfo2.TxtEmailSubject = "Failed Price Matchup Check: " + this._itemName + " from " +
                                                         portalSettings.PortalName;
                    objEventEmailInfo2.TxtEmailBody =
                        "There was an incorrect match between actual price and price paid. The following transaction information is provided below:" +
                        strNewLine +
                        strNewLine + "The purchasing email is: " + this._payerEmail + strNewLine +
                        "User ID: " + this._custom + strNewLine +
                        "Transaction Type: " + this._txnType + strNewLine +
                        "Transaction ID: " + this._txnID + strNewLine +
                        "Item Number: " + this._itemNumber + strNewLine +
                        "PayPal Paid: " + sSystemPrice + strNewLine +
                        "Actual Price: " + sPPPrice + strNewLine +
                        strNewLine + "TRANSACTION DETAILS: " + strNewLine + strNewLine + sMessage;

                    this.SavePayPalErrorLogInfo();

                    // Mail users
                    if (this._settings.SendEnrollMessageIncorrect)
                    {
                        objEventEmailInfo.TxtEmailBody = this._settings.Templates.txtEnrollMessageIncorrect;
                        objEventEmail.SendEmails(objEventEmailInfo, this._objEvent, this._objEventSignups, true);
                    }
                }
                objEventEmail.SendEmails(objEventEmailInfo2, this._objEvent, this._objEventSignups, true);
            }
            catch (Exception exc)
            {
                Exceptions.LogException(
                    new ModuleLoadException("EventIPN, Paypal Exception: " + exc.Message + " at: " + exc.Source));
                Exceptions.ProcessModuleLoadException(this, exc);
                var localResourceFile = this.TemplateSourceDirectory + "/" + Localization.LocalResourceDirectory +
                                        "/EventIPN.resx";
                var objEventEmailInfo = new EventEmailInfo();
                var objEventEmail     = new EventEmails(this._objEvent.PortalID, this._objEventSignups.ModuleID,
                                                        localResourceFile);
                objEventEmailInfo.TxtEmailSubject = "Sale of: " + this._itemName + " from " + portalSettings.PortalName;
                objEventEmailInfo.TxtEmailFrom    = this._settings.StandardEmail.Trim();
                objEventEmailInfo.UserEmails.Add(this._objEvent.PayPalAccount);
                objEventEmailInfo.UserLocales.Add("");
                objEventEmailInfo.UserTimeZoneIds.Add("");

                objEventEmailInfo.TxtEmailBody =
                    "There was a failure of the item purchase module. The following transaction information is provided below:" +
                    strNewLine +
                    strNewLine + "The purchasing email is: " + this._payerEmail + strNewLine +
                    strNewLine + "User ID: " + this._custom + strNewLine +
                    strNewLine + "Transaction Type: " + this._txnType + strNewLine +
                    strNewLine + "Transaction ID: " + this._txnID + strNewLine +
                    strNewLine + "Error Code: " + exc.Message + strNewLine + exc.Source;

                objEventEmail.SendEmails(objEventEmailInfo, this._objEvent, this._objEventSignups, true);
            }
        }