Exemplo n.º 1
0
        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            string shw = comboBox1.SelectedItem.ToString();

            dataGridView1.DataSource = null;

            // Show DB tables
            using (BankProcessContext bankProcessDB = new BankProcessContext())
            {
                switch (shw)
                {
                case "Процессы банка":
                    dataGridView1.DataSource = filesLoaded[shw];
                    break;

                case "BankProcTypes":
                    var bankProcTypes = bankProcessDB.BankProcTypes.ToList();
                    dataGridView1.DataSource = bankProcTypes;
                    break;

                case "BankThemes":
                    var bankThemes = bankProcessDB.BankThemes.Include(t => t.BankProcType).ToList();
                    dataGridView1.DataSource = bankThemes;
                    break;

                case "BankActions":
                    var bankActions = bankProcessDB.BankActions.Include(a => a.BankTheme).ToList();
                    dataGridView1.DataSource = bankActions;
                    break;

                case "BankProcesses":
                    var bankProcesses = bankProcessDB.BankProcesses.Include(p => p.BankAction).Include(p => p.BankDepartment).ToList();
                    dataGridView1.DataSource = bankProcesses;

                    break;

                case "BankDepartments":
                    var bankDepartments = bankProcessDB.BankDepartments.ToList();
                    dataGridView1.DataSource = bankDepartments;
                    break;

                default:
                    break;
                }
            }
        }
Exemplo n.º 2
0
        // The logic and models depends on the file template
        private async void saveToDBAsync()
        {
            string templ = comboBox2?.SelectedItem?.ToString();

            switch (templ)
            {
            case "Процессы банка":
                await Task.Run(() =>
                {
                    List <string> bankDepartments = new List <string>();

                    // patterns for process code
                    string patternTheme   = @"^\w?[0-9]+$";                 // 2 hierarchy level
                    string patternAction  = @"^\w?[0-9]+\.[0-9]+$";         // 3 hierarchy level
                    string patternProcess = @"^\w?[0-9]+\.[0-9]+\.[0-9]+$"; // 4 hierarchy level
                    using (BankProcessContext bankProcessDB = new BankProcessContext())
                    {
                        // actual models object
                        // 1 hierarchy level
                        BankProcType bankProcType = null;
                        // 2 hierarchy level
                        BankTheme bankTheme = null;
                        // 3 hierarchy level
                        BankAction bankAction = null;
                        // 4 hierarchy level
                        BankProcess bankProcess = null;
                        // catalog
                        BankDepartment bankDepartment = null;
                        // file processing
                        foreach (BankProcCSV bankProc in filesLoaded[templ])
                        {
                            if (bankProc.Department == "")
                            {
                                if (bankProc.Id == "" &&
                                    bankProcessDB.BankProcTypes.FirstOrDefault(p => p.Name == bankProc.Name) == null)
                                {
                                    // Row to BankProcTypes (1 lvl)
                                    bankProcType = new BankProcType {
                                        Name = bankProc.Name
                                    };
                                    bankProcessDB.BankProcTypes.Add(bankProcType);
                                }
                                else
                                {
                                    if (Regex.IsMatch(bankProc.Id, patternTheme) &&
                                        bankProcessDB.BankThemes.FirstOrDefault(p => p.Code == bankProc.Id) == null)
                                    {
                                        // Row to BankThemes (2 lvl)
                                        bankTheme = new BankTheme {
                                            Name = bankProc.Name, Code = bankProc.Id, BankProcType = bankProcType
                                        };
                                        bankProcessDB.BankThemes.Add(bankTheme);
                                    }

                                    if (Regex.IsMatch(bankProc.Id, patternAction) &&
                                        bankProcessDB.BankActions.FirstOrDefault(p => p.Code == bankProc.Id) == null)
                                    {
                                        // Row to BankActions (3 lvl)
                                        bankAction = new BankAction {
                                            Name = bankProc.Name, Code = bankProc.Id, BankTheme = bankTheme
                                        };
                                        bankProcessDB.BankActions.Add(bankAction);
                                    }
                                }
                            }
                            else
                            {
                                if (bankProc.Id != "")
                                {
                                    if (Regex.IsMatch(bankProc.Id, patternProcess) &&
                                        bankProcessDB.BankProcesses.FirstOrDefault(p => p.Code == bankProc.Id) == null)
                                    {
                                        // Row to BankProcesses (4 lvl)
                                        if (!bankDepartments.Contains(bankProc.Department))
                                        {
                                            // Row to BankDepartments (catalog)
                                            bankDepartments.Add(bankProc.Department);
                                            bankDepartment = new BankDepartment {
                                                Name = bankProc.Department
                                            };
                                            bankProcessDB.BankDepartments.Add(bankDepartment);
                                        }
                                        else
                                        {
                                            bankDepartment = bankProcessDB.BankDepartments.FirstOrDefault(d => d.Name == bankProc.Department);
                                        }

                                        bankProcess = new BankProcess {
                                            Name = bankProc.Name, Code = bankProc.Id, BankAction = bankAction, BankDepartment = bankDepartment
                                        };
                                        bankProcessDB.BankProcesses.Add(bankProcess);
                                    }
                                }
                                else
                                {
                                    // Logic for empty Rows from file
                                }
                            }
                            bankProcessDB.SaveChanges();
                        }
                    }
                });

                comboBox1.Items.AddRange(new string[] { "BankProcTypes", "BankThemes", "BankActions", "BankProcesses", "BankDepartments" });
                comboBox1.SelectedItem = "BankProcesses";
                label6.Text            = "Файл сохранен в БД";
                break;

            default:
                label6.Text = "Укажите шаблон";
                break;
            }
        }