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; }
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}¶m={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}¶m={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}¶m={2}' style='margin:15px' target='_blank'>{3}</a>", webUrl, HttpUtility.UrlEncode(key), HttpUtility.UrlEncode(param), titles[19])); } } } return buttons.ToString(); }