Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        //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);
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        //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);
        }