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; } }
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(); } }
/// <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; }