예제 #1
0
        protected void BtnSave_Click(object sender, EventArgs e)
        {
            try
            {
                String guid = Request.QueryString["id"];
                CmsCampaign campaign = CampaignManager.Instance.GetCampaign(guid);
                if (campaign == null)
                    campaign = new CmsCampaign();

                campaign.Name = this.Name.Text;
                if (campaign.Guid == null)
                    campaign.TrackingCode = this.Tracking.Text;

                if (this.StartDate.IsNull)
                    campaign.StartDate = UtcDateTime.Now;
                else
                    campaign.StartDate = this.StartDate.SelectedDate;

                if (this.EndDate.IsNull)
                    campaign.EndDate = UtcDateTime.Now.AddYears(100);
                else
                    campaign.EndDate = this.EndDate.SelectedDate;

                campaign.SubscriptionId = CurrentSite.Guid.Value;

                CampaignManager.Instance.Add(campaign);
                Response.Redirect("./Default.aspx?msg=Successfully+Saved+Campaign");
            }
            catch (Exception ex)
            {
                this.Status.Text = ex.Message;
                this.Status.ForeColor = System.Drawing.Color.Red;
            }
        }
예제 #2
0
        public void Add(CmsCampaign campaign)
        {
            if (campaign.SubscriptionId == null)
                throw new ApplicationException("The subscription id for this campaign has not been set.");

            if (campaign.Guid == null)
            {
                //Make sure this tracking code hasn't been used
                CmsCampaign check = GetByTrackingCode(campaign.SubscriptionId, campaign.TrackingCode);
                if (check != null)
                    throw new ArgumentException("The tracking code: " + campaign.TrackingCode + " has already been associated with camapaign: " + check.Name + " and may not be used again.");

                campaign.Guid = System.Guid.NewGuid().ToString();
            }

            CmsCampaignDao dao = new CmsCampaignDao();
            using (Transaction tx = new Transaction())
            {
                dao.Save<CmsCampaign>(campaign);
                tx.Commit();
            }
        }
예제 #3
0
        /// <summary>
        /// Generates the tracking link in a format that can be used by Google Analytics
        /// </summary>
        /// <param name="campaign"></param>
        /// <param name="source"></param>
        /// <param name="linkType"></param>
        /// <param name="landingPage"></param>
        /// <returns></returns>
        public string GetTrackingLink(CmsCampaign campaign, string source, string linkType, string landingPage, Boolean isFileType)
        {
            String temp;
            String name = campaign.TrackingCode;
            String format;

            if (!isFileType)
            {
                format = String.Format(TrackingLinkFormat, AntiXss.UrlEncode(source), AntiXss.UrlEncode(linkType), AntiXss.UrlEncode(name));
                temp = CurrentSite.ToAbsoluteUrl(landingPage);
                if (temp.Contains("?"))
                    temp = temp + "&";
                else
                    temp = temp + "?";
            }
            else
            {
                format = String.Format(TrackingLinkFileFormat, AntiXss.UrlEncode(source), AntiXss.UrlEncode(linkType), AntiXss.UrlEncode(name), AntiXss.UrlEncode(landingPage));
                temp = CurrentSite.ToAbsoluteUrl("~/gooeyfiles");
            }

            temp = temp + format;

            return temp;
        }