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; } } } }
/// <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); } } }
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); }
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); }
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(); }
/// <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; } } }
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); }
public IssuesController( IssueProvider issueProvider, ResultProvider resultsProvider, IssuesViewModelFactory factory) { _issueProvider = issueProvider; _resultsProvider = resultsProvider; _factory = factory; }
/// <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); }
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"); } }
private void SendScheduled() { if (IsValidDate(calendarControl.SelectedDateTime)) { IssueProvider.SendIssue(issueId, calendarControl.SelectedDateTime); } else { lblError.Visible = true; lblError.Text = GetString("newsletter.incorrectdate"); } }
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(); }
/// <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() + "');} "); } }
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); } }
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; } }
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); }
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(); }
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(); } } } }
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); }
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();")); } }
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); } } }
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); }
/// <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; } }
private void SendNow() { IssueProvider.SendIssue(issueId); }
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(); }
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(); }
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(); }
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"); } }
/// <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); } } }