コード例 #1
0
            void CollectAllIssues(Environment env, string variableName)
            {
                var fixes = IssueProvider.GetFixes(ctx, env, variableName).ToArray();

                env.IssueCollected = true;

                foreach (var child in env.Children)
                {
                    if (child is Environment)
                    {
                        CollectAllIssues((Environment)child, variableName);
                    }
                    else
                    {
                        if (child.Kind != NodeKind.Modification)
                        {
                            AddIssue(child.AstNode, title, fixes);
                        }
                        // stop marking references after the variable is modified in current environment
                        if (child.Kind != NodeKind.Reference)
                        {
                            break;
                        }
                    }
                }
            }
コード例 #2
0
    /// <summary>
    /// Displays info label and increases number of unsubscriptions.
    /// </summary>
    private void DisplayConfirmation()
    {
        // Display coinfirmation message
        lblInfo.Visible = true;
        lblInfo.Text    = String.IsNullOrEmpty(UnsubscribedText) ? GetString("Unsubscribe.Unsubscribed") : UnsubscribedText;

        // If subscriber has been unsubscribed after some issue, increase number of unsubscribed persons of the issue by 1
        int issueId = QueryHelper.GetInteger("issueid", 0);

        if (issueId > 0)
        {
            // Unsubscribe using specified issue ID
            IssueProvider.Unsubscribe(issueId);
            return;
        }

        // If issue ID not available, try to unsubscribe using issue GUID
        Guid issueGuid = QueryHelper.GetGuid("issueguid", Guid.Empty);

        if (issueGuid != Guid.Empty)
        {
            Issue issue = IssueProvider.GetIssue(issueGuid, CMSContext.CurrentSiteID);
            if (issue != null)
            {
                IssueProvider.Unsubscribe(issue.IssueID);
            }
        }
    }
コード例 #3
0
    protected void Page_Load(object sender, EventArgs e)
    {
        // Get issue ID from querystring
        issueId = QueryHelper.GetInteger("issueid", 0);
        Issue issue = IssueProvider.GetIssue(issueId);

        if (issue == null)
        {
            return;
        }

        btnFinish.Enabled = true;

        // Initializes page title control
        this.CurrentMaster.Title.TitleText  = GetString("newsletter_issue_list.title");
        this.CurrentMaster.Title.TitleImage = GetImageUrl("Objects/Newsletter_Issue/new.png");

        // Initialize controls' labels
        ucHeader.Title              = GetString("Newsletter_Issue_New_Send.Step3");
        ucHeader.Header             = GetString("Newsletter_Issue_New_Send.header");
        ucHeader.DescriptionVisible = false;

        if (!RequestHelper.IsPostBack())
        {
            // Fill draft emails box
            Newsletter newsletter = NewsletterProvider.GetNewsletter(issue.IssueNewsletterID);
            txtSendDraft.Text = newsletter.NewsletterDraftEmails;
        }

        calendarControl.DateTimeTextBox.CssClass = "EditingFormCalendarTextBox";

        RegisterModalPageScripts();
        ScriptHelper.RegisterClientScriptBlock(this, this.GetType(), "RefreshPage", "function RefreshPage() { wopener.RefreshPage(); }", true);
    }
コード例 #4
0
    protected void Page_Load(object sender, EventArgs e)
    {
        // Get issue ID from querystring
        issueId = QueryHelper.GetInteger("issueid", 0);

        // Get newsletter issue and check its existence
        Issue issue = IssueProvider.GetIssue(issueId);

        EditedObject = issue;

        btnSend.Enabled = true;

        // Display information wheather the issue was sent
        bool isSent = (issue.IssueMailoutTime != DateTimeHelper.ZERO_TIME) && (issue.IssueMailoutTime < DateTime.Now);

        lblSent.Text = isSent ?
                       GetString("Newsletter_Issue_Header.AlreadySent") :
                       GetString("Newsletter_Issue_Header.NotSentYet");

        if (!RequestHelper.IsPostBack())
        {
            // Fill draft emails box
            Newsletter newsletter = NewsletterProvider.GetNewsletter(issue.IssueNewsletterID);
            EditedObject      = newsletter;
            txtSendDraft.Text = newsletter.NewsletterDraftEmails;
        }

        calendarControl.DateTimeTextBox.CssClass = "EditingFormCalendarTextBox";

        string scriptBlock = "var wopener = parent.wopener; function RefreshPage() { wopener.RefreshPage(); }";

        ScriptHelper.RegisterClientScriptBlock(this, this.GetType(), "RefreshPage", scriptBlock, true);
    }
コード例 #5
0
    protected void Page_Load(object sender, EventArgs e)
    {
        btnBack.Text  = "< " + GetString("general.back");
        btnNext.Text  = GetString("general.next") + " >";
        btnClose.Text = GetString("general.close");

        ucHeader.Title              = GetString("Newsletter_Issue_New_Preview.Step2");
        ucHeader.Header             = GetString("Newsletter_Issue_New_Preview.header");
        ucHeader.DescriptionVisible = false;

        this.CurrentMaster.Title.TitleText  = GetString("newsletter_issue_list.title");
        this.CurrentMaster.Title.TitleImage = GetImageUrl("Objects/Newsletter_Issue/new.png");

        newsletterIssueId = QueryHelper.GetInteger("issueid", 0);
        if (newsletterIssueId == 0)
        {
            btnNext.Enabled = false;
            int newsletterId = QueryHelper.GetInteger("newsletterid", 0);
            backUrl = "Newsletter_Issue_New_Edit.aspx?newsletterid=" + newsletterId.ToString();
            return;
        }

        backUrl = "Newsletter_Issue_New_Edit.aspx?issueid=" + newsletterIssueId.ToString();
        Issue issue = IssueProvider.GetIssue(newsletterIssueId);

        RegisterModalPageScripts();
    }
コード例 #6
0
    /// <summary>
    /// Reloads dropdown lists.
    /// </summary>
    protected void ReloadData()
    {
        usNewsletters.WhereCondition = "NewsletterSiteID = " + CMSContext.CurrentSiteID;
        usNewsletters.ButtonRemoveSelected.CssClass = "XLongButton";
        usNewsletters.ButtonAddItems.CssClass       = "XLongButton";
        usNewsletters.ReturnColumnName = "NewsletterID";
        usNewsletters.DropDownSingleSelect.SelectedIndexChanged += new EventHandler(DropDownSingleSelect_SelectedIndexChanged);
        usNewsletters.DropDownSingleSelect.AutoPostBack          = true;

        usIssues.WhereCondition = GetIssueWhereCondition(usNewsletters.Value);
        usIssues.ButtonRemoveSelected.CssClass = "XLongButton";
        usIssues.ButtonAddItems.CssClass       = "XLongButton";
        usIssues.ReturnColumnName = "IssueID";

        // Initialize both dropdown lists according to incoming issue ID
        if (!RequestHelper.IsPostBack())
        {
            if (mValue > 0)
            {
                // Retrieve newsletter ID from issue info
                Issue issue             = IssueProvider.GetIssue(mValue);
                int   issueNewsletterID = 0;
                if (issue != null)
                {
                    issueNewsletterID = issue.IssueNewsletterID;
                }
                usNewsletters.Value     = issueNewsletterID;
                usIssues.WhereCondition = GetIssueWhereCondition(issueNewsletterID);
                usIssues.Reload(true);
                usIssues.DropDownSingleSelect.SelectedValue = mValue.ToString();
                usIssues.Value = mValue;
            }
        }
    }
コード例 #7
0
        static void Main()
        {
            Console.WriteLine("Start");
            var doctriniansClinicChain   = ClinicHelper.CreateClinicChain("Doctrinians", "Chain of Clinics united by common idea of improving medical system");
            var stockholmiansClinicChain = ClinicHelper.CreateClinicChain("Stockholmians", "Classical medical units in Stocklolmian region");

            var karolinskaAddress = AddressProvider.CreateAddress("Sweden", "Stockholm LL", "Stockholm", "Solnavägen", 1, null, 17177);
            var karolinskaClinic  = ClinicHelper.CreateClinic("Karolinska", karolinskaAddress);

            var capioAddress = AddressProvider.CreateAddress("Sweden", "Stockholm LL", "Stockholm", "Ringvägen", 113, null, 11860);
            var capioClinic  = ClinicHelper.CreateClinic("Capio", capioAddress);

            ClinicHelper.AddClinicToClinicChain(karolinskaClinic, stockholmiansClinicChain);
            ClinicHelper.AddClinicToClinicChain(karolinskaClinic, stockholmiansClinicChain);

            var neurologistOccupation    = OccupationProvider.CreateOccupation(OccupationType.Doctor, "Neurologist");
            var pediatrOccupation        = OccupationProvider.CreateOccupation(OccupationType.Doctor, "Pediatr");
            var pediatricNurseOccupation = OccupationProvider.CreateOccupation(OccupationType.Nurse, "Pediatric nurse");
            var adminOccupation          = OccupationProvider.CreateOccupation(OccupationType.Admin, "Administrator");

            var neurologist    = PersonHelper.CreateNewMedic(196002011364, neurologistOccupation);
            var pediatr        = PersonHelper.CreateNewMedic(197001011089, pediatrOccupation);
            var pediatricNurse = PersonHelper.CreateNewMedic(199002284501, pediatricNurseOccupation);
            var admin          = PersonHelper.CreateNewMedic(198503122466, adminOccupation);

            ClinicHelper.Hire(neurologist, karolinskaClinic);
            ClinicHelper.Hire(admin, karolinskaClinic);
            ClinicHelper.Hire(pediatr, capioClinic);
            ClinicHelper.Hire(pediatricNurse, capioClinic);

            var patientRegisterKarolinska = PatientTreatmentHelper.CreateNewPatietnRegistry(karolinskaClinic);
            var patientVisitKarolinska    = PatientTreatmentHelper.CreateNewPatientVisit(199503280549, patientRegisterKarolinska);

            var patientRegisterCapio = PatientTreatmentHelper.CreateNewPatietnRegistry(karolinskaClinic);
            var patientVisitCapio    = PatientTreatmentHelper.CreateNewPatientVisit(198511280549, patientRegisterCapio);

            var bloodTest  = IssueProvider.CreateIssue("Blood test", 50.02m);
            var ultrasound = IssueProvider.CreateIssue("Ultrasound", 150.00m);
            var ekg        = IssueProvider.CreateIssue("Electrocardiogram", 149.99m);
            var mriScan    = IssueProvider.CreateIssue("Magnetic resonance imaging scan", 2000.00m);

            PatientTreatmentHelper.AddIssue(patientVisitCapio, bloodTest);
            PatientTreatmentHelper.AddIssue(patientVisitCapio, ultrasound);
            PatientTreatmentHelper.AddIssue(patientVisitKarolinska, ekg);
            PatientTreatmentHelper.AddIssue(patientVisitKarolinska, mriScan);

            ClinicHelper.DeleteClinic(karolinskaClinic);
            ClinicHelper.DeleteClinicChain(doctriniansClinicChain);

            PatientTreatmentHelper.DeleteIssueFromPatientVisit(ultrasound, patientVisitCapio);
            PatientTreatmentHelper.DeletePatientRegistry(patientRegisterKarolinska);

            OccupationProvider.Delete(adminOccupation);
            AddressProvider.Delete(karolinskaAddress);

            IssueProvider.Delete(ekg);
            PersonHelper.DeletePerson(neurologist);
        }
コード例 #8
0
 public IssuesController(
     IssueProvider issueProvider,
     ResultProvider resultsProvider,
     IssuesViewModelFactory factory)
 {
     _issueProvider   = issueProvider;
     _resultsProvider = resultsProvider;
     _factory         = factory;
 }
コード例 #9
0
    /// <summary>
    /// Deletes an issue specified by its ID (if authorized).
    /// </summary>
    /// <param name="issueId">Issue's ID</param>
    private static void DeleteIssue(int issueId)
    {
        // Delete issue from database (if authorized)
        if (!CMSContext.CurrentUser.IsAuthorizedPerResource("cms.newsletter", "authorissues"))
        {
            RedirectToCMSDeskAccessDenied("cms.newsletter", "authorissues");
        }

        // Delete issue
        IssueProvider.DeleteIssue(issueId);
    }
コード例 #10
0
 private void SendScheduled()
 {
     if (calendarControl.IsValidRange() && (calendarControl.SelectedDateTime != DateTimeHelper.ZERO_TIME))
     {
         IssueProvider.SendIssue(issueId, calendarControl.SelectedDateTime);
     }
     else
     {
         lblError.Visible = true;
         lblError.Text    = GetString("newsletter.incorrectdate");
     }
 }
コード例 #11
0
 private void SendScheduled()
 {
     if (IsValidDate(calendarControl.SelectedDateTime))
     {
         IssueProvider.SendIssue(issueId, calendarControl.SelectedDateTime);
     }
     else
     {
         lblError.Visible = true;
         lblError.Text    = GetString("newsletter.incorrectdate");
     }
 }
コード例 #12
0
            public InspectionTag(IssueManager manager, IssueProvider provider, ITextSourceVersion inspectedVersion, string description, int startOffset, int endOffset, IssueMarker markerType, IEnumerable <CodeAction> actions)
            {
                this.manager          = manager;
                this.Provider         = provider;
                this.InspectedVersion = inspectedVersion;
                this.Description      = description;
                this.StartOffset      = startOffset;
                this.EndOffset        = endOffset;
                this.Severity         = provider.CurrentSeverity;
                this.MarkerType       = markerType;

                this.Actions = actions.Select(Wrap).ToList();
            }
コード例 #13
0
    /// <summary>
    /// Save click handler.
    /// </summary>
    protected void btnHidden_Click(object sender, EventArgs e)
    {
        string result = new Validator().NotEmpty(hdnNewsletterSubject.Value.Trim(), GetString("NewsletterContentEditor.SubjectRequired")).Result;

        if (result != String.Empty)
        {
            ltlScript2.Text = ScriptHelper.GetScript("if (parent.MsgInfo) { parent.MsgInfo(1); }");
            return;
        }

        if (issue == null)
        {
            // Initialize new issue
            issue = new Issue();
            issue.IssueUnsubscribed = 0;
            issue.IssueSentEmails   = 0;
            issue.IssueTemplateID   = templateId;
            issue.IssueNewsletterID = mNewsletterID;
            issue.IssueSiteID       = CMSContext.CurrentSiteID;
        }

        // Saves content of editable region(s)
        issue.IssueText = SaveContent();

        // Remove '#' from macros if included
        hdnNewsletterSubject.Value = hdnNewsletterSubject.Value.Trim().Replace("#%}", "%}");

        // Sign macros if included in the subject
        issue.IssueSubject = MacroResolver.AddSecurityParameters(hdnNewsletterSubject.Value, CMSContext.CurrentUser.UserName, null);
        issue.IssueShowInNewsletterArchive = ValidationHelper.GetBoolean(hdnNewsletterShowInArchive.Value, false);

        // Save issue
        IssueProvider.SetIssue(issue);

        hdnIssueId.Value = issue.IssueID.ToString();

        if (mIsNewIssue)
        {
            // Hide content if redirecting
            plcContent.Visible = false;
        }

        if (hdnNext.Value == "1")
        {
            ltlScript2.Text = ScriptHelper.GetScript("parent.NextClick('" + issue.IssueID.ToString() + "');");
        }
        else
        {
            ltlScript2.Text = ScriptHelper.GetScript("if (parent.SaveClick) {parent.SaveClick('" + issue.IssueID.ToString() + "');} ");
        }
    }
コード例 #14
0
 private void SendDraft()
 {
     if (string.IsNullOrEmpty(txtSendDraft.Text))
     {
         lblError.Visible = true;
         lblError.Text    = GetString("newsletter.recipientsmissing");
     }
     else if (!ValidationHelper.AreEmails(txtSendDraft.Text))
     {
         lblError.Visible = true;
         lblError.Text    = GetString("newsletter.wrongemailformat");
     }
     else
     {
         IssueProvider.SendIssue(issueId, txtSendDraft.Text);
     }
 }
コード例 #15
0
    protected void Page_Load(object sender, EventArgs e)
    {
        int newsletterIssueId = QueryHelper.GetInteger("issueid", 0);

        if (newsletterIssueId > 0)
        {
            // Get newsletter issue and check its existence
            Issue issue = IssueProvider.GetIssue(newsletterIssueId);
            EditedObject = issue;
            bool isSent = (issue.IssueMailoutTime == DateTimeHelper.ZERO_TIME ? false : (issue.IssueMailoutTime < DateTime.Now));

            lblSent.Text = isSent
                               ? GetString("Newsletter_Issue_Header.AlreadySent")
                               : GetString("Newsletter_Issue_Header.NotSentYet");
        }
        else
        {
            preview.Visible = false;
        }
    }
コード例 #16
0
            void CheckVariable(IVariable variable, Statement env)
            {
                if (!IssueProvider.IsTargetVariable(variable))
                {
                    return;
                }

                var root      = new Environment(env, env);
                var envLookup = new Dictionary <AstNode, Environment> ();

                envLookup [env] = root;

                foreach (var result in ctx.FindReferences(env, variable))
                {
                    AddNode(envLookup, new Node(result.Node, IssueProvider.GetNodeKind(result.Node)));
                }

                root.SortChildren();
                CollectIssues(root, variable.Name);
            }
コード例 #17
0
    protected void Page_Load(object sender, EventArgs e)
    {
        // Get issue object
        int   issueId = QueryHelper.GetInteger("issueid", 0);
        Issue issue   = IssueProvider.GetIssue(issueId);

        // Get information about author issue permission
        bool authorized = CMSContext.CurrentUser.IsAuthorizedPerResource("cms.newsletter", "authorissues");

        if (issue != null)
        {
            // Get newsletter object
            Newsletter news = NewsletterProvider.GetNewsletter(issue.IssueNewsletterID);
            if (news != null)
            {
                if (news.NewsletterType == NewsletterType.Dynamic)
                {
                    // Only send page is allowed for dynamic newsletters
                    issueContentUrl = "Newsletter_Issue_Send.aspx?issueid=" + issueId.ToString();
                }
                else
                {
                    if (authorized)
                    {
                        issueContentUrl = "Newsletter_Issue_Edit.aspx?issueid=" + issueId.ToString();
                    }
                    else
                    {
                        issueContentUrl = "Newsletter_Issue_Preview.aspx?issueid=" + issueId.ToString();
                    }
                }
            }
        }

        if (string.IsNullOrEmpty(issueContentUrl))
        {
            issueContentUrl = "Newsletter_Issue_Edit.aspx";
        }

        RegisterModalPageScripts();
    }
コード例 #18
0
    protected void Page_Load(object sender, EventArgs e)
    {
        // Check read permission for newsletters
        if (CMSContext.CurrentUser.IsAuthorizedPerResource("CMS.Newsletter", "Read"))
        {
            int issueId = QueryHelper.GetInteger("IssueId", 0);
            if (issueId > 0)
            {
                // Get newsletter issue
                Issue iss = IssueProvider.GetIssue(issueId);
                if ((iss != null) && (iss.IssueSiteID == CMSContext.CurrentSiteID))
                {
                    // Get newsletter
                    Newsletter news = NewsletterProvider.GetNewsletter(iss.IssueNewsletterID);

                    Response.Clear();
                    Response.Write(IssueProvider.GetEmailBody(iss, news, null, null, false, CMSContext.CurrentSiteName, null, null, null));
                    Response.Flush();

                    RequestHelper.EndResponse();
                }
            }
        }
    }
コード例 #19
0
            bool CanReachModification(IEnumerable <ControlFlowNode> cfg, Environment env,
                                      IDictionary <Statement, IList <Node> > modifications)
            {
                if (modifications.Count == 0)
                {
                    return(false);
                }

                var start = env.ContainingStatement;

                if (modifications.ContainsKey(start) &&
                    modifications [start].Any(v => v.AstNode.StartLocation > env.AstNode.EndLocation))
                {
                    return(true);
                }

                var stack        = new Stack <ControlFlowNode> (cfg.Where(node => node.NextStatement == start));
                var visitedNodes = new HashSet <ControlFlowNode> (stack);

                while (stack.Count > 0)
                {
                    var node = stack.Pop();
                    if (IssueProvider.CanReachModification(node, start, modifications))
                    {
                        return(true);
                    }
                    foreach (var edge in node.Outgoing)
                    {
                        if (visitedNodes.Add(edge.To))
                        {
                            stack.Push(edge.To);
                        }
                    }
                }
                return(false);
            }
コード例 #20
0
    protected void Page_Load(object sender, EventArgs e)
    {
        InitGUI();

        // Get issue ID from query string
        int newsletterIssueId = QueryHelper.GetInteger("issueid", 0);

        // Get Issue object
        Issue issue = IssueProvider.GetIssue(newsletterIssueId);

        if (issue == null)
        {
            lblError.Visible = true;
            lblError.Text    = GetString("Newsletter_Issue_New_Preview.NoIssue");

            return;
        }

        // Get specific number of subscribers subscribed to the newsletter
        string where = "SubscriberID IN (SELECT SubscriberID FROM Newsletter_SubscriberNewsletter WHERE NewsletterID=" + issue.IssueNewsletterID + " AND (SubscriptionApproved = 1 OR SubscriptionApproved IS NULL))";
        DataSet subscribers = SubscriberProvider.GetSubscribers(where, null, MAX_PREVIEW_SUBSCRIBERS, null);

        string script;

        if (!DataHelper.DataSourceIsEmpty(subscribers))
        {
            // Limit max subscribers count to number of rows
            int maxCount = subscribers.Tables[0].Rows.Count;

            // Generate javascript based on subscribers
            script = string.Format(@"newsletterIssueId ={0};
                                     var guid = new Array({1});
                                     var email = new Array({1});
                                     var subject = new Array({1});
                                     var subscribers = new Array(guid, email);",
                                   newsletterIssueId,
                                   maxCount);

            // Ensure correct subject culture
            string siteName = CMSContext.CurrentSiteName;
            string culture  = CultureHelper.GetDefaultCulture(siteName);

            // Get newsletter object
            Newsletter news = NewsletterProvider.GetNewsletter(issue.IssueNewsletterID);

            // Get subject base
            string subjectBase = GetString("general.subject") + ResHelper.Colon;

            Subscriber subscriber = null;
            Subscriber sb         = null;
            SortedDictionary <int, Subscriber> subMembers = null;
            string      infoLine = null;
            string      subject  = null;
            IssueHelper ih       = new IssueHelper();

            for (int i = 0; i < maxCount; i++)
            {
                // Get subscriber
                subscriber = new Subscriber(subscribers.Tables[0].Rows[i]);
                if (subscriber != null)
                {
                    // Insert subscriber GUID
                    script = string.Format("{0} guid[{1}] = '{2}'; \n ", script, i, subscriber.SubscriberGUID);

                    // Get subscriber's member (different for user, role or contact group subscribers)
                    subMembers = SubscriberProvider.GetSubscribers(subscriber, 1, 0);
                    foreach (KeyValuePair <int, Subscriber> item in subMembers)
                    {
                        // Get 1st subscriber's member
                        sb = item.Value;
                        if (sb != null)
                        {
                            // Create information line
                            infoLine = ScriptHelper.GetString(sb.SubscriberEmail, false);

                            // Add info about subscriber type
                            if (sb.SubscriberType == SiteObjectType.USER)
                            {
                                infoLine = string.Format("{0} ({1})", infoLine, GetString("objecttype.cms_user").ToLower());
                            }
                            else if (sb.SubscriberType == SiteObjectType.ROLE)
                            {
                                infoLine = string.Format("{0} ({1})", infoLine, GetString("objecttype.cms_role").ToLower());
                            }
                            else if (sb.SubscriberType == PredefinedObjectType.CONTACTGROUP)
                            {
                                infoLine = string.Format("{0} ({1})", infoLine, GetString("objecttype.om_contactgroup").ToLower());
                            }

                            script = string.Format("{0} email[{1}] = '{2}'; \n ", script, i, infoLine);

                            // Resolve dynamic field macros ({%FirstName%}, {%LastName%}, {%Email%})
                            if (ih.LoadDynamicFields(sb, news, null, issue, true, siteName, null, null, null))
                            {
                                subject = ih.ResolveDynamicFieldMacros(issue.IssueSubject);
                            }

                            // Create resolved subject
                            subject = HTMLHelper.HTMLEncode(string.Format("{0} {1}", subjectBase, subject));
                            script  = string.Format("{0}subject[{1}] = {2}; \n ", script, i, ScriptHelper.GetString(subject));
                        }
                    }
                }
            }
        }
        else
        {
            // No subscribers? => hide 'prev' and 'next' link buttons
            pnlLinkButtons.Visible = false;

            // Generate void javascript
            script = string.Format(@"newsletterIssueId ={0};
                                     var guid = new Array(1);
                                     var email = new Array(1);
                                     var subscribers = new Array(guid, email);
                                     guid[1] = 0;
                                     email[1] = 0;",
                                   newsletterIssueId);
        }
        ltlScript.Text = ScriptHelper.GetScript(script);

        if (!RequestHelper.IsPostBack())
        {
            ScriptHelper.RegisterStartupScript(this, typeof(string), "LoadPreview" + ClientID, ScriptHelper.GetScript("pageLoad();"));
        }
    }
コード例 #21
0
    protected void Page_Load(object sender, EventArgs e)
    {
        // Get data from query string
        Guid   subscriberGuid   = QueryHelper.GetGuid("subscriberguid", Guid.Empty);
        Guid   newsletterGuid   = QueryHelper.GetGuid("newsletterguid", Guid.Empty);
        string subscriptionHash = QueryHelper.GetString("subscriptionhash", string.Empty);
        Guid   issueGuid        = QueryHelper.GetGuid("issueGuid", Guid.Empty);
        int    issueID          = QueryHelper.GetInteger("issueid", 0);
        int    contactId        = QueryHelper.GetInteger("contactid", 0);
        bool   unsubscribed     = false;

        string   requestTime = QueryHelper.GetString("datetime", string.Empty);
        DateTime datetime    = DateTimeHelper.ZERO_TIME;

        // Get date and time
        if (!string.IsNullOrEmpty(requestTime))
        {
            try
            {
                datetime = DateTime.ParseExact(requestTime, SecurityHelper.EMAIL_CONFIRMATION_DATETIME_FORMAT, null);
            }
            catch
            {
                ShowError(GetString("newsletter.unsubscribefailed"));
                return;
            }
        }

        // Get site ID
        int siteId = 0;

        if (CMSContext.CurrentSite != null)
        {
            siteId = CMSContext.CurrentSiteID;
        }

        if ((subscriberGuid != Guid.Empty) && (newsletterGuid != Guid.Empty) && (siteId != 0))
        {
            Subscriber subscriber = SubscriberProvider.GetSubscriber(subscriberGuid, siteId);
            if (subscriber == null)
            {
                ShowError(GetString("Unsubscribe.SubscriberDoesNotExist"));
                return;
            }
            // Show error message if subscriber type is 'Role'
            if (!string.IsNullOrEmpty(subscriber.SubscriberType) && subscriber.SubscriberType.Equals(SiteObjectType.ROLE, StringComparison.InvariantCultureIgnoreCase))
            {
                ShowError(GetString("Unsubscribe.CannotUnsubscribeRole"));
                return;
            }

            Newsletter newsletter = NewsletterProvider.GetNewsletter(newsletterGuid, siteId);
            if (newsletter == null)
            {
                ShowError(GetString("Unsubscribe.NewsletterDoesNotExist"));
                return;
            }

            // Check if subscriber with given GUID is subscribed to specified newsletter
            if (SubscriberProvider.IsSubscribed(subscriber.SubscriberID, newsletter.NewsletterID))
            {
                bool isSubscribed = true;

                if (string.IsNullOrEmpty(subscriber.SubscriberType) || !subscriber.SubscriberType.Equals(PredefinedObjectType.CONTACTGROUP, StringComparison.InvariantCultureIgnoreCase))
                {
                    // Unsubscribe action
                    SubscriberProvider.Unsubscribe(subscriber.SubscriberID, newsletter.NewsletterID);
                }
                else
                {
                    // Check if the contact group member has unsubscription activity for the specified newsletter
                    isSubscribed = (contactId > 0) && !ModuleCommands.OnlineMarketingIsContactUnsubscribed(contactId, newsletter.NewsletterID, siteId);
                }

                if (isSubscribed)
                {
                    // Log newsletter unsubscription activity
                    LogActivity(subscriber, 0, newsletter.NewsletterID, issueID, issueGuid, siteId, contactId);

                    // Display confirmation
                    ShowInformation(GetString("Unsubscribe.Unsubscribed"));
                    unsubscribed = true;
                }
                else
                {
                    // Contact group member is already unsubscribed
                    ShowError(GetString("Unsubscribe.NotSubscribed"));
                }
            }
            else
            {
                ShowError(GetString("Unsubscribe.NotSubscribed"));
            }
        }
        // Check if subscription approval hash is supplied
        else if (!string.IsNullOrEmpty(subscriptionHash))
        {
            SubscriberNewsletterInfo sni = SubscriberNewsletterInfoProvider.GetSubscriberNewsletterInfo(subscriptionHash);
            // Check if hash is valid
            if (sni != null)
            {
                SubscriberProvider.ApprovalResult result = SubscriberProvider.Unsubscribe(subscriptionHash, true, CMSContext.CurrentSiteName, datetime);

                switch (result)
                {
                // Approving subscription was successful
                case SubscriberProvider.ApprovalResult.Success:
                    bool isSubscribed = true;

                    // Get subscriber
                    Subscriber subscriber = SubscriberProvider.GetSubscriber(sni.SubscriberID);
                    if ((subscriber != null) && !string.IsNullOrEmpty(subscriber.SubscriberType) && subscriber.SubscriberType.Equals(PredefinedObjectType.CONTACTGROUP, StringComparison.InvariantCultureIgnoreCase))
                    {
                        // Check if the contact group member has unsubscription activity for the specified newsletter
                        isSubscribed = (contactId > 0) && !ModuleCommands.OnlineMarketingIsContactUnsubscribed(contactId, sni.NewsletterID, siteId);
                    }

                    if (isSubscribed)
                    {
                        // Log newsletter unsubscription activity
                        LogActivity(null, sni.SubscriberID, sni.NewsletterID, issueID, issueGuid, siteId, contactId);

                        // Display confirmation
                        ShowInformation(GetString("Unsubscribe.Unsubscribed"));
                        unsubscribed = true;
                    }
                    else
                    {
                        // Contact group member is already unsubscribed
                        ShowError(GetString("Unsubscribe.NotSubscribed"));
                    }
                    break;

                // Subscription was already approved
                case SubscriberProvider.ApprovalResult.Failed:
                    ShowError(GetString("newsletter.unsubscribefailed"));
                    break;

                case SubscriberProvider.ApprovalResult.TimeExceeded:
                    ShowError(GetString("newsletter.approval_timeexceeded"));
                    break;

                // Subscription not found
                default:
                case SubscriberProvider.ApprovalResult.NotFound:
                    ShowError(GetString("Unsubscribe.NotSubscribed"));
                    break;
                }
            }
            else
            {
                ShowError(GetString("Unsubscribe.NotSubscribed"));
            }
        }
        else
        {
            if (subscriberGuid == Guid.Empty)
            {
                ShowError(GetString("Unsubscribe.SubscriberDoesNotExist"));
            }
            if (newsletterGuid == Guid.Empty)
            {
                ShowError(GetString("Unsubscribe.NewsletterDoesNotExist"));
            }
        }

        // Increase unsubscribed count
        if (unsubscribed)
        {
            // If Issue ID was provided
            if (issueID > 0)
            {
                IssueProvider.Unsubscribe(issueID);
                return;
            }
            // Otherwise try using the Issue GUID
            if (issueGuid != Guid.Empty)
            {
                Issue issue = IssueProvider.GetIssue(issueGuid, siteId);
                if (issue == null)
                {
                    return;
                }

                IssueProvider.Unsubscribe(issue.IssueID);
            }
        }
    }
コード例 #22
0
    protected void Page_Load(object sender, EventArgs e)
    {
        chkShowInArchive.Text = GetString("NewsletterTemplate_Edit.ShowInArchive");

        mSave = GetString("general.save");

        if (!CMSContext.CurrentUser.IsAuthorizedPerResource("CMS.Newsletter", "AuthorIssues"))
        {
            // Disable Save button if user is not authorized
            lnkSave.Enabled  = false;
            imgSave.ImageUrl = GetImageUrl("CMSModules/CMS_Content/EditMenu/savedisabled.png");
        }
        else
        {
            imgSave.ImageUrl = GetImageUrl("CMSModules/CMS_Content/EditMenu/save.png");
            lnkSave.Attributes.Add("onclick", "SaveDocument(); return false;");

            lblInfo.Text = GetString("general.changessaved");
            lblInfo.Style.Add("display", "none");
            lblError.Text = GetString("NewsletterContentEditor.SubjectRequired");
            lblError.Style.Add("display", "none");

            // Registr scripts
            ScriptHelper.RegisterShortcuts(this);

            ScriptHelper.RegisterClientScriptBlock(this, typeof(string), "MsgInfo", ScriptHelper.GetScript(
                                                       "function MsgInfo(err) { \n" +
                                                       "    if (err == 0) { \n" +
                                                       "         document.getElementById('" + lblError.ClientID + "').style.display = \"none\"; \n" +
                                                       "         document.getElementById('" + lblInfo.ClientID + "').style.display = \"block\"; \n" +
                                                       "    } \n" +
                                                       "    if (err == 1) { \n" +
                                                       "         document.getElementById('" + lblInfo.ClientID + "').style.display = \"none\"; \n" +
                                                       "         document.getElementById('" + lblError.ClientID + "').style.display = \"block\"; \n" +
                                                       "    } \n" +
                                                       "} \n"));

            ScriptHelper.RegisterClientScriptBlock(this, typeof(string), "GetSubject",
                                                   ScriptHelper.GetScript(
                                                       "function SaveDocument() \n" +
                                                       "{ \n" +
                                                       "    ClearToolbar(); \n" +
                                                       "    window.frames['iframeContent'].SaveContent(false, document.getElementById('" + txtSubject.ClientID + "').value, " +
                                                       "                                                      document.getElementById('" + chkShowInArchive.ClientID + "').checked ); \n" +
                                                       "    document.getElementById('" + lblInfo.ClientID + "').style.display = \"block\"; \n" +
                                                       "    setTimeout('RefreshPage()',200); \n" +
                                                       "} \n"));
        }

        // Get issue ID from query string
        int issueId = QueryHelper.GetInteger("issueid", 0);
        // Get edited issue object and check its existence
        Issue issue = IssueProvider.GetIssue(issueId);

        EditedObject = issue;

        // Check whether issue has been sent
        bool isSent = (issue.IssueMailoutTime == DateTimeHelper.ZERO_TIME ? false : (issue.IssueMailoutTime < DateTime.Now));

        if (isSent)
        {
            lblSent.Text = GetString("Newsletter_Issue_Header.AlreadySent");
        }
        else
        {
            lblSent.Text = GetString("Newsletter_Issue_Header.NotSentYet");
        }

        // Get newsletter and check its existence
        Newsletter news = NewsletterProvider.GetNewsletter(issue.IssueNewsletterID);

        EditedObject = news;

        if (news.NewsletterType == NewsletterType.Dynamic)
        {
            lblInfo.Visible       = true;
            lblInfo.Text          = GetString("Newsletter_Issue_Edit.CannotBeEdited");
            contentBody.Visible   = false;
            contentFooter.Visible = false;
            pnlMenu.Visible       = false;
            return;
        }
        else
        {
            contentBody.IssueID      = issueId;
            txtSubject.Text          = issue.IssueSubject;
            chkShowInArchive.Checked = issue.IssueShowInNewsletterArchive;
        }

        // Initialize attachment list
        AttachmentTitle.TitleText            = GetString("general.attachments");
        AttachmentTitle.SetWindowTitle       = false;
        AttachmentList.ObjectID              = issueId;
        AttachmentList.SiteID                = CMSContext.CurrentSiteID;
        AttachmentList.AllowPasteAttachments = true;
        AttachmentList.ObjectType            = NewsletterObjectType.NEWSLETTERISSUE;
        AttachmentList.Category              = MetaFileInfoProvider.OBJECT_CATEGORY_ISSUE;
        AttachmentList.AllowEdit             = lnkSave.Enabled;

        // Add after upload event
        AttachmentList.OnAfterUpload += new EventHandler(AttachmentList_OnAfterUpload);
        AttachmentList.OnAfterDelete += new EventHandler(AttachmentList_OnAfterUpload);
    }
コード例 #23
0
    /// <summary>
    /// Handles the UniGrid's OnAction event.
    /// </summary>
    /// <param name="actionName">Name of item (button) that throws event</param>
    /// <param name="actionArgument">ID (value of Primary key) of corresponding data row</param>
    protected void uniGrid_OnAction(string actionName, object actionArgument)
    {
        string templateId = actionArgument.ToString();

        switch (actionName.ToLower())
        {
        // Edit the template
        case "edit":
            URLHelper.Redirect("NewsletterTemplate_Edit.aspx?templateid=" + templateId);
            break;

        // Delete the template
        case "delete":
            // Check 'Manage templates' permission
            if (!CMSContext.CurrentUser.IsAuthorizedPerResource("cms.newsletter", "managetemplates"))
            {
                RedirectToCMSDeskAccessDenied("cms.newsletter", "managetemplates");
            }

            // Check if the template is used in a newsletter
            string where = string.Format("(NewsletterTemplateID={0}) OR (NewsletterSubscriptionTemplateID={0}) OR (NewsletterUnsubscriptionTemplateID={0}) OR (NewsletterOptInTemplateID={0})", templateId);

            DataSet newsByEmailtempl = NewsletterProvider.GetNewsletters(where, null, 1, "NewsletterID");
            if (DataHelper.DataSourceIsEmpty(newsByEmailtempl))
            {
                // Check if the template is used in an issue
                DataSet newsletterIssues = IssueProvider.GetIssues("IssueTemplateID = " + templateId, null, 1, "IssueID");
                if (DataHelper.DataSourceIsEmpty(newsletterIssues))
                {
                    // Delete EmailTemplate object from database
                    EmailTemplateProvider.DeleteEmailTemplate(ValidationHelper.GetInteger(templateId, 0));
                }
                else
                {
                    ShowError(GetString("NewsletterTemplate_List.TemplateInUseByNewsletterIssue"));
                }
            }
            else
            {
                ShowError(GetString("NewsletterTemplate_List.TemplateInUseByNewsletter"));
            }
            break;

        // Clone the template
        case "clone":
            if (!CMSContext.CurrentUser.IsAuthorizedPerResource("cms.newsletter", "managetemplates"))
            {
                RedirectToCMSDeskAccessDenied("cms.newsletter", "managetemplates");
            }

            int           tmpId = ValidationHelper.GetInteger(templateId, 0);
            EmailTemplate oldet = EmailTemplateProvider.GetEmailTemplate(tmpId);
            if (oldet != null)
            {
                EmailTemplate et = new EmailTemplate();
                et.TemplateBody           = oldet.TemplateBody;
                et.TemplateDisplayName    = oldet.TemplateDisplayName;
                et.TemplateSubject        = oldet.TemplateSubject;
                et.TemplateFooter         = oldet.TemplateFooter;
                et.TemplateHeader         = oldet.TemplateHeader;
                et.TemplateID             = 0;
                et.TemplateName           = oldet.TemplateName;
                et.TemplateSiteID         = oldet.TemplateSiteID;
                et.TemplateStylesheetText = oldet.TemplateStylesheetText;
                et.TemplateType           = oldet.TemplateType;

                string templateName        = et.TemplateName;
                string templateDisplayName = et.TemplateDisplayName;

                while (EmailTemplateProvider.GetEmailTemplate(templateName, et.TemplateSiteID) != null)
                {
                    templateName        = Increment(templateName, "_", "");
                    templateDisplayName = Increment(templateDisplayName, "(", ")");
                }

                et.TemplateName        = templateName;
                et.TemplateDisplayName = templateDisplayName;

                // Get new ID
                using (CMSActionContext context = new CMSActionContext())
                {
                    // Disable versioning to prevent creating new version on first set
                    context.CreateVersion = false;

                    EmailTemplateProvider.SetEmailTemplate(et);
                }

                List <Guid> convTable = new List <Guid>();

                try
                {
                    MetaFileInfoProvider.CopyMetaFiles(tmpId, et.TemplateID, NewsletterObjectType.NEWSLETTERTEMPLATE, MetaFileInfoProvider.OBJECT_CATEGORY_TEMPLATE, convTable);
                }
                catch (Exception e)
                {
                    ShowError(e.Message);
                    EmailTemplateProvider.DeleteEmailTemplate(et);
                    return;
                }

                for (int i = 0; i < convTable.Count; i += 2)
                {
                    et.TemplateBody = et.TemplateBody.Replace(convTable[i].ToString(), convTable[i + 1].ToString());
                }

                EmailTemplateProvider.SetEmailTemplate(et);
            }
            break;
        }
    }
コード例 #24
0
 private void SendNow()
 {
     IssueProvider.SendIssue(issueId);
 }
コード例 #25
0
    protected void Page_Load(object sender, EventArgs e)
    {
        Guid subscriberGuid    = QueryHelper.GetGuid("subscriberguid", Guid.Empty);
        int  newsletterIssueId = QueryHelper.GetInteger("issueid", 0);

        // Get newsletter issue
        Issue issue = IssueProvider.GetIssue(newsletterIssueId);

        if (issue == null)
        {
            return;
        }

        // Get subscriber
        Subscriber subscriber = SubscriberProvider.GetSubscriber(subscriberGuid, CMSContext.CurrentSiteID);

        // Get the newsletter
        Newsletter news = NewsletterProvider.GetNewsletter(issue.IssueNewsletterID);

        if (news == null)
        {
            return;
        }

        // Get site default culture
        string culture = CultureHelper.GetDefaultCulture(CMSContext.CurrentSiteName);

        // Ensure preview in default site culture
        // Keep old culture
        System.Globalization.CultureInfo oldUICulture = Thread.CurrentThread.CurrentUICulture;

        // Set current culture
        Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(culture);

        string htmlPage = String.Empty;

        try
        {
            if (subscriber != null)
            {
                // Get subscriber's member (different for user or role subscribers)
                SortedDictionary <int, Subscriber> subscribers = SubscriberProvider.GetSubscribers(subscriber, 1, 0);
                foreach (KeyValuePair <int, Subscriber> item in subscribers)
                {
                    // Get 1st subscriber's member
                    Subscriber sb = item.Value;

                    htmlPage = IssueProvider.GetEmailBody(issue, news, null, sb, true, CMSContext.CurrentSiteName, null, null, null);
                }
            }

            if (string.IsNullOrEmpty(htmlPage))
            {
                htmlPage = IssueProvider.GetEmailBody(issue, news, null, null, true, CMSContext.CurrentSiteName, null, null, null);
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }
        finally
        {
            // Set back to old culture
            Thread.CurrentThread.CurrentUICulture = oldUICulture;
        }

        Response.Clear();
        Response.Write(htmlPage);

        RequestHelper.EndResponse();
    }
コード例 #26
0
    protected void Page_Load(object sender, EventArgs e)
    {
        ScriptHelper.RegisterScriptFile(Page, "cmsedit.js");
        ScriptHelper.RegisterStartupScript(Page, typeof(string), "Initialize", ScriptHelper.GetScript("InitializePage();"));
        ScriptHelper.RegisterClientScriptBlock(this, typeof(string), "Reload", ScriptHelper.GetScript("" +
                                                                                                      "function SaveContent(callNext, newsSubject, newsShowInArchive) { \n" +
                                                                                                      " document.getElementById('" + hdnNewsletterSubject.ClientID + "').value = newsSubject; \n" +
                                                                                                      " document.getElementById('" + hdnNewsletterShowInArchive.ClientID + "').value = newsShowInArchive; \n" +
                                                                                                      " if (callNext) { document.getElementById('" + this.hdnNext.ClientID + "').value = 1; } \n" +
                                                                                                      this.Page.ClientScript.GetPostBackEventReference(btnHidden, null) +
                                                                                                      "} \n" +
                                                                                                      "function SaveDocument() { window.parent.ClearToolbar(); window.parent.SaveDocument(); } \n"));

        if (CMSContext.CurrentUser.IsAuthorizedPerResource("cms.newsletter", "authorissues"))
        {
            ScriptHelper.RegisterShortcuts(this);
        }

        // Get issue ID
        mIssueID = QueryHelper.GetInteger("issueid", 0);
        if (mIssueID == 0)
        {
            mIssueID = QueryHelper.GetInteger(hdnIssueId.Value, 0);
        }

        // Get newsletter ID
        mNewsletterID = QueryHelper.GetInteger("newsletterid", 0);
        // Get info if new issue is created
        mIsNewIssue = QueryHelper.GetBoolean("new", false);

        if (mIssueID > 0)
        {
            issue = IssueProvider.GetIssue(mIssueID);
            if (issue != null)
            {
                templateId = issue.IssueTemplateID;
            }
        }
        else if (mNewsletterID > 0)
        {
            Newsletter newsletter = NewsletterProvider.GetNewsletter(mNewsletterID);
            if (newsletter != null)
            {
                templateId = newsletter.NewsletterTemplateID;
            }
        }

        if (templateId > 0)
        {
            // Load content from the template
            LoadContent();
        }

        if (!RequestHelper.IsPostBack())
        {
            if ((issue != null))
            {
                bool saved = QueryHelper.GetBoolean("saved", false);
                if (saved)
                {
                    ltlScript2.Text = ScriptHelper.GetScript("if (parent.MsgInfo) { parent.MsgInfo(0); } ");
                }
            }
        }

        LoadRegionList();
    }
コード例 #27
0
			public InspectionTag(IssueManager manager, IssueProvider provider, ITextSourceVersion inspectedVersion, string description, int startOffset, int endOffset, IssueMarker markerType, IEnumerable<CodeAction> actions)
			{
				this.manager = manager;
				this.Provider = provider;
				this.InspectedVersion = inspectedVersion;
				this.Description = description;
				this.StartOffset = startOffset;
				this.EndOffset = endOffset;
				this.Severity = provider.CurrentSeverity;
				this.MarkerType = markerType;
				
				this.Actions = actions.Select(Wrap).ToList();
			}
コード例 #28
0
    protected void Page_Load(object sender, EventArgs e)
    {
        // Check the license
        if (!string.IsNullOrEmpty(URLHelper.GetCurrentDomain()))
        {
            LicenseHelper.CheckFeatureAndRedirect(URLHelper.GetCurrentDomain(), FeatureEnum.Newsletters);
        }

        // Check site availability
        if (!ResourceSiteInfoProvider.IsResourceOnSite("CMS.Newsletter", CMSContext.CurrentSiteName))
        {
            RedirectToResourceNotAvailableOnSite("CMS.Newsletter");
        }

        CurrentUserInfo user = CMSContext.CurrentUser;

        // Check 'NewsletterRead' permission
        if (!user.IsAuthorizedPerResource("CMS.Newsletter", "Read"))
        {
            RedirectToCMSDeskAccessDenied("CMS.Newsletter", "Read");
        }

        // Check 'Author issues' permission
        if (!user.IsAuthorizedPerResource("cms.newsletter", "authorissues"))
        {
            RedirectToCMSDeskAccessDenied("cms.newsletter", "authorissues");
        }

        // Check permissions for CMS Desk -> Tools -> Newsletter
        if (!user.IsAuthorizedPerUIElement("CMS.Tools", "Newsletter"))
        {
            RedirectToCMSDeskUIElementAccessDenied("CMS.Tools", "Newsletter");
        }

        chkShowInArchive.Text = GetString("NewsletterTemplate_Edit.ShowInArchive");

        string tmp = " document.getElementById('" + txtSubject.ClientID + "').value, " +
                     " document.getElementById('" + chkShowInArchive.ClientID + "').checked ";

        btnSave.Attributes.Add("onclick", "ClearToolbar();frames[0].SaveContent(false, " + tmp + ");return false;");
        btnNext.Attributes.Add("onclick", "ClearToolbar();frames[0].SaveContent(true, " + tmp + ");return false;");

        ScriptHelper.RegisterClientScriptBlock(this, typeof(string), "NextFunction", ScriptHelper.GetScript("" +
                                                                                                            "function NextClick(issueId){" +
                                                                                                            "document.getElementById('" + hdnNext.ClientID + "').value = issueId; " +
                                                                                                            this.Page.ClientScript.GetPostBackEventReference(btnNextHidden, null) +
                                                                                                            " }"));

        ScriptHelper.RegisterClientScriptBlock(this, typeof(string), "SaveFunction", ScriptHelper.GetScript("" +
                                                                                                            "function SaveClick(issueId){" +
                                                                                                            "document.getElementById('" + hdnNext.ClientID + "').value = issueId; " +
                                                                                                            this.Page.ClientScript.GetPostBackEventReference(btnSaveHidden, null) +
                                                                                                            " }"));

        lblError.Text = GetString("NewsletterContentEditor.SubjectRequired");
        lblError.Style.Add("display", "none");
        lblInfo.Text = GetString("general.changessaved");
        lblInfo.Style.Add("display", "none");

        ScriptHelper.RegisterClientScriptBlock(this, typeof(string), "MsgInfo", ScriptHelper.GetScript(
                                                   "function MsgInfo(err) { \n" +
                                                   "    if (err == 0) { \n" +
                                                   "         document.getElementById('" + lblError.ClientID + "').style.display = \"none\"; \n" +
                                                   "         document.getElementById('" + lblInfo.ClientID + "').style.display = \"block\"; \n" +
                                                   "    } \n" +
                                                   "    if (err == 1) { \n" +
                                                   "         document.getElementById('" + lblInfo.ClientID + "').style.display = \"none\"; \n" +
                                                   "         document.getElementById('" + lblError.ClientID + "').style.display = \"block\"; \n" +
                                                   "    } \n" +
                                                   "} \n"));

        ScriptHelper.RegisterClientScriptBlock(this, typeof(string), "SaveDocument",
                                               ScriptHelper.GetScript(
                                                   "            function SaveDocument() \n" +
                                                   "            { \n" +
                                                   "                ClearToolbar(); \n" +
                                                   "                window.frames['iframeContent'].SaveContent(false, document.getElementById('" + txtSubject.ClientID + "').value, " +
                                                   " document.getElementById('" + chkShowInArchive.ClientID + "').checked ); \n" +
                                                   "            } \n"));


        newsletterId = QueryHelper.GetInteger("newsletterid", 0);
        IssueId      = QueryHelper.GetInteger("issueid", IssueId);

        if ((newsletterId == 0) && (IssueId == 0))
        {
            return;
        }

        if (IssueId > 0) //user comes back from Newsletter_Issue_New_Preview.aspx page
        {
            contentBody.IssueID = IssueId;

            issue        = IssueProvider.GetIssue(IssueId);
            EditedObject = issue;
            if (newsletterId == 0)
            {
                newsletterId = issue.IssueNewsletterID;
            }

            contentBody.NewsletterID = newsletterId;

            txtSubject.Text          = issue.IssueSubject;
            chkShowInArchive.Checked = issue.IssueShowInNewsletterArchive;
        }
        else //user is creating new issue
        {
            contentBody.NewsletterID = newsletterId;
        }

        // Initializes page title control
        Page.Title = GetString("newsletter_issue_list.title");
        CurrentMaster.Title.TitleText  = Page.Title;
        CurrentMaster.Title.TitleImage = GetImageUrl("Objects/Newsletter_Issue/new.png");

        ucHeader.Title              = GetString("newsletter_issue_list.step1");
        ucHeader.Header             = GetString("newsletter_issue_list.header");
        ucHeader.DescriptionVisible = false;
        btnNext.Text              = GetString("general.next") + " >";
        btnSave.Text              = GetString("general.save");
        btnClose.Text             = GetString("general.close");
        AttachmentTitle.TitleText = GetString("general.attachments");

        if (IssueId > 0)
        {
            AttachmentList.Visible  = true;
            AttachmentList.ObjectID = IssueId;
            AttachmentList.SiteID   = CMSContext.CurrentSiteID;
            AttachmentList.AllowPasteAttachments = true;
            AttachmentList.ObjectType            = NewsletterObjectType.NEWSLETTERISSUE;
            AttachmentList.Category            = MetaFileInfoProvider.OBJECT_CATEGORY_ISSUE;
            AttachmentList.OnAfterUpload      += new EventHandler(AttachmentList_OnAfterUpload);
            AttachmentList.UploadOnClickScript = "SaveDocument();";
            lblAttInfo.Visible = false;
        }
        else
        {
            lblAttInfo.Text = GetString("newsletter_issue_list.attachmentinfo");
        }
    }
コード例 #29
0
    /// <summary>
    /// Logs activity for unsubscribing.
    /// </summary>
    /// <param name="sb">Subscriber (optional - can be null if subscriber ID is used)</param>
    /// <param name="subscriberId">Subscriber ID (optional - can be zero if subscriber object is used)</param>
    /// <param name="newsletterId">Newsletter ID</param>
    /// <param name="siteId">Site ID</param>
    /// <param name="issueId">Issue ID</param>
    /// <param name="issueGuid">Issue GUID</param>
    /// <param name="contactId">Contact ID is present if the mail is sent to a contact group</param>
    private void LogActivity(Subscriber sb, int subscriberId, int newsletterId, int siteId, int issueId, Guid issueGuid, int contactId)
    {
        // Check if activities logging is enabled
        if ((newsletterId <= 0) || (CMSContext.ViewMode != ViewModeEnum.LiveSite) || !ActivitySettingsHelper.ActivitiesEnabledAndModuleLoaded(siteId) ||
            !ActivitySettingsHelper.NewsletterSubscribeEnabled(siteId))
        {
            return;
        }

        // Load subscriber info object according to its ID if not given
        if (sb == null)
        {
            if (subscriberId <= 0)
            {
                return;
            }
            sb = SubscriberProvider.GetSubscriber(subscriberId);
        }

        if (sb == null)
        {
            return;
        }

        Newsletter news = NewsletterProvider.GetNewsletter(newsletterId);

        if ((news != null) && news.NewsletterLogActivity)
        {
            bool isFromContactGroup = (contactId > 0);

            // Try to retrieve contact IDs for particular subscriber from membership relations
            if (!isFromContactGroup)
            {
                contactId = ActivityTrackingHelper.GetContactID(sb);
            }

            if (contactId > 0)
            {
                // Load additional info (issue id)
                if ((issueId <= 0) && (issueGuid != Guid.Empty))
                {
                    Issue issue = IssueProvider.GetIssue(issueGuid, siteId);
                    if (issue != null)
                    {
                        issueId = issue.IssueID;
                    }
                }

                var data = new ActivityData()
                {
                    ContactID    = contactId,
                    SiteID       = sb.SubscriberSiteID,
                    Type         = PredefinedActivityType.NEWSLETTER_UNSUBSCRIBING,
                    TitleData    = news.NewsletterName,
                    ItemID       = newsletterId,
                    URL          = URLHelper.CurrentRelativePath,
                    ItemDetailID = issueId,
                    Value        = (isFromContactGroup ? "contactgroup(" + sb.SubscriberRelatedID + ")" : null)
                };
                ActivityLogProvider.LogActivity(data);
            }
        }
    }