コード例 #1
0
ファイル: Email.cs プロジェクト: san90279/UK_OAS
        public static EmailSetting LoadSetting(object[] clientInfo)
        {
            var setting = new EmailSetting();
            XmlDocument doc = new XmlDocument();
            string xmlFileName = string.Format("{0}\\Workflow.xml", EEPRegistry.Server);
            if (File.Exists(xmlFileName))
            {
                doc.Load(xmlFileName);
                XmlNode nodeActive = doc.ChildNodes[0].SelectSingleNode("Active");
                if (nodeActive != null)
                {
                    setting.Activie = Convert.ToBoolean(nodeActive.InnerText);
                }

                XmlNode nodeEmail = doc.ChildNodes[0].SelectSingleNode("Email");
                if (nodeEmail != null)
                {
                    setting.SendFrom = nodeEmail.InnerText;
                }
                XmlNode nodePassword = doc.ChildNodes[0].SelectSingleNode("Password");
                if (nodePassword != null)
                {
                    setting.Password = GetPwdString(nodePassword.InnerText);
                }
                XmlNode nodeSMTP = doc.ChildNodes[0].SelectSingleNode("SMTP");
                if (nodeSMTP != null)
                {
                    setting.SMTP = nodeSMTP.InnerText;
                }
                XmlNode nodeSSL = doc.ChildNodes[0].SelectSingleNode("EnableSSL");
                if (nodeSSL != null)
                {
                    setting.EnableSSL = Convert.ToBoolean(nodeSSL.InnerText);
                }
                XmlNode nodePort = doc.ChildNodes[0].SelectSingleNode("Port");
                if (nodePort != null && !string.IsNullOrEmpty(nodePort.InnerText))
                {
                    setting.Port = Convert.ToInt32(nodePort.InnerText);
                }

                var developer = string.Empty;
                object[] info = (object[])clientInfo[0];
                if (info != null && info.Length > 17)
                {
                    developer = (string)info[17];
                }
                //cloud
                //var dbconnection
                if (!string.IsNullOrEmpty(developer))
                {
                    var db = Srvtools.DbConnectionSet.GetDbConn(Srvtools.DbConnectionSet.GetSystemDatabase(null));
                    using (var connection = db.CreateConnection())
                    {
                        connection.Open();
                        var command = connection.CreateCommand();

                        var solution = (string)((object[])clientInfo[0])[6];
                        var parameters = AddParameters(new string[] { "UserID", "SolutionID" }, new object[] { developer, solution }, command);
                        command.CommandText = string.Format("SELECT * FROM SYS_SDSOLUTIONS WHERE UserID = {0} AND SolutionID = {1}", parameters);
                        var adpater = Srvtools.DBUtils.CreateDbDataAdapter(command);
                        var dataSet = new DataSet();
                        adpater.Fill(dataSet);

                        if (dataSet.Tables[0].Rows.Count > 0)
                        {
                            var servers = dataSet.Tables[0].Rows[0]["servers"].ToString().Split(';');
                            foreach (var server in servers)
                            {
                                var keyValues = server.Split('=');
                                if (keyValues.Length == 2)
                                {
                                    var values = keyValues[1].Split(',');
                                    if (keyValues[0] == "MailSubject")
                                    {
                                        setting.SubjectActivityName = values.Contains("ActivityName");
                                        setting.SubjectContent = values.Contains("Content");
                                        setting.SubjectDescription = values.Contains("Description");
                                        setting.SubjectFlowName = values.Contains("FlowName");
                                        setting.SubjectSender = values.Contains("Sender");
                                    }
                                    if (keyValues[0] == "MailBody")
                                    {
                                        setting.BodyActivityDescription = values.Contains("ActivityDescription");
                                        setting.BodyActivityName = values.Contains("ActivityName");
                                        setting.BodyComment = values.Contains("Comment");
                                        setting.BodyContent = values.Contains("Content");
                                        setting.BodyDatetime = values.Contains("DateTime");
                                        setting.BodyDescription = values.Contains("Description");
                                        setting.BodyFlowName = values.Contains("FlowName");
                                        setting.BodyHyperlink = values.Contains("HyperLink");
                                        setting.BodySender = values.Contains("Sender");
                                    }
                                    if (keyValues[0] == "MailButton")
                                    {
                                        setting.ButtonApprove = values.Contains("Approve");
                                        setting.ButtonReject = values.Contains("Return");
                                        setting.ButtonReturn = values.Contains("Reject");
                                    }
                                }
                            }

                        }
                    }
                }
                else
                {
                    #region Body
                    XmlNode nodeActivityDescription = doc.ChildNodes[0].SelectSingleNode("ActivityDescription");
                    if ((nodeActivityDescription != null && Convert.ToBoolean(nodeActivityDescription.InnerText)))
                    {
                        setting.BodyActivityDescription = true;
                    }

                    XmlNode nodeSender = doc.ChildNodes[0].SelectSingleNode("Sender");
                    if ((nodeSender != null && Convert.ToBoolean(nodeSender.InnerText)) || nodeSender == null)
                    {
                        setting.BodySender = true;
                    }

                    XmlNode nodeFlowName = doc.ChildNodes[0].SelectSingleNode("FlowName");
                    if ((nodeFlowName != null && Convert.ToBoolean(nodeFlowName.InnerText)) || nodeFlowName == null)
                    {
                        setting.BodyFlowName = true;
                    }

                    XmlNode nodeActivityName = doc.ChildNodes[0].SelectSingleNode("ActivityName");
                    if ((nodeActivityName != null && Convert.ToBoolean(nodeActivityName.InnerText)) || nodeActivityName == null)
                    {
                        setting.BodyActivityName = true;
                    }

                    XmlNode nodeContent = doc.ChildNodes[0].SelectSingleNode("Content");
                    if ((nodeContent != null && Convert.ToBoolean(nodeContent.InnerText)) || nodeContent == null)
                    {
                        setting.BodyContent = true;
                    }

                    XmlNode nodeDescription = doc.ChildNodes[0].SelectSingleNode("Description");
                    if ((nodeDescription != null && Convert.ToBoolean(nodeDescription.InnerText)) || nodeDescription == null)
                    {
                        setting.BodyDescription = true;
                    }

                    XmlNode nodeDateTime = doc.ChildNodes[0].SelectSingleNode("DateTime");
                    if ((nodeDateTime != null && Convert.ToBoolean(nodeDateTime.InnerText)) || nodeDateTime == null)
                    {
                        setting.BodyDatetime = true;
                    }

                    XmlNode nodeHyperLink = doc.ChildNodes[0].SelectSingleNode("HyperLink");
                    if ((nodeHyperLink != null && Convert.ToBoolean(nodeHyperLink.InnerText)) || nodeHyperLink == null)
                    {
                        setting.BodyHyperlink = true;
                    }

                    XmlNode nodeComment = doc.ChildNodes[0].SelectSingleNode("Comment");
                    if ((nodeComment != null && Convert.ToBoolean(nodeComment.InnerText)) || nodeComment == null)
                    {
                        setting.BodyComment = true;
                    }
                    #endregion

                    #region Subject
                    XmlNode nodeFlowName2 = doc.ChildNodes[0].SelectSingleNode("FlowName2");
                    if ((nodeFlowName2 != null && Convert.ToBoolean(nodeFlowName2.InnerText)) || nodeFlowName2 == null)
                    {
                        setting.SubjectFlowName = true;
                    }

                    XmlNode nodeActivityName2 = doc.ChildNodes[0].SelectSingleNode("ActivityName2");
                    if ((nodeActivityName2 != null && Convert.ToBoolean(nodeActivityName2.InnerText)) || nodeActivityName2 == null)
                    {
                        setting.SubjectActivityName = true;
                    }

                    XmlNode nodeDescription2 = doc.ChildNodes[0].SelectSingleNode("Description2");
                    if ((nodeDescription2 != null && Convert.ToBoolean(nodeDescription2.InnerText)) || nodeDescription2 == null)
                    {
                        setting.SubjectDescription = true;
                    }

                    XmlNode nodeSender2 = doc.ChildNodes[0].SelectSingleNode("Sender2");
                    if ((nodeSender2 != null && Convert.ToBoolean(nodeSender2.InnerText)) || nodeSender2 == null)
                    {
                        setting.SubjectSender = true;
                    }

                    XmlNode nodeContent2 = doc.ChildNodes[0].SelectSingleNode("Content2");
                    if ((nodeContent2 != null && Convert.ToBoolean(nodeContent2.InnerText)) || nodeContent2 == null)
                    {
                        setting.SubjectContent = true;
                    }
                    #endregion

                    #region Button
                    XmlNode nodeApproveButton = doc.ChildNodes[0].SelectSingleNode("ApproveButton");
                    if ((nodeApproveButton != null && Convert.ToBoolean(nodeApproveButton.InnerText)))
                    {
                        setting.ButtonApprove = true;
                    }
                    XmlNode nodeReturnButton = doc.ChildNodes[0].SelectSingleNode("ReturnButton");
                    if ((nodeReturnButton != null && Convert.ToBoolean(nodeReturnButton.InnerText)))
                    {
                        setting.ButtonReturn = true;
                    }
                    XmlNode nodeRejectButton = doc.ChildNodes[0].SelectSingleNode("RejectButton");
                    if ((nodeRejectButton != null && Convert.ToBoolean(nodeRejectButton.InnerText)))
                    {
                        setting.ButtonReject = true;
                    }
                    #endregion

                    XmlNode nodeAutoLogin = doc.ChildNodes[0].SelectSingleNode("AutoLogin");
                    if (nodeAutoLogin != null && Convert.ToBoolean(nodeAutoLogin.InnerText))
                    {
                        setting.AutoLogin = true;
                    }
                }

                //not cloud
            }
            return setting;
        }
コード例 #2
0
ファイル: Email.cs プロジェクト: san90279/UK_OAS
        private static string GetButtons(FLInstance flInstance, object[] clientInfo, EmailSetting setting, string userID, IEventWaiting nextFLActivity)
        {
            var buttons = new StringBuilder();
            string webUrl = flInstance.GetWebUrl();
            if (webUrl != null && webUrl != "0" && webUrl.IndexOf("/MainPage_Flow.aspx") > 0)
            {
                var databaseType = Srvtools.DbConnectionSet.GetDbConn((string)((object[])clientInfo[0])[2]).DbType.ToString().Replace("ct", string.Empty);
                webUrl = webUrl.Substring(0, webUrl.IndexOf("/MainPage_Flow.aspx")) + "/FlowEmail.aspx";
                var key = Srvtools.PublicKey.GetEncryptKey(userID, Global.GetUserName(userID, clientInfo), (string)((object[])clientInfo[0])[2], (string)((object[])clientInfo[0])[6], databaseType, (string)((object[])clientInfo[0])[5]);

                buttons.Append("<br/>");
                var listID = flInstance.FLInstanceId.ToString();
                IEventWaiting currentFLActivity = (IEventWaiting)flInstance.CurrentFLActivity;
                string flowPath = (currentFLActivity == null ? string.Empty : currentFLActivity.Name) + ";" + nextFLActivity.Name;
                var titles = SysMsg.GetSystemMessage((SYS_LANGUAGE)(((object[])(clientInfo[0]))[0]), "FLClientControls", "FLNavigator", "NavText").Split(';');
                if (setting.ButtonApprove)
                {
                    var param = EncryptParameters(string.Format("{{\"listID\":\"{0}\", \"type\":\"{1}\", \"flowPath\":\"{2}\"}}", listID, "approve", flowPath), key);
                    buttons.Append(string.Format("<a href='{0}?key={1}&param={2}' style='margin:15px 15px 15px 5px'  target='_blank'>{3}</a>", webUrl, HttpUtility.UrlEncode(key), HttpUtility.UrlEncode(param), titles[17]));
                }
                if (setting.ButtonReturn)
                {
                    var param = EncryptParameters(string.Format("{{\"listID\":\"{0}\", \"type\":\"{1}\", \"flowPath\":\"{2}\"}}", listID, "return", flowPath), key);
                    buttons.Append(string.Format("<a href='{0}?key={1}&param={2}' style='margin:15px'  target='_blank'>{3}</a>", webUrl, HttpUtility.UrlEncode(key), HttpUtility.UrlEncode(param), titles[18]));
                }
                if (setting.ButtonReject)
                {
                    if (nextFLActivity.FLNavigatorMode == FLNavigatorMode.Submit)
                    {
                        var param = EncryptParameters(string.Format("{{\"listID\":\"{0}\", \"type\":\"{1}\", \"flowPath\":\"{2}\"}}", listID, "reject", flowPath), key);
                        buttons.Append(string.Format("<a href='{0}?key={1}&param={2}' style='margin:15px'  target='_blank'>{3}</a>", webUrl, HttpUtility.UrlEncode(key), HttpUtility.UrlEncode(param), titles[19]));
                    }
                }
            }

            return buttons.ToString();
        }