public void OpenMailPageByTemplate(MailTemplateMessage message, MailPageSetting setting, Action <MailResult> callback) { var msg = new MailTemplatePageMessage { MailMessage = message, MailPageSetting = setting }; CPApplication.Current.Browser.LoadingSpin.Show(); LogMail(msg, (messageID) => { CPApplication.Current.Browser.LoadingSpin.Hide(); OpenPageInternal(messageID); if (callback != null) { if (this.m_timer != null) { this.m_timer.Start(); } lock (s_syncObj) { this.m_tasks.Add(new MailTask { MessageID = messageID, Action = callback, ProcessCount = 0 }); } } }); }
public void OpenMultiMailPage(List <MailMessage> messages, MailPageSetting setting, Action <MailResult> callback) { if (messages != null && setting != null) { foreach (var msg in messages) { Guid temp = Guid.Empty; if (!Guid.TryParse(msg.ID, out temp)) { throw new ArgumentException("MailMessage.ID must be a Guid."); } } var count = messages.Count; var parameter = new StringBuilder(); var messageIDs = new List <string>(); CPApplication.Current.Browser.LoadingSpin.Show(); foreach (var msg in messages) { LogMail(new MailPageMessage { MailMessage = msg, MailPageSetting = setting }, (msgID) => { lock (s_syncObj) { messageIDs.Add(msgID); parameter.Append(string.Format("{0},", msgID)); } if (Interlocked.Decrement(ref count) <= 0) { CPApplication.Current.Browser.LoadingSpin.Hide(); OpenMultiMailPage(parameter.ToString().Trim().TrimEnd(',')); if (callback != null) { if (this.m_batchTimer != null) { this.m_batchTimer.Start(); } lock (s_syncObj) { this.m_batchTasks.Add(new BatchMailTask { MessageIDs = messageIDs, Callback = callback, ProcessCount = 0 }); } } } }); } } }
public static void LogPageSetting(string messageID, MailPageSetting setting) { var dataCommand = DataCommandManager.GetDataCommand("CreatePageSetting"); dataCommand.SetParameterValue("@MessageID", messageID); dataCommand.SetParameterValue("@IsAllowEdit", ConvertToString(setting.IsAllowEdit)); dataCommand.SetParameterValue("@IsAllowSend", ConvertToString(setting.IsAllowSend)); dataCommand.SetParameterValue("@IsAllowChangeMailFrom", ConvertToString(setting.IsAllowChangeMailFrom)); dataCommand.SetParameterValue("@IsAllowChangeMailTo", ConvertToString(setting.IsAllowChangeMailTo)); dataCommand.SetParameterValue("@IsAllowChangeMailSubject", ConvertToString(setting.IsAllowChangeMailSubject)); dataCommand.SetParameterValue("@IsAllowChangeMailBody", ConvertToString(setting.IsAllowChangeMailBody)); dataCommand.SetParameterValue("@IsAllowCC", ConvertToString(setting.IsAllowCC)); dataCommand.SetParameterValue("@IsAllowBCC", ConvertToString(setting.IsAllowBCC)); dataCommand.SetParameterValue("@IsAllowAttachment", ConvertToString(setting.IsAllowAttachment)); dataCommand.ExecuteNonQuery(); }
/// <summary> /// 记录MailMessage的信息到DB /// </summary> /// <param name="message"></param> /// <param name="setting"></param> /// <returns></returns> public static string LogMail(MailMessage message, MailPageSetting setting) { if (message == null) { throw new ArgumentNullException("MailMessage"); } using (var scope = new TransactionScope()) { if (!string.IsNullOrWhiteSpace(message.TemplateID)) { message.IsSentByTemplate = true; } else { message.IsSentByTemplate = false; } //记录MailMessage的信息 message.MessageID = MailDA.LogMailMessage(message); //记录BusinessNumber的信息 if (message.BusinessNumberList != null && message.BusinessNumberList.Count > 0) { MailDA.LogBusinessNumber(message.MessageID, message.BusinessNumberList); } //记录MailTemplateVariable的信息 if (!string.IsNullOrWhiteSpace(message.TemplateID) && message.MailTemplateVariables != null) { MailDA.LogTemplateVariable(message.MessageID, message.MailTemplateVariables); } //记录PageSetting的信息 if (setting != null) { MailDA.LogPageSetting(message.MessageID, setting); } scope.Complete(); } return(message.MessageID); }
private bool AreSendByTemplate(MailPageSetting setting) { if (!setting.IsAllowEdit) { return(true); } if (setting.IsAllowChangeMailFrom) { return(false); } if (setting.IsAllowChangeMailSubject) { return(false); } if (setting.IsAllowChangeMailBody) { return(false); } return(true); }
public void OpenMailPageByTemplate(MailTemplateMessage message, MailPageSetting setting) { this.OpenMailPageByTemplate(message, setting, null); }
public void OpenMailPage(MailMessage message, MailPageSetting setting) { this.OpenMailPage(message, setting, null); }