public static IEnumerable <TRow> Select <TKey, TTable, TDataContext, TRow>(
            this BaseDataSourceView <TKey, TTable, TDataContext, TRow> view,
            StoreReadDataEventArgs e,
            BaseFilterControl <TKey, TTable, TDataContext> filter,
            GridFilters gridFilter,
            BaseGridColumns columns,
            bool sort)
            where TKey : struct
            where TTable : class
            where TDataContext : DataContext, new()
            where TRow : BaseRow, new()
        {
            var dataSourceSelectArguments = new DataSourceSelectArguments(e.Start, e.Limit);

            dataSourceSelectArguments.RetrieveTotalRowCount = true;

            if (sort && e.Sort != null && e.Sort.Length > 0)
            {
                dataSourceSelectArguments.SortExpression = GetSortExpression(columns, e.Sort);
            }

            IEnumerable result = null;

            view.Select(dataSourceSelectArguments, data => { result = data; });
            e.Total = dataSourceSelectArguments.TotalRowCount;

            return(result.Cast <TRow>());
        }
 public static IEnumerable <TRow> Select <TKey, TTable, TDataContext, TRow>(
     this BaseDataSourceView <TKey, TTable, TDataContext, TRow> view,
     StoreReadDataEventArgs e,
     BaseFilterControl <TKey, TTable, TDataContext> filter,
     GridFilters gridFilter,
     BaseGridColumns columns)
     where TKey : struct
     where TTable : class
     where TDataContext : DataContext, new()
     where TRow : BaseRow, new()
 {
     return(Select(view, e, filter, gridFilter, columns, true));
 }
Exemple #3
0
 public static void ReadData <TKey, TTable, TDataContext, TRow>(
     this GridPanel gridPanel,
     BaseDataSourceView <TKey, TTable, TDataContext, TRow> view,
     StoreReadDataEventArgs e,
     BaseFilterControl <TKey, TTable, TDataContext> filter,
     GridFilters gridFilter,
     BaseGridColumns columns)
     where TKey : struct
     where TTable : class
     where TDataContext : DataContext, new()
     where TRow : BaseRow, new()
 {
     gridPanel.GetStore().ReadData <TKey, TTable, TDataContext, TRow>(view, e, filter, gridFilter, columns);
 }
Exemple #4
0
        private void ShowFilterProperties(BaseFilter bf)
        {
            if (FilterProperties != null)
            {
                PanelFilterProperties.Controls.Clear();
                FilterProperties.Hide();
                FilterProperties = null;
            }
            if (bf is IntFilter)
            {
                FilterProperties = new IntFilterControl();
            }
            else if (bf is StringFilter)
            {
                FilterProperties = new StringFilterControl();
            }
            else if (bf is BooleanFilter)
            {
                FilterProperties = new BooleanFilterControl();
            }
            else if (bf is EnumFilter)
            {
                FilterProperties = new EnumFilterControl();
            }
            else if (bf is EnumListFilter)
            {
                FilterProperties = new EnumListFilterControl();
            }
            else if (bf is AbilityListFilter)
            {
                FilterProperties = new AbilityListFilterControl();
            }
            else
            {
                FilterProperties = new BaseFilterControl();
            }

            FilterProperties.FilterUpdate_action = FilterProperties_PropertyValueChanged;
            FilterProperties.SetFilter(bf);
            FilterProperties.Location = new Point(3, 3);

            PanelFilterProperties.Controls.Add(FilterProperties);
            FilterProperties.BringToFront();
            FilterProperties.Show();
        }
Exemple #5
0
        public static void ReadData <TKey, TTable, TDataContext, TRow>(
            this Store store,
            BaseDataSourceView <TKey, TTable, TDataContext, TRow> view,
            StoreReadDataEventArgs e,
            BaseFilterControl <TKey, TTable, TDataContext> filter,
            GridFilters gridFilter,
            BaseGridColumns columns)
            where TKey : struct
            where TTable : class
            where TDataContext : DataContext, new()
            where TRow : BaseRow, new()
        {
            if (filter.Url.UserControl == null)
            {
                filter.Url.UserControl = filter.GetTableName() + "Journal";
            }
            try
            {
                var data = view.Select(e, filter, gridFilter, columns, store.RemoteSort);
                if (!string.IsNullOrEmpty(store.DataSourceID))
                {
                    store.DataSourceID = null;
                }
                store.DataSource = data;
            }
            catch (SqlException exception)
            {
                if (exception.Number != -2)
                {
                    throw;
                }

                store.DataSource = new TRow[0];
                X.Msg.Show(new MessageBoxConfig
                {
                    Title   = Properties.Resources.SInformation,
                    Message = Properties.Resources.STimeOut,
                    Buttons = MessageBox.Button.OK,
                    Icon    = MessageBox.Icon.WARNING,
                });
            }
        }
        public static void SetGridFilters <TKey, TTable, TDataContext, TRow>(
            this GridFilters gridFilter,
            string gridFilterStr,
            BaseFilterControl <TKey, TTable, TDataContext> filter,
            BaseGridColumns columns)
            where TKey : struct
            where TTable : class
            where TDataContext : DataContext, new()
            where TRow : BaseRow, new()
        {
            var conditions = GetFilterValues(gridFilterStr);

            if (conditions == null)
            {
                return;
            }

            filter.Filter += (sender, filterArgs) =>
            {
                var filterColumns = columns.Columns.OfType <GridColumn>().ToDictionary(r => r.ColumnNameIndex);
                foreach (var condition in conditions.Conditions)
                {
                    var filterColumn = filterColumns[condition.Field];
                    if (filterColumn.SetGridFilterHandler != null)
                    {
                        filterColumn.SetGridFilterHandler(filterArgs, condition);
                        continue;
                    }

                    var  property = filterColumn.FilterColumnMapping ?? condition.Field;
                    var  param    = Expression.Parameter(typeof(TTable), "filterExtNet");
                    Type fieldType;
                    var  getValueExp = LinqFilterGenerator.GetProperty(
                        typeof(TTable), property, param, out fieldType);
                    var      values  = GetValue(condition, fieldType);
                    DateTime?dateEnd = null;
                    if (fieldType == typeof(DateTime) || fieldType == typeof(DateTime?))
                    {
                        if (condition.Comparison == Comparison.Eq)
                        {
                            values[0] = ((DateTime)values[0]).Date;
                            dateEnd   = ((DateTime)values[0]).AddDays(1).AddSeconds(-1);
                        }
                        else
                        {
                            dateEnd   = ((DateTime)values[0]).Date;
                            values[0] = ((DateTime)values[0]).Date.AddDays(1).AddSeconds(-1);
                        }
                    }

                    if (filterColumn.IsForeignKey && filterColumn.DataSource != null && !filterColumn.IsLookup &&
                        (fieldType == typeof(long) || fieldType == typeof(long?)) &&
                        condition.Type == FilterType.List)
                    {
                        IEnumerable data      = null;
                        var         strValues = values.Cast <string>().ToDictionary(r => r.ToLower());
                        filterColumn.DataSource.GetView("").Select(new DataSourceSelectArguments(), c => data = c);
                        values = data.Cast <IDataRow>()
                                 .Where(r => strValues.ContainsKey(r.Name.ToLower()))
                                 .Select(r => Convert.ChangeType(r.Value, fieldType))
                                 .ToArray();
                    }

                    Expression expression = null;
                    foreach (var value in values)
                    {
                        var exp3 = dateEnd != null
                                           ? filterArgs.QueryParameters.GetExpression(
                            dateEnd.ToString(), dateEnd, fieldType)
                                           : null;

                        var tempExp = GetExpression(
                            getValueExp,
                            filterArgs.QueryParameters.GetExpression(value.ToString(), value, fieldType),
                            exp3,
                            condition);
                        expression = expression == null ? tempExp : Expression.Or(expression, tempExp);
                    }

                    if (expression != null)
                    {
                        var lambda = Expression.Lambda <Func <TTable, bool> >(expression, param);
                        filterArgs.AddFilter(lambda);
                    }
                }
            };
        }
        public void GetFieldValue_From_FilterTest()
        {
            BaseFilterControl filter = new BaseFilterControl(entityMiniConfigBLO);

            filter.GetFilterValues();
        }
 public void CreateField_In_Filter()
 {
     BaseFilterControl filter = new BaseFilterControl(entityMiniConfigBLO);
 }
        ///  Constructor
        /// </summary>
        /// <param name="BLO">Business OBject Instance</param>
        /// <param name="EntryForm_Instance">Entry Form Instance</param>
        /// <param name="Filter_Instance">Filter Instance</param>
        /// <param name="DataGrid_Instance">DataGrid Instance</param>
        /// <param name="DefaultFilterValues">Default Filter Values</param>
        /// <param name="FrmParent">Mdi Parent Form</param>
        public ManagerFormControl(
            IGwinBaseBLO BLO,
            BaseEntryForm EntryForm_Instance,
            BaseFilterControl Filter_Instance,
            GwinDataGridComponent DataGrid_Instance,
            Dictionary <string, object> DefaultFilterValues,
            Form FrmParent)
        {
            InitializeComponent();



            // Init Properties values
            this.BLO_Instance             = BLO;
            this.EntryForm_Instance       = EntryForm_Instance;
            this.Filter_Instance          = Filter_Instance;
            this.DataGridControl_Instance = DataGrid_Instance;
            this.DefaultFilterValues      = DefaultFilterValues;
            this.FrmParent = FrmParent;

            // Create Entry Form Instance
            if (this.EntryForm_Instance == null)
            {
                if (this.BLO_Instance.ConfigEntity.GwinForm == null)
                {
                    this.EntryForm_Instance = new BaseEntryForm(this.BLO_Instance);
                }
                else
                {
                    this.EntryForm_Instance = (BaseEntryForm)Activator.CreateInstance(this.BLO_Instance.ConfigEntity.GwinForm.FormType, this.BLO_Instance);
                }
            }

            // Create and Init filtre Instance
            if (this.Filter_Instance == null)
            {
                this.Filter_Instance = new BaseFilterControl(this.BLO_Instance, this.DefaultFilterValues);
            }
            this.Filter_Instance.Dock = DockStyle.Fill;
            this.panel_Filtre.Controls.Add(this.Filter_Instance);
            this.Filter_Instance.RefreshEvent += BaseFilterControl_RefreshEvent;

            // Create and Init DataGrid Instance
            if (this.DataGridControl_Instance == null)
            {
                this.DataGridControl_Instance = new GwinDataGridComponent(this.BLO_Instance, this.DefaultFilterValues);
            }
            this.DataGridControl_Instance.Dock = DockStyle.Fill;
            groupBoxDataGrid.Controls.Add(this.DataGridControl_Instance);
            groupBoxDataGrid.CreateControl();
            this.DataGridControl_Instance.EditClick += DataGridControl_EditClick;
            this.DataGridControl_Instance.EditManyToMany_Creation += DataGridControl_ManyToMany_Creation;

            // Create ActionsComponent
            this.ActionsComponent = new ActionsComponent(this);
            ActionsComponent.Dock = DockStyle.Fill;
            this.groupBoxActions.Controls.Add(this.ActionsComponent);



            // Update Titles
            this.Name = nameof(ManagerFormControl) + this.BLO_Instance.TypeEntity.ToString();
            this.Text = this.BLO_Instance.ConfigEntity.ManagementForm.FormTitle;
            this.tabPageAdd.ToolTipText = this.BLO_Instance.ConfigEntity.AddButton.Title;
            this.tabControl_MainManager.TabPages["TabGrid"].Text = this.BLO_Instance.ConfigEntity.ManagementForm.TitrePageGridView;

            // TagAdd Title
            this.tabControl_MainManager.TabPages["tabPageAdd"].Text = Glossary.Add;

            // Selected Tab
            this.tabControl_MainManager.SelectedTab = this.tabControl_MainManager.TabPages["TabGrid"];
        }