示例#1
0
        private void Initialize()
        {
            var messageID = MessageID;

            if (!string.IsNullOrWhiteSpace(messageID))
            {
                MailPageMessage message = null;

                message = MailBiz.GetMailMessage(messageID);


                if (message.MailPageSetting == null)
                {
                    message.MailPageSetting = new MailPageSetting();
                }
                var key = string.Format(m_SessionKey_MailMessage, messageID);

                //保存原始的MailMessage到Session中。
                Session[key] = message;

                if (message != null)
                {
                    HandlePermissions(message);

                    if (message.MailMessage != null)
                    {
                        var mail = message.MailMessage;
                        txtFrom.Text    = mail.From;
                        txtTo.Text      = mail.To;
                        txtCC.Text      = mail.CC;
                        txtBCC.Text     = mail.BCC;
                        txtSubject.Text = mail.Subject;
                        txtBody.Text    = mail.Body;

                        if (!string.IsNullOrWhiteSpace(mail.TemplateID))
                        {
                            this.MailCollection = message.MailCollection;

                            ddlTemplates.DataSource    = message.MailCollection;
                            ddlTemplates.SelectedValue = mail.TemplateID;
                            ddlTemplates.DataBind();
                        }

                        var title = string.Format(this.GetLocalResourceObject("LbTitle").ToString(), mail.Subject);

                        this.Title = title;
                    }
                }
            }
            else
            {
                ScriptExecute("jAlert('" + this.GetGlobalResourceObject("InfoMessage", "Info_InvalidParameter") + "','" + this.GetLocalResourceObject("Info_Alert_Title") + "', function() { closeWindow(); });");
            }
        }
示例#2
0
        public string LogMail(MailPageMessage message)
        {
            var result = MailBiz.LogMail(message.MailMessage, message.MailPageSetting);

            if (!string.IsNullOrWhiteSpace(result))
            {
                var key = string.Format(Sessionkey_IsCloseMailPage, result);
                HttpContext.Current.Session[key] = false;
            }

            return(result);
        }
示例#3
0
        /// <summary>
        /// 根据MessageID获取Mail的相关信息和PageSetting的信息
        /// </summary>
        /// <param name="messageID"></param>
        /// <returns></returns>
        public static MailPageMessage GetMailMessage(string messageID)
        {
            MailPageMessage result  = new MailPageMessage();
            MailMessage     message = null;

            Parallel.Invoke(
                () =>
            {
                message = MailDA.GetMailMessage(messageID);
                if (message != null)
                {
                    message.BusinessNumberList = MailDA.GetBusinessNumber(messageID);
                }
            },
                () =>
            {
                result.MailPageSetting = MailDA.GetPageSetting(messageID);
            });

            //如果使用模板方式发送邮件,则需要调用London II的服务获取模板内容
            if (message != null && !string.IsNullOrWhiteSpace(message.TemplateID))
            {
                var templateIDs = message.TemplateID.Split(',');
                var collection  = new List <MailMessage>();

                //并行获取所有TemplateID的内容
                Parallel.ForEach(templateIDs, (templateID) =>
                {
                    var msg = SerializationUtility.XmlDeserialize <MailMessage>(SerializationUtility.XmlSerialize(message));

                    var variable = MailDA.GetTemplateVariable(messageID);
                    msg.MailTemplateVariables = variable;
                    msg.TemplateID            = templateID;

                    var query          = new GetEmailContentMessageV10();
                    query.SystemID     = msg.SystemID;
                    query.TemplateID   = templateID;
                    query.CompanyCode  = msg.CompanyCode;
                    query.CountryCode  = msg.CountryCode;
                    query.LanguageCode = msg.LanguageCode;

                    var content = MailProvider.London.GetEmailContentByTemplate(query, variable.ToKeyValue());

                    if (content != null)
                    {
                        msg.From    = content.FromName;
                        msg.Subject = content.Subject;
                        msg.Body    = content.Body;
                    }

                    lock (s_syncObj)
                    {
                        collection.Add(msg);
                    }
                });

                result.MailCollection = collection;

                if (collection.Count > 0)
                {
                    result.MailMessage = collection[0];
                }
            }
            else
            {
                result.MailMessage = message;
            }

            return(result);
        }
示例#4
0
        private void HandlePermissions(MailPageMessage message)
        {
            var setting  = message.MailPageSetting;
            var mail     = message.MailMessage;
            var readOnly = true;
            var script   = new StringBuilder();
            var height   = 370;

            if (!string.IsNullOrWhiteSpace(message.MailMessage.TemplateID))
            {
                this.TemplateSelector(true);
                height -= 26;
            }
            else
            {
                this.TemplateSelector(false);
            }

            if (message.MailCollection != null && message.MailCollection.Count == 1)
            {
                this.TemplateSelector(false);
            }


            if (!setting.IsAllowSend)
            {
                BtnSend.Enabled = false;
            }

            if (!setting.IsAllowEdit)
            {
                txtFrom.Enabled    = false;
                txtTo.Enabled      = false;
                txtCC.Enabled      = false;
                txtBCC.Enabled     = false;
                txtSubject.Enabled = false;
                txtBody.ReadOnly   = true;
                readOnly           = true;
            }
            else
            {
                if (!setting.IsAllowChangeMailFrom)
                {
                    txtFrom.Enabled = false;
                }
                if (!setting.IsAllowChangeMailTo)
                {
                    txtTo.Enabled = false;
                }
                if (!setting.IsAllowChangeMailSubject)
                {
                    txtSubject.Enabled = false;
                }
                if (!setting.IsAllowChangeMailBody)
                {
                    txtBody.ReadOnly = true;
                    readOnly         = true;
                }
                else
                {
                    readOnly = false;
                }
            }

            if (!setting.IsAllowAttachment || !setting.IsAllowEdit)
            {
                height += 45;
                script.Append("$('#attachmentContainer').remove();");
            }
            if (!setting.IsAllowCC)
            {
                txtCC.Text = string.Empty;
                height    += 26;
                script.Append("$('#row_CC').remove();");
            }
            if (!setting.IsAllowBCC)
            {
                txtBCC.Text = string.Empty;
                height     += 26;
                script.Append("$('#row_BCC').remove();");
            }

            if (mail.BodyType == MailBodyType.Html)
            {
                if (readOnly)
                {
                    script.Append("init_editor(true, true, " + height + ");");
                }
                else
                {
                    script.Append("init_editor(true, false, " + height + ");");
                }
            }
            else
            {
                script.Append("init_editor(false, false, " + height + ");");
            }

            if (script.Length > 0)
            {
                ScriptExecute(script.ToString());
            }
        }