private static XmlDocument GetTransactions(OracleConnection connection, XmlNode apiNode) { XmlDocument doc = apiNode.OwnerDocument; XmlElement transactionsRoot = doc.CreateElement("Transactions"); OracleQueryBuilder transactionQuery = new OracleQueryBuilder("IFSAPP"); transactionQuery.AddSelect("TRANSACTION", "", "", "", ""); transactionQuery.AddSelect("API", "", "", "", ""); transactionQuery.AddFrom("ESI_SW_TRANSACTIONS"); using (OracleDataReader reader = transactionQuery.Execute(connection)) { while (reader.Read()) { XmlText value; XmlElement transactionElement = doc.CreateElement("Transaction"); XmlElement transactionNameElement = doc.CreateElement("TRANSACTION_NAME"); value = doc.CreateTextNode(reader.GetString(0)); transactionNameElement.AppendChild(value); transactionElement.AppendChild(transactionNameElement); XmlElement apiNameElement = doc.CreateElement("API_NAME"); value = doc.CreateTextNode(reader.GetString(1)); apiNameElement.AppendChild(value); transactionElement.AppendChild(apiNameElement); transactionsRoot.AppendChild(transactionElement); } } XmlNodeList parameters = apiNode.ChildNodes; bool found = false; for (int i = 0; (i < parameters.Count) && !found; i += 1) { for (int j = 0; (j < parameters[i].Attributes.Count) && !found; j += 1) { XmlAttribute attribute = parameters[i].Attributes[j]; if (attribute.Value.Equals("transactions_")) { found = true; string result = transactionsRoot.OuterXml; doc = apiNode.OwnerDocument; XmlText resultNode = doc.CreateTextNode(result); parameters[i].AppendChild(resultNode); } } } return(doc); }
private static XmlDocument GetMenu(OracleConnection connection, XmlNode apiNode, IfsProperties ifsProperties) { XmlNodeList parameters = apiNode.ChildNodes; XmlNode menuDoc = null; string menuName = ifsProperties.DefaultMenu; for (int i = 0; (i < parameters.Count); i += 1) { for (int j = 0; (j < parameters[i].Attributes.Count); j += 1) { XmlAttribute attribute = parameters[i].Attributes[j]; switch (attribute.Value) { case "menu_doc_": menuDoc = parameters[i]; break; case "menu_name_": menuName = ((XmlText)parameters[i].FirstChild).Value; ifsProperties.CurrentMenu = menuName; break; } } } OracleQueryBuilder menuQuery = new OracleQueryBuilder(ifsProperties.AppOwner); // menuQuery.AddSelect("PROMPT", "", "", "", ""); menuQuery.AddFrom("ESI_SW_MENU_SYSTEM"); menuQuery.AddSelect("PROMPT", "", "", "", ""); menuQuery.AddSelect("TRANSACTION", "", "", "", ""); // menuQuery.AddSelect("API", "", "", "", ""); menuQuery.AddSelect("SUBMENU", "", "", "", ""); menuQuery.AddSelect("ICON", "", "", "", ""); // menuQuery.AddFrom("ESI_SW_MENU_SYSTEM"); menuQuery.AddWhere("CONTRACT", ifsProperties.DefaultContract, "=", "", false, ""); menuQuery.AddWhere("MENU_NAME", menuName, "=", "", false, ""); menuQuery.AddOrder("RANK", "", ""); /* * using (OracleCommand cmd = connection.CreateCommand()) * { * cmd.CommandText = "select prompt, transaction_name, submenu, icon from esi_scanworks_menus_tab where menu_name = :menuName order by rank"; * cmd.6t0.Add("menuName", OracleType.VarChar).Value = menuName; */ bool noEscapeItem = true; using (OracleDataReader reader = menuQuery.Execute(connection)) { IfsMenuItem.MenuItemRecord menuItemRecord = new IfsMenuItem.MenuItemRecord(); while (reader.Read()) { menuItemRecord.Prompt = reader.GetString(0); menuItemRecord.TransactionName = reader.GetString(1); menuItemRecord.Api = reader.GetString(1); menuItemRecord.SubMenu = reader.GetString(2); menuItemRecord.Icon = reader.GetOracleLob(3); XmlElement menuItem = IfsMenuItem.BuildElement(menuItemRecord, apiNode.OwnerDocument, connection); menuDoc.AppendChild(menuItem); if (menuItemRecord.TransactionName.Equals("LOGOFF") || menuItemRecord.TransactionName.Equals("RETURN")) { noEscapeItem = false; } } } if (noEscapeItem) { OracleQueryBuilder iconQuery = new OracleQueryBuilder(ifsProperties.AppOwner); // menuQuery.AddSelect("PROMPT", "", "", "", ""); iconQuery.AddFrom("ESI_SW_ICONS"); iconQuery.AddSelect("ICON_FILE", "", "", "", ""); iconQuery.AddWhere("ICON", "ShutDown", "=", "", false, ""); using (OracleDataReader reader = iconQuery.Execute(connection)) { IfsMenuItem.MenuItemRecord menuItemRecord = new IfsMenuItem.MenuItemRecord(); while (reader.Read()) { menuItemRecord.Prompt = "Logoff"; menuItemRecord.TransactionName = "LOGOFF"; menuItemRecord.Api = "LOGOFF"; menuItemRecord.SubMenu = "*"; menuItemRecord.Icon = reader.GetOracleLob(0); XmlElement menuItem = IfsMenuItem.BuildElement(menuItemRecord, apiNode.OwnerDocument, connection); menuDoc.AppendChild(menuItem); } } /* * iconQuery = new OracleQueryBuilder(ifsProperties.AppOwner); * * iconQuery.AddFrom("ESI_SW_ICONS"); * iconQuery.AddSelect("ICON", "", "", "", ""); * iconQuery.AddWhere("ICON_NAME", "ShutDown", "=", "", false, ""); * * using (OracleDataReader reader = menuQuery.Execute(connection)) * { * IfsMenuItem.MenuItemRecord menuItemRecord = new IfsMenuItem.MenuItemRecord(); * * while (reader.Read()) * { * * menuItemRecord.Prompt = "Logoff"; * menuItemRecord.TransactionName = "LOGOFF"; * menuItemRecord.Api = "Logoff"; * menuItemRecord.SubMenu = ""; * menuItemRecord.Icon = reader.GetOracleLob(3); * * XmlElement menuItem = IfsMenuItem.BuildElement(menuItemRecord, apiNode.OwnerDocument, connection); * * menuDoc.AppendChild(menuItem); * * } * }*/ } // } return(apiNode.OwnerDocument); }
//Constructor to create an initializer based on IFS transaction field values in the database and then sets //the transaction fields to these values public IfsTransactions(OracleConnection connection, IfsProperties ifsProperties) { Initalizer = new Dictionary <string, Transaction>(); Transactions = new Dictionary <string, Transaction>(); //Build a query to get transaction fields OracleQueryBuilder TransactionsQuery = new OracleQueryBuilder(ifsProperties.AppOwner); //Add Table to Select From TransactionsQuery.AddFrom("ESI_SW_TRANSACTIONS"); //Add Fields to Select TransactionsQuery.AddSelect("TRANSACTION", "", "", "ESI_SW_TRANSACTIONS", ""); //0 TransactionsQuery.AddSelect("TITLE", "", "", "ESI_SW_TRANSACTIONS", ""); //1 TransactionsQuery.AddSelect("DESCRIPTION", "", "", "ESI_SW_TRANSACTIONS", ""); //2 TransactionsQuery.AddSelect("PACKAGE", "", "", "ESI_SW_TRANSACTIONS", ""); //3 TransactionsQuery.AddSelect("API", "", "", "ESI_SW_TRANSACTIONS", ""); //4 TransactionsQuery.AddSelect("VERSION", "", "", "ESI_SW_TRANSACTIONS", ""); //5 //Execute the query using (OracleDataReader results = TransactionsQuery.Execute(connection)) { while (results.Read()) { if (!results.IsDBNull(0)) { TransactionCount++; //Create a field to store the values for each row Transaction transaction = new Transaction(); //Set the field hierarchy to the value from the hierarchy // field.Hierarchy = Hierarchy.IndexOf(results.GetString(0)); //Add row values to the field transaction.Id = results.GetString(0) ?? ""; transaction.Title = results.GetString(1) ?? ""; transaction.Description = results.GetString(2) ?? ""; transaction.Package = results.GetString(3) ?? ""; transaction.Api = results.GetString(4) ?? ""; transaction.Version = results.GetString(5) ?? ""; transaction.Licensed = false; //Add each field to the initializer Initalizer.Add(transaction.Id, transaction); } } } /* //Add System Transactions * Initalizer.Add("esi_scanworks_settings", AddSystemTransaction("esi_scanworks_settings")); * Initalizer.Add("esi_scanworks_logon", AddSystemTransaction("esi_scanworks_logon")); * Initalizer.Add("esi_scanworks_menu", AddSystemTransaction("esi_scanworks_menu")); * Initalizer.Add("esi_scanworks_lov", AddSystemTransaction("esi_scanworks_lov")); * Initalizer.Add("esi_scanworks_interface", AddSystemTransaction("esi_scanworks_interface")); * Initalizer.Add("esi_scanworks_dialog_message", AddSystemTransaction("esi_scanworks_dialog_message")); */ //Initalize the transaction fields to the intializer values Transactions = InitializeTransactions(Initalizer); }
private XmlDocument Login(XmlNode apiNode) { XmlDocument result = new XmlDocument(); XmlNodeList parameters = apiNode.ChildNodes; string userName = ""; string password = ""; foreach (XmlNode parameter in parameters) { if (parameter.Attributes.Count > 0) { XmlAttribute parameterName = parameter.Attributes[0]; switch (parameterName.Value) { case "username_": userName = ((XmlText)parameter.FirstChild).Value; break; case "password_": password = ((XmlText)parameter.FirstChild).Value; break; } } } /* using (OracleCommand cmd = connection.CreateCommand()) * { * * cmd.CommandText = "select default_site, menu_name, printer_no from esi_scanworks_users_tab where identity = :identity and password = :password"; * cmd.Parameters.Add("identity", OracleType.VarChar).Value = userName; * cmd.Parameters.Add("password", OracleType.VarChar).Value = password; */ OracleQueryBuilder userQuery = new OracleQueryBuilder(ifsProperties.AppOwner); userQuery.AddFrom("ESI_SW_USERS"); userQuery.AddSelect("CONTRACT", "CONTRACT", "DISTINCT", "", ""); userQuery.AddSelect("MENU_NAME", "MENU_NAME", "", "", ""); userQuery.AddWhere("IDENTITY", userName, "=", "", false, ""); userQuery.AddWhere("PASSWORD", password, "=", "", false, ""); using (OracleDataReader reader = userQuery.Execute(connection)) { if (reader.Read()) { ifsProperties.Username = userName; ifsProperties.DefaultContract = reader.GetString(0); ifsProperties.Contract = ifsProperties.DefaultContract; ifsProperties.DefaultMenu = reader.GetString(1); ifsProperties.CurrentMenu = reader.GetString(1); ifsProperties.Printer = ""; /* * if (reader.IsDBNull(2)) * { * ifsProperties.Printer = ""; * } * else * { * ifsProperties.Printer = reader.GetString(2); * } * * IfsLogin.PackageLogon(connection, userName, password); */ createLog("Logon User", "A", userName); } else { createLog("Invalid Logon", "E", ""); throw new Exception("Invalid Logon"); } } // } // If sucessful, the format of the response does not matter. XmlNode status = result.CreateElement("Success"); result.AppendChild(status); return(result); }
//Constructor to create an initializer based on IFS transaction field values in the database and then sets //the transaction fields to these values public IfsFields(OracleConnection connection, string transaction, IfsProperties ifsProperties) { Hierarchy = new List <string>(); Initalizer = new Dictionary <string, IfsField>(); Fields = new Dictionary <string, IfsField>(); //Build a query to get transaction fields OracleQueryBuilder fieldsQuery = new OracleQueryBuilder(ifsProperties.AppOwner); //Add Table to Select From fieldsQuery.AddFrom("ESI_SW_TRANSACTION_SYSTEM"); //Add Fields to Select fieldsQuery.AddSelect("FIELD_ID", "", "", "ESI_SW_TRANSACTION_SYSTEM", ""); //0 fieldsQuery.AddSelect("PROMPT", "", "", "ESI_SW_TRANSACTION_SYSTEM", ""); //1 fieldsQuery.AddSelect("FIELD_NAME", "", "", "ESI_SW_TRANSACTION_SYSTEM", ""); //2 fieldsQuery.AddSelect("DEFAULT_VALUE", "", "", "ESI_SW_TRANSACTION_SYSTEM", ""); //3 fieldsQuery.AddSelect("MAX_LENGTH", "", "", "ESI_SW_TRANSACTION_SYSTEM", ""); //4 fieldsQuery.AddSelect("READ_ONLY", "", "", "ESI_SW_TRANSACTION_SYSTEM", ""); //5 fieldsQuery.AddSelect("UPPERCASE", "", "", "ESI_SW_TRANSACTION_SYSTEM", ""); //6 fieldsQuery.AddSelect("HAS_UOM", "", "", "ESI_SW_TRANSACTION_SYSTEM", ""); //7 fieldsQuery.AddSelect("LOV", "", "", "ESI_SW_TRANSACTION_SYSTEM", ""); //8 fieldsQuery.AddSelect("LOV_PROMPT", "", "", "ESI_SW_TRANSACTION_SYSTEM", ""); //9 fieldsQuery.AddSelect("LOV_ON_ENTRY", "", "", "ESI_SW_TRANSACTION_SYSTEM", ""); //10 fieldsQuery.AddSelect("LOV_READ_ONLY", "", "", "ESI_SW_TRANSACTION_SYSTEM", ""); //11 fieldsQuery.AddSelect("CONFIGURABLE", "", "", "ESI_SW_TRANSACTION_SYSTEM", ""); //12 fieldsQuery.AddSelect("LOOKUP_TABLE", "", "", "ESI_SW_TRANSACTION_SYSTEM", ""); //13 fieldsQuery.AddSelect("ENABLED", "", "", "ESI_SW_TRANSACTION_SYSTEM", ""); //14 fieldsQuery.AddSelect("TRANSACTION", "", "", "ESI_SW_TRANSACTION_SYSTEM", ""); //15 fieldsQuery.AddSelect("TITLE", "", "", "ESI_SW_TRANSACTION_SYSTEM", ""); //16 fieldsQuery.AddSelect("API", "", "", "ESI_SW_TRANSACTION_SYSTEM", ""); //17 //Add Query Criteria fieldsQuery.AddWhere("TRANSACTION", transaction, "=", "ESI_SW_TRANSACTION_SYSTEM", false, ""); //Add Query Sorting fieldsQuery.AddOrder("HIERARCHY", "ESI_SW_TRANSACTION_SYSTEM", ""); //Execute the query OracleDataReader results = fieldsQuery.Execute(connection); while (results.Read()) { if (!results.IsDBNull(0)) { FieldCount++; //Add each row to the Hierarchy in order Hierarchy.Add(results.GetString(0)); //Create a field to store the values for each row IfsField field = new IfsField(); //Set the field hierarchy to the value from the hierarchy // field.Hierarchy = Hierarchy.IndexOf(results.GetString(0)); //Add row values to the field field.Hierarchy = FieldCount; field.FieldID = GetSafeDBString(results, 0) ?? ""; field.Prompt = GetSafeDBString(results, 1) ?? ""; field.FieldName = GetSafeDBString(results, 2) ?? ""; field.DefaultValue = GetSafeDBString(results, 3) ?? ""; field.MaxLength = GetSafeDBString(results, 4) ?? "-1"; field.ReadOnly = results.GetString(5) == "Y" ? true : false; field.Uppercase = results.GetString(6) == "Y" ? true : false; field.HasUom = results.GetString(7) == "Y" ? true : false; field.Lov = GetSafeDBString(results, 8) ?? ""; field.LovPrompt = GetSafeDBString(results, 9) ?? ""; field.LovOnEntry = results.GetString(10) == "Y" ? true : false; field.LovReadOnly = results.GetString(11) == "Y" ? true : false; field.Configurable = results.GetString(12) == "Y" ? true : false; field.Table = GetSafeDBString(results, 13) ?? ""; field.Enabled = results.GetString(14) == "Y" ? true : false; field.Transaction = GetSafeDBString(results, 15) ?? ""; field.TransactionTitle = GetSafeDBString(results, 16) ?? ""; field.API = GetSafeDBString(results, 17) ?? ""; field.Value = ""; //Add each field to the initializer Initalizer.Add(field.FieldID, field); } } //Initalize the transaction fields to the intializer values Fields = InitializeFields(Initalizer); }