//Initializes transaction fields with intial field values from the database. public Dictionary <string, IfsField> InitializeFields(Dictionary <string, IfsField> initialFields) { Dictionary <string, IfsField> fields = new Dictionary <string, IfsField>(); foreach (KeyValuePair <string, IfsField> initialField in initialFields) { IfsField field = new IfsField(); field.Hierarchy = initialField.Value.Hierarchy; field.FieldID = initialField.Value.FieldID; field.Prompt = initialField.Value.Prompt; field.FieldName = initialField.Value.FieldName; field.DefaultValue = initialField.Value.DefaultValue; field.MaxLength = initialField.Value.MaxLength; field.ReadOnly = initialField.Value.ReadOnly; field.Uppercase = initialField.Value.Uppercase; field.HasUom = initialField.Value.HasUom; field.Lov = initialField.Value.Lov; field.LovPrompt = initialField.Value.LovPrompt; field.LovOnEntry = initialField.Value.LovOnEntry; field.LovReadOnly = initialField.Value.LovReadOnly; field.Table = initialField.Value.Table; field.Configurable = initialField.Value.Configurable; field.Enabled = initialField.Value.Enabled; field.Transaction = initialField.Value.Transaction; field.TransactionTitle = initialField.Value.TransactionTitle; field.API = initialField.Value.API; field.Value = initialField.Value.Value; fields.Add(field.FieldID, field); } //Set iteration values FirstFieldID = initialFields.Values.Single(x => x.Hierarchy.Equals(1)).FieldID; LastFieldID = initialFields.Values.Single(x => x.Hierarchy.Equals(FieldCount)).FieldID; return(fields); }
//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); }