public void SaveAndLoadColumnsConfigurationControllerTest()
        {
            ColumnsConfigurationController target = new ColumnsConfigurationController();
            target.FileName = "abc.xml";
            target.LoadColumnsConfigurationController();
            Assert.IsNotNull(target.ColumnsConfig);
            Assert.AreEqual(0, target.ColumnsConfig.Count);

            target.FileName = string.Empty;
            string gridName = "DGTest1";
            AutofilterDataGrid dgGrid = new AutofilterDataGrid();

            DataGridTextColumn dgCol1 = new DataGridTextColumn();
            dgCol1.Width = 100.00;
            dgCol1.SortMemberPath = "Col1";
            dgCol1.DisplayIndex = 0;
            dgCol1.Visibility = Visibility.Visible;

            DataGridTextColumn dgCol2 = new DataGridTextColumn();
            dgCol2.Width = 100.00;
            dgCol2.SortMemberPath = "Col1";
            dgCol2.DisplayIndex = 1;
            dgCol2.Visibility = Visibility.Visible;

            dgGrid.Columns.Add(dgCol1);
            dgGrid.Columns.Add(dgCol2);

            target.ColumnsConfig = new List<ColumnsConfigInfo>();
            target.SetColumnsConfigurationList(gridName, dgGrid);

            target.BaseDirectory = System.IO.Directory.GetCurrentDirectory();
            target.Save();

            ColumnsConfigurationController target2 = new ColumnsConfigurationController();
            target2.LoadColumnsConfigurationController();

            Assert.AreEqual(target.ColumnsConfig.Count, target2.ColumnsConfig.Count);
        }
        public void SetColumnsConfigurationListTest()
        {
            string gridName = "DGTest1";
            AutofilterDataGrid dgGrid = new AutofilterDataGrid();

            DataGridTextColumn dgCol1 = new DataGridTextColumn();
            dgCol1.Width = 100.00;
            dgCol1.SortMemberPath = "Col1";
            dgCol1.DisplayIndex = 0;
            dgCol1.Visibility = Visibility.Visible;

            DataGridTextColumn dgCol2 = new DataGridTextColumn();
            dgCol2.Width = 100.00;
            dgCol2.SortMemberPath = "Col1";
            dgCol2.DisplayIndex = 1;
            dgCol2.Visibility = Visibility.Visible;

            dgGrid.Columns.Add(dgCol1);
            dgGrid.Columns.Add(dgCol2);

            ColumnsConfigurationController target = new ColumnsConfigurationController();
            target.ColumnsConfig = new List<ColumnsConfigInfo>();
            target.SetColumnsConfigurationList(gridName, dgGrid);

            Assert.AreEqual(dgGrid.Columns.Count, target.ColumnsConfig.Count);

            Assert.AreEqual(dgCol1.SortMemberPath, target.ColumnsConfig[0].ColumnSortMemberPath);
            Assert.AreEqual(dgCol2.SortMemberPath, target.ColumnsConfig[1].ColumnSortMemberPath);

            Assert.AreEqual(dgCol1.DisplayIndex, target.ColumnsConfig[0].ColumnDisplayIndex);
            Assert.AreEqual(dgCol2.DisplayIndex, target.ColumnsConfig[1].ColumnDisplayIndex);

            //Re set columns, so the old columns will remove and then set again.
            target.SetColumnsConfigurationList(gridName, dgGrid);

            Assert.AreEqual(dgGrid.Columns.Count, target.ColumnsConfig.Count);

            Assert.AreEqual(dgCol1.SortMemberPath, target.ColumnsConfig[0].ColumnSortMemberPath);
            Assert.AreEqual(dgCol2.SortMemberPath, target.ColumnsConfig[1].ColumnSortMemberPath);

            Assert.AreEqual(dgCol1.DisplayIndex, target.ColumnsConfig[0].ColumnDisplayIndex);
            Assert.AreEqual(dgCol2.DisplayIndex, target.ColumnsConfig[1].ColumnDisplayIndex);
        }
        public virtual void SetColumnsConfigurationList(string gridName, AutofilterDataGrid dgGrid)
        {
            LogUtil.WriteLog(LogLevel.DEBUG, "SetColumnsConfigurationList started");

            ColumnsConfig.RemoveAll(col => col.GridName== gridName);
            foreach (DataGridColumn col in dgGrid.Columns)
            {
                ColumnsConfig.Add(new ColumnsConfigInfo()
                {
                    GridName = gridName,
                    ColumnWidth = new ColumnWidth(col.ActualWidth),
                    ColumnDisplayIndex = col.DisplayIndex,
                    //ColumnHeader = col.Header.ToString(),
                    ColumnSortMemberPath = col.SortMemberPath,
                    ColumnVisibility = col.Visibility
                });
            }

            LogUtil.WriteLog(LogLevel.DEBUG, "SetColumnsConfigurationList finished");
        }