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 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); }