Esempio n. 1
0
        private void InitializeComponent()
        {
            AvaloniaXamlLoader.Load(this);
            this.FindControl <Button>("FullCheck").Click += async(sender, e) =>
            {
                if ((Load?.Status ?? TaskStatus.Created) == TaskStatus.Running)
                {
                    cts.Cancel();
                }
                else
                {
                    cts = new CancellationTokenSource();

                    Button FC = sender as Button;
                    FC.Content = "Stop Full Check";
                    Load       = Task.Run(LoadFullCheck, cts.Token);

                    Page.Value = 0;
                    Page.GetType()?.GetField("EventHandlers")?.SetValue(Page, null);
                    Page.ValueChanged += (sender2, e2) => ChangeList();

                    await Task.Delay(200);

                    ChangeList();

                    await Load;

                    FC.Content = "Full Check";
                }
            };
            this.FindControl <Button>("Export").Click += async(sender, e) =>
            {
                FullCheck header = new FullCheck();
                foreach (System.Reflection.PropertyInfo prop in header.GetType().GetProperties())
                {
                    prop.SetValue(header, prop.Name);
                }

                IEnumerable <string> exportList = ((ArrayList)FullCheckData.Clone()).OfType <FullCheck>().Prepend(header).Select(x => string.Join(',', x.GetType().GetProperties().Select(y => y.GetValue(x).ToString()))).Distinct();

                SaveFileDialog saveFileDialog = new SaveFileDialog();
                saveFileDialog.DefaultExtension = "csv";
                saveFileDialog.Filters.Add(new FileDialogFilter()
                {
                    Name = "CSV", Extensions = new List <string>()
                    {
                        "csv"
                    }
                });
                string path = await saveFileDialog.ShowAsync(this);

                if (!string.IsNullOrWhiteSpace(path))
                {
                    await File.AppendAllLinesAsync(path, exportList);
                }
            };
            Page = this.FindControl <NumericUpDown>("Page");
            Max  = this.FindControl <TextBlock>("Max");
        }
Esempio n. 2
0
        private void ChangeList()
        {
            Controls resultList = this.FindControl <WrapPanel>("Results").Children;

            resultList.Clear();
            GC.Collect();
            IEnumerable <FullCheck> ConvertedList = ((ArrayList)FullCheckData.Clone()).OfType <FullCheck>().Distinct();

            Page.Maximum = (ConvertedList.Count() / 20);
            if (Page.Maximum == 0)
            {
                Page.Maximum++;
            }
            Max.Text = Page.Maximum.ToString();

            FullCheck header = new FullCheck();

            foreach (System.Reflection.PropertyInfo prop in header.GetType().GetProperties())
            {
                prop.SetValue(header, prop.Name);
            }

            AddRow(this.FindControl <Grid>("ResultsGrid").Children, header);

            foreach (FullCheck item in ConvertedList.Skip((Convert.ToInt32(Page.Value) - 1) * 20).Take(20))
            {
                AddRow(resultList, item);
            }

            void AddRow(Controls list, FullCheck item)
            {
                Border border = new Border
                {
                    BorderBrush     = Brushes.Black,
                    BorderThickness = new Thickness(1)
                };

                list.Add(border);

                Grid grid = new Grid();

                border.Child = grid;

                grid.ColumnDefinitions.Add(new ColumnDefinition(12, GridUnitType.Pixel));
                grid.ColumnDefinitions.Add(new ColumnDefinition(120, GridUnitType.Pixel)); //1
                grid.ColumnDefinitions.Add(new ColumnDefinition(12, GridUnitType.Pixel));
                grid.ColumnDefinitions.Add(new ColumnDefinition(120, GridUnitType.Pixel)); //3
                grid.ColumnDefinitions.Add(new ColumnDefinition(12, GridUnitType.Pixel));
                grid.ColumnDefinitions.Add(new ColumnDefinition(120, GridUnitType.Pixel)); //5
                grid.ColumnDefinitions.Add(new ColumnDefinition(12, GridUnitType.Pixel));
                grid.ColumnDefinitions.Add(new ColumnDefinition(120, GridUnitType.Pixel)); //7
                grid.ColumnDefinitions.Add(new ColumnDefinition(12, GridUnitType.Pixel));
                grid.ColumnDefinitions.Add(new ColumnDefinition(120, GridUnitType.Pixel)); //9
                grid.ColumnDefinitions.Add(new ColumnDefinition(12, GridUnitType.Pixel));
                grid.ColumnDefinitions.Add(new ColumnDefinition(120, GridUnitType.Pixel)); //11
                grid.ColumnDefinitions.Add(new ColumnDefinition(12, GridUnitType.Pixel));
                grid.ColumnDefinitions.Add(new ColumnDefinition(120, GridUnitType.Pixel)); //13
                grid.ColumnDefinitions.Add(new ColumnDefinition(12, GridUnitType.Pixel));
                grid.ColumnDefinitions.Add(new ColumnDefinition(120, GridUnitType.Pixel)); //15
                grid.ColumnDefinitions.Add(new ColumnDefinition(12, GridUnitType.Pixel));
                grid.ColumnDefinitions.Add(new ColumnDefinition(120, GridUnitType.Pixel)); //17
                grid.ColumnDefinitions.Add(new ColumnDefinition(12, GridUnitType.Pixel));
                grid.ColumnDefinitions.Add(new ColumnDefinition(120, GridUnitType.Pixel)); //19
                grid.ColumnDefinitions.Add(new ColumnDefinition(12, GridUnitType.Pixel));
                grid.ColumnDefinitions.Add(new ColumnDefinition(120, GridUnitType.Pixel)); //21
                grid.ColumnDefinitions.Add(new ColumnDefinition(12, GridUnitType.Pixel));
                grid.ColumnDefinitions.Add(new ColumnDefinition(1, GridUnitType.Auto));    //23
                grid.ColumnDefinitions.Add(new ColumnDefinition(12, GridUnitType.Pixel));

                grid.RowDefinitions.Add(new RowDefinition(12, GridUnitType.Pixel));
                grid.RowDefinitions.Add(new RowDefinition(1, GridUnitType.Auto));
                grid.RowDefinitions.Add(new RowDefinition(12, GridUnitType.Pixel));
                grid.RowDefinitions.Add(new RowDefinition(1, GridUnitType.Auto));
                grid.RowDefinitions.Add(new RowDefinition(12, GridUnitType.Pixel));
                grid.RowDefinitions.Add(new RowDefinition(1, GridUnitType.Auto));
                grid.RowDefinitions.Add(new RowDefinition(12, GridUnitType.Pixel));
                grid.RowDefinitions.Add(new RowDefinition(1, GridUnitType.Auto));
                grid.RowDefinitions.Add(new RowDefinition(12, GridUnitType.Pixel));
                grid.RowDefinitions.Add(new RowDefinition(1, GridUnitType.Auto));
                grid.RowDefinitions.Add(new RowDefinition(12, GridUnitType.Pixel));
                grid.RowDefinitions.Add(new RowDefinition(1, GridUnitType.Auto));
                grid.RowDefinitions.Add(new RowDefinition(12, GridUnitType.Pixel));
                grid.RowDefinitions.Add(new RowDefinition(1, GridUnitType.Auto));
                grid.RowDefinitions.Add(new RowDefinition(12, GridUnitType.Pixel));

                int Column    = 1;
                int Row       = 1;
                int MaxColumn = 23;

                void AddText(string text)
                {
                    TextBlock txt = new TextBlock
                    {
                        Text = text
                    };

                    Grid.SetColumn(txt, Column);
                    Grid.SetRow(txt, Row);

                    grid.Children.Add(txt);

                    Column += 2;

                    if (Column > MaxColumn)
                    {
                        Row   += 2;
                        Column = 1;
                    }
                }

                foreach (System.Reflection.PropertyInfo prop in item.GetType().GetProperties())
                {
                    AddText(prop.GetValue(item).ToString());
                }
            }
        }