Example #1
0
        public static ComboBox CreateFilterCombo(WindowMetaList windowMetaList)
        {
            //Window Filter - Gets the list of filters for the window based on the underlying database table

            ComboBox winFlt = new ComboBox
            {
                Name  = "gridFilter",
                Style = (Style)Application.Current.FindResource("winComboBoxStyle")
            };
            NpgsqlCommand getFltRows = new NpgsqlCommand
            {
                CommandText = ControlDatabaseSql.TableFilterList()
            };

            getFltRows.Parameters.AddWithValue("@applicationTableId", windowMetaList.TableId);
            getFltRows.CommandType = CommandType.Text;
            getFltRows.Connection  = windowMetaList.ControlDb;

            windowMetaList.ControlDb.Open();
            {
                NpgsqlDataAdapter fltAdapter   = new NpgsqlDataAdapter(getFltRows);
                DataTable         fltDataTable = new DataTable();
                fltAdapter.Fill(fltDataTable);
                winFlt.ItemsSource       = fltDataTable.DefaultView;
                winFlt.DisplayMemberPath = fltDataTable.Columns["display_member"].ToString();
                winFlt.SelectedValuePath = fltDataTable.Columns["value_member"].ToString();
            }
            windowMetaList.ControlDb.Close();
            return(winFlt);
        }
Example #2
0
        public static WindowMetaList WinMetadataList(Int32 tabId)
        //Returns the list of metadata values for a window
        {
            NpgsqlConnection controlDb = new NpgsqlConnection(ApplicationEnviroment.ConnectionString("control"));

            WindowMetaList metaList = new WindowMetaList
            {
                //Set the control connections
                ControlDb = controlDb
            };

            //get the table string values
            NpgsqlCommand getTab = new NpgsqlCommand
            {
                CommandText = ControlDatabaseSql.TableMetadata(),
                CommandType = CommandType.Text,
                Connection  = controlDb
            };

            getTab.Parameters.AddWithValue("@tabId", tabId);
            controlDb.Open();

            NpgsqlDataReader getTabReader = getTab.ExecuteReader();

            getTabReader.Read();

            metaList.ApplicationName = getTabReader["application_name"].ToString();
            metaList.TableId         = Convert.ToInt32(getTabReader["application_table_id"]);
            metaList.TableKey        = getTabReader["table_key"].ToString();
            metaList.TableName       = getTabReader["table_name"].ToString();
            metaList.TableLabel      = getTabReader["table_label"].ToString();
            metaList.TableDml        = getTabReader["table_dml"].ToString();
            metaList.TableOrderBy    = getTabReader["table_order_by"].ToString();
            metaList.PageRowCount    = getTabReader["page_row_count"].ToString();
            metaList.SchemaName      = getTabReader["schema_name"].ToString();
            metaList.SchemaLabel     = getTabReader["schema_label"].ToString();

            controlDb.Close();
            //set the application connection
            NpgsqlConnection applicationDb = new NpgsqlConnection(ApplicationEnviroment.ConnectionString(metaList.ApplicationName));

            metaList.ApplicationDb = applicationDb;
            metaList.Columns       = WindowBuildUtils.PopulateColumnMetadata(metaList);

            //metaList.Columns.Add(new ColumMetadata { })


            return(metaList);
        }
Example #3
0
        public static List <ColumMetadata> PopulateColumnMetadata(WindowMetaList windowMetaList)
        {
            List <ColumMetadata> columns = new List <ColumMetadata>();

            NpgsqlCommand getColList = new NpgsqlCommand
            {
                CommandText = ControlDatabaseSql.ColumnMetadata()
            };

            getColList.Parameters.AddWithValue("@applicationTableId", windowMetaList.TableId);
            getColList.CommandType = CommandType.Text;
            getColList.Connection  = windowMetaList.ControlDb;

            windowMetaList.ControlDb.Open();

            NpgsqlDataReader getColListReader = getColList.ExecuteReader();

            if (getColListReader.HasRows)
            {
                while (getColListReader.Read())
                {
                    ColumMetadata column = new ColumMetadata
                    {
                        ColumnName          = getColListReader["column_name"].ToString(),
                        ColumnLabel         = getColListReader["column_label"].ToString(),
                        ColumnRowSource     = getColListReader["row_source"].ToString(),
                        ColumnFilter        = getColListReader["filter"].ToString(),
                        ColumnOrderBy       = getColListReader["order_by"].ToString(),
                        ColumnType          = getColListReader["window_control_type"].ToString(),
                        ColumnEnabled       = getColListReader["window_control_enabled"].ToString(),
                        ColumnDefaultValue  = getColListReader["column_default_value"].ToString(),
                        ColumnRequiredValue = getColListReader["column_required_value"].ToString(),
                        ColumnDescription   = getColListReader["column_description"].ToString(),
                        ColumnValue         = String.Empty
                    };

                    columns.Add(column);
                }
            }
            windowMetaList.ControlDb.Close();

            return(columns);
        }
Example #4
0
        public static void DbGetDataGridRows(Window winNew, WindowMetaList windowMetaList, StackPanel editStkPnl, StackPanel fltStkPnl, DataGrid winDg, Int32 selectedFilter, Dictionary <string, string> controlValues, TextBox tbOffset, TextBox tbSelectorText)
        //Fills the form data grid with the filter applied
        {
            DataTable winDt = new DataTable();

            string sqlPart;
            Int32  sqlParam = windowMetaList.TableId;

            string sqlTxt = windowMetaList.TableDml;


            //Append filter where clause to the end of DML
            if (selectedFilter == 0) //Default filter selected
            {
                sqlPart = ControlDatabaseSql.TableFilterDefault();
            }
            else //Custom filter selected
            {
                sqlParam = selectedFilter;
                sqlPart  = ControlDatabaseSql.TableFilterSelected();
            }

            //Set Filter
            windowMetaList.TableFilter = WindowDataOps.SubstituteWindowParameters(WindowDataOps.WinDataGridGetBaseSql(sqlPart, sqlParam, windowMetaList), controlValues);

            sqlParam = windowMetaList.TableId;


            //Set order by
            string sqlOrderBy = windowMetaList.TableOrderBy;

            //Build where clause with replacement values for |COLUMN_NAME| parameters
            sqlTxt = sqlTxt + " WHERE " + windowMetaList.TableFilter;

            //Save SQl for counting rows
            string sqlCountText = sqlTxt;

            //Add Order by
            sqlTxt = sqlTxt + " ORDER BY " + sqlOrderBy + " OFFSET " + tbOffset.Text + " ROWS FETCH NEXT " + windowMetaList.PageRowCount + " ROWS ONLY";

            try
            {
                windowMetaList.ControlDb.Open();
                windowMetaList.ApplicationDb.Open();
                {
                    //Run the SQL cmd to return SQL that fills DataGrid
                    NpgsqlCommand execTabSql = windowMetaList.ApplicationDb.CreateCommand();
                    execTabSql.CommandText = sqlTxt;

                    //Create an adapter and fill the grid using sql and adapater
                    NpgsqlDataAdapter winDa = new NpgsqlDataAdapter(execTabSql);
                    winDa.Fill(winDt);
                    winDg.ItemsSource = winDt.DefaultView;

                    //set the page counter
                    Int32 rowCount = 0;

                    Int32 chrStart = sqlCountText.IndexOf("SELECT") + 6;
                    Int32 chrEnd   = sqlCountText.IndexOf("FROM");

                    sqlTxt = sqlCountText.Substring(0, chrStart) + "  COUNT(*) " + sqlCountText.Substring(chrEnd);
                    NpgsqlCommand countRows = new NpgsqlCommand(sqlTxt, windowMetaList.ApplicationDb);
                    rowCount = Convert.ToInt32(countRows.ExecuteScalar());
                    Int32 pageSize = Convert.ToInt32(windowMetaList.PageRowCount);
                    Int32 offSet   = Convert.ToInt32(tbOffset.Text);

                    string pageCount  = Convert.ToString((rowCount / pageSize) + 1);
                    string pageNumber = Convert.ToString((offSet / pageSize) + 1);

                    tbSelectorText.Text = "Page " + pageNumber + " of " + pageCount;

                    windowMetaList.ControlDb.Close();
                    windowMetaList.ApplicationDb.Close();
                }
            }
            catch (Exception ex)
            {
                WindowTasks.DisplayError(ex, "ERROR in DataGrid SQL:" + ex.Message, sqlTxt);
                windowMetaList.ControlDb.Close();
                windowMetaList.ApplicationDb.Close();
            }
        }
Example #5
0
        public static DataTable WinPopulateCombo(ComboBox cb, WindowMetaList windowMetaList, string colname, Dictionary <string, string> controlValues)
        //Populates a combo box
        {
            NpgsqlCommand getColList   = new NpgsqlCommand();
            NpgsqlCommand getComboRows = new NpgsqlCommand();

            DataTable comboDataTable = new DataTable();

            string controlName;
            string controlLabel;
            string controlRowSource;
            string controlFilter;
            string controlOrderBy;
            string controlType;
            string controlEnabled;
            string controlDefaultvalue;

            getColList.CommandText = ControlDatabaseSql.ColumnMetadataForColumn();

            getColList.Parameters.AddWithValue("@applicationTableId", windowMetaList.TableId);
            getColList.Parameters.AddWithValue("@colname", colname);
            getColList.CommandType = CommandType.Text;
            getColList.Connection  = windowMetaList.ControlDb;
            try
            {
                windowMetaList.ControlDb.Open();
                {
                    NpgsqlDataReader getColListReader = getColList.ExecuteReader();
                    getColListReader.Read();
                    controlName         = getColListReader["column_name"].ToString();
                    controlLabel        = getColListReader["column_label"].ToString();
                    controlRowSource    = getColListReader["row_source"].ToString();
                    controlFilter       = getColListReader["filter"].ToString();
                    controlOrderBy      = getColListReader["order_by"].ToString();
                    controlType         = getColListReader["window_control_type"].ToString();
                    controlEnabled      = getColListReader["window_control_enabled"].ToString();
                    controlDefaultvalue = getColListReader["column_default_value"].ToString();
                }
                windowMetaList.ControlDb.Close();

                if (controlOrderBy == string.Empty)
                {
                    controlOrderBy = "\nORDER BY 1";
                }
                else
                {
                    controlOrderBy = "\nORDER BY " + controlOrderBy;
                }

                controlRowSource += controlOrderBy;
                controlRowSource  = WindowDataOps.SubstituteWindowParameters(controlRowSource, controlValues);

                getComboRows.CommandText = controlRowSource;
                getComboRows.CommandType = CommandType.Text;
                getComboRows.Connection  = windowMetaList.ApplicationDb;
            }
            catch (Exception ex)
            {
                WindowTasks.DisplayError(ex, "ERROR Reading Data:" + ex.Message, getColList.CommandText);
                windowMetaList.ControlDb.Close();
            }
            try
            {
                windowMetaList.ApplicationDb.Open();
                {
                    NpgsqlDataAdapter comboAdapter = new NpgsqlDataAdapter(getComboRows);

                    comboAdapter.Fill(comboDataTable);
                    cb.ItemsSource       = comboDataTable.DefaultView;
                    cb.DisplayMemberPath = comboDataTable.Columns["display_member"].ToString();
                    cb.SelectedValuePath = comboDataTable.Columns["value_member"].ToString();
                }
                windowMetaList.ApplicationDb.Close();
                return(comboDataTable);
            }
            catch (Exception ex)
            {
                WindowTasks.DisplayError(ex, "ERROR Filling Combo:" + ex.Message, getColList.CommandText);
                windowMetaList.ApplicationDb.Close();
                return(comboDataTable);
            }
        }