public static IEnumerable <SelectListItem> GetStatusSelect(IssueStatusEnum id) { return(Enum.GetValues(typeof(IssueStatusEnum)) .Cast <IssueStatusEnum>() .Select(x => new SelectListItem { Text = x.ToString(), Value = ((int)x).ToString(), Selected = x == id })); }
/// <summary> /// Handles the UniGrid's OnExternalDataBound event. /// </summary> /// <param name="sender">The sender</param> /// <param name="sourceName">Name of the source</param> /// <param name="parameter">The data row</param> /// <returns>Formatted value to be used in the UniGrid</returns> protected object UniGrid_OnExternalDataBound(object sender, string sourceName, object parameter) { switch (sourceName.ToLowerCSafe()) { case "issuesubject": return(HTMLHelper.HTMLEncode(MacroSecurityProcessor.RemoveSecurityParameters(parameter.ToString(), true, null))); case "issueopenedemails": return(GetOpenedEmails(parameter as DataRowView)); case "issuestatus": IssueStatusEnum status = IssueStatusEnum.Idle; if ((parameter != DBNull.Value) && (parameter != null)) { status = (IssueStatusEnum)parameter; } return(GetString(String.Format("newsletterissuestatus." + Convert.ToString(status)))); case "viewclickedlinks": if (sender is CMSGridActionButton) { // Hide 'view clicked links' action if tracking is not available or if the issue has no tracked links CMSGridActionButton imageButton = sender as CMSGridActionButton; if (!mTrackingEnabled) { imageButton.Visible = false; } else { GridViewRow gvr = parameter as GridViewRow; if (gvr != null) { DataRowView drv = gvr.DataItem as DataRowView; if (drv != null) { int issueId = ValidationHelper.GetInteger(drv["IssueID"], 0); // Try to get one tracked link (only ID) of the issue var links = LinkInfoProvider.GetLinks().WhereEquals("LinkIssueID", issueId).TopN(1).Column("LinkID"); if (!links.Any()) { imageButton.Visible = false; } } } } } return(sender); default: return(parameter); } }
/// <summary> /// Gets info message depending on issue status. /// </summary> /// <param name="issueStatus">Issue status</param> /// <returns>Info message</returns> private string GetInfoMessage(IssueStatusEnum issueStatus) { switch (issueStatus) { case IssueStatusEnum.Finished: return(GetString("Newsletter_Issue_Header.AlreadySent")); case IssueStatusEnum.ReadyForSending: return(GetString("Newsletter_Issue_Header.AlreadyScheduled")); default: return(GetString("Newsletter_Issue_Header.NotSentYet")); } }
/// <summary> /// Gets info message depending on issue status. /// </summary> /// <param name="issueStatus">Issue status</param> /// <returns>Info message</returns> private string GetInfoMessage(IssueStatusEnum issueStatus) { switch (issueStatus) { case IssueStatusEnum.Finished: return(GetString("Newsletter_Issue_Header.AlreadySent")); case IssueStatusEnum.ReadyForSending: { var message = GetString("Newsletter_Issue_Header.AlreadyScheduled"); return(AppendReachingLimitMessage(message)); } case IssueStatusEnum.Idle: { var message = GetString("Newsletter_Issue_Header.NotSentYet"); return(AppendReachingLimitMessage(message)); } } return(GetString("Newsletter_Issue_Header.NotSentYet")); }
protected object grdElem_OnExternalDataBound(object sender, string sourceName, object parameter) { switch (sourceName) { case "IssueVariantName": { DataRowView drv = (DataRowView)parameter; string result = ValidationHelper.GetString(drv["IssueVariantName"], string.Empty); // Issue has not been sent yet => get mail out time from scheduled task if (ValidationHelper.GetInteger(drv["IssueID"], 0) == WinnerIssueID) { result += " " + GetString("newsletterabtest.winner"); } return(result); } case "MailoutTime": { string result = null; DataRowView drv = (DataRowView)parameter; DateTime dt = ValidationHelper.GetDateTime(drv["IssueMailoutTime"], DateTimeHelper.ZERO_TIME); if (dt == DateTimeHelper.ZERO_TIME) { // Issue has not been sent yet => get mail out time from scheduled task int taskId = ValidationHelper.GetInteger(drv["IssueScheduledTaskID"], 0); TaskInfo task = TaskInfoProvider.GetTaskInfo(taskId); if (task != null) { if (task.TaskNextRunTime < DateTime.Now) { result = String.Format("{0} {1}", task.TaskNextRunTime.ToString(), GetString("newsletterissue_send.asap")); } else { result = task.TaskNextRunTime.ToString(); } dt = task.TaskNextRunTime; } else { result = GetString("general.na"); } } else { result = dt.ToString(); } if (mHighestMailoutTime < dt) { mHighestMailoutTime = dt; } return(result); } case "IssueStatus": IssueStatusEnum status = IssueStatusEnum.Idle; if ((parameter != DBNull.Value) && (parameter != null)) { status = (IssueStatusEnum)parameter; } return(IssueHelper.GetStatusFriendlyName(status, null)); case "IssueOpenedEmails": return(GetOpenedEmails(parameter as DataRowView)); case "UniqueClicks": int issueId = ValidationHelper.GetInteger(parameter, 0); return(GetUniqueClicks(IssueHelper.GetIssueTotalUniqueClicks(issueId), issueId)); } return(parameter); }
/// <summary> /// Handles the UniGrid's OnExternalDataBound event. /// </summary> /// <param name="sender">The sender</param> /// <param name="sourceName">Name of the source</param> /// <param name="parameter">The data row</param> /// <returns>Formatted value to be used in the UniGrid</returns> protected object UniGrid_OnExternalDataBound(object sender, string sourceName, object parameter) { string tooltipText = null; var webControl = sender as WebControl; // Prepare a tooltip for the column switch (sourceName.ToLowerCSafe()) { case "issueopenedemails": tooltipText = GetString(mBounceMonitoringEnabled ? "newsletter.openratetooltip.delivered" : "newsletter.openratetooltip.sent"); break; case "issueclickedlinks": tooltipText = GetString(mBounceMonitoringEnabled ? "newsletter.clickratetooltip.delivered" : "newsletter.clickratetooltip.sent"); break; case "deliveryrate": tooltipText = GetString("newsletter.deliveryratetooltip"); break; case "unsubscriberate": tooltipText = GetString(mBounceMonitoringEnabled ? "newsletter.unsubscriptionratetooltip.delivered" : "newsletter.unsubscriptionratetooltip.sent"); break; default: break; } // If the sender is from a column with a tooltip, append tooltip to the control if ((webControl != null) && !String.IsNullOrEmpty(tooltipText)) { ScriptHelper.AppendTooltip(webControl, tooltipText, null); } switch (sourceName.ToLowerCSafe()) { case "issuesubject": return(GetIssueSubject(parameter as DataRowView)); case "issuestatus": IssueStatusEnum status = EnumHelper.GetDefaultValue <IssueStatusEnum>(); var statusID = ValidationHelper.GetInteger(parameter, -1); if (Enum.IsDefined(typeof(IssueStatusEnum), statusID)) { status = (IssueStatusEnum)statusID; } return(IssueHelper.GetStatusFriendlyName(status, null)); case "issuesentemails": var num = ValidationHelper.GetInteger(parameter, 0); return((num > 0) ? num.ToString() : String.Empty); case "issueopenedemails": return(GetOpenedEmails(parameter as DataRowView)); case "issueclickedlinks": return(GetClickRate(parameter as DataRowView)); case "deliveryrate": return(GetDeliveryRate(parameter as DataRowView)); case "unsubscriberate": return(GetUnsubscriptionRate(parameter as DataRowView)); default: return(parameter); } }
/// <summary> /// Handles the UniGrid's OnExternalDataBound event. /// </summary> /// <param name="sender">The sender</param> /// <param name="sourceName">Name of the source</param> /// <param name="parameter">The data row</param> /// <returns>Formatted value to be used in the UniGrid</returns> private object UniGrid_OnExternalDataBound(object sender, string sourceName, object parameter) { var webControl = sender as WebControl; // Prepare a tooltip for the column string tooltipText = GetTooltipText(sourceName); // If the sender is from a column with a tooltip, append tooltip to the control if ((webControl != null) && !String.IsNullOrEmpty(tooltipText)) { ScriptHelper.AppendTooltip(webControl, tooltipText, null); } switch (sourceName.ToLowerInvariant()) { case "issuedisplayname": return(GetIssueDisplayName(parameter as DataRowView)); case "issuestatus": IssueStatusEnum status = EnumHelper.GetDefaultValue <IssueStatusEnum>(); var statusID = ValidationHelper.GetInteger(parameter, -1); if (Enum.IsDefined(typeof(IssueStatusEnum), statusID)) { status = (IssueStatusEnum)statusID; } return(IssueHelper.GetStatusFriendlyName(status, null)); case "issuesentemails": var num = ValidationHelper.GetInteger(parameter, 0); return((num > 0) ? num.ToString() : String.Empty); case "issueopenedemailsrate": return(GetOpenedEmailsRate(parameter as DataRowView)); case "issueopenedemails": return(GetOpenedEmailsCount(parameter as DataRowView)); case "issueclickedlinksrate": return(GetClickRate(parameter as DataRowView)); case "issueclickedlinks": return(GetClickCount(parameter as DataRowView)); case "deliveryrate": return(GetDeliveryRate(parameter as DataRowView)); case "delivered": return(GetDeliveryCount(parameter as DataRowView)); case "unsubscriberate": return(GetUnsubscriptionRate(parameter as DataRowView)); case "unsubscribtions": return(GetUnsubscriptionCount(parameter as DataRowView)); default: return(parameter); } }
/// <summary> /// Handles the UniGrid's OnExternalDataBound event. /// </summary> /// <param name="sender">The sender</param> /// <param name="sourceName">Name of the source</param> /// <param name="parameter">The data row</param> /// <returns>Formatted value to be used in the UniGrid</returns> protected object UniGrid_OnExternalDataBound(object sender, string sourceName, object parameter) { switch (sourceName.ToLowerCSafe()) { case "issuesubject": return(HTMLHelper.HTMLEncode(MacroResolver.RemoveSecurityParameters(parameter.ToString(), true, null))); case "issueopenedemails": return(GetOpenedEmails(parameter as DataRowView)); case "issuestatus": IssueStatusEnum status = IssueStatusEnum.Idle; if ((parameter != DBNull.Value) && (parameter != null)) { status = (IssueStatusEnum)parameter; } return(GetString(String.Format("newsletterissuestatus." + Convert.ToString(status)))); case "edit": if (sender is ImageButton) { if (mNewsletter.NewsletterType.EqualsCSafe(NewsletterType.Dynamic) && !mNewsletter.NewsletterEnableResending) { // Hide 'edit' action if newsletter is dynamic and resending is disabled ImageButton imageButton = sender as ImageButton; imageButton.Style.Add(HtmlTextWriterStyle.Display, "none"); } } return(sender); case "viewclickedlinks": if (sender is ImageButton) { // Hide 'view clicked links' action if tracking is not available or if the issue has no tracked links ImageButton imageButton = sender as ImageButton; if (!mTrackingEnabled) { imageButton.Style.Add(HtmlTextWriterStyle.Display, "none"); } else { GridViewRow gvr = parameter as GridViewRow; if (gvr != null) { DataRowView drv = gvr.DataItem as DataRowView; if (drv != null) { int issueId = ValidationHelper.GetInteger(drv["IssueID"], 0); // Try to get one tracked link (only ID) of the issue InfoDataSet <LinkInfo> links = LinkInfoProvider.GetLinks("LinkIssueID=" + issueId, null, 1, "LinkID"); if (DataHelper.DataSourceIsEmpty(links)) { imageButton.Style.Add(HtmlTextWriterStyle.Display, "none"); } } } } } return(sender); default: return(parameter); } }