Beispiel #1
0
        private async void OpenFiles(List <string> listpath)
        {
            if (MessageBox.Show("There are " + listpath.Count() + " elements. \r\nDo you want to parse these files?",
                                "Information!", MessageBoxButtons.OKCancel, MessageBoxIcon.Information) == DialogResult.OK)
            {
                offerAnswers = new List <KnownErrorView>();
                logParser.progressBarToFinish.Value = 0;
                logParser.pictureBox1.Visible       = true;
                logParser.labelTime.Visible         = false;
                logParser.label4WithoutPair.Text    = @"0";
                logParser.label5CountInserted.Text  = @"0";
                var countRows  = 0;
                var countFiles = listpath.Count;
                var file       = 0;

                var dt = DateTime.Now.TimeOfDay;

                foreach (var path in listpath)
                {
                    LogsList.Clear();
                    ErrorsList.Clear();
                    logParser.labelFileName.Text   = path;
                    logParser.labelCountFiles.Text = countFiles.ToString();
                    var logFile = DataProcessor.CreateLogFile(path);

                    await DataProcessor.SaveLogFileIntoDb(logFile);

                    var resultParsDoc = await ParsDocument(path, logFile);

                    await DataProcessor.SaveDocumentsIntoDb(LogsList);

                    if (ErrorsList.Any())
                    {
                        await DataProcessor.SaveErrorsIntoDb(ErrorsList);
                    }

                    var newUnKnownErrorsList = unKnownErrorsList.Where(o => o.Id == ObjectId.Empty).ToList();

                    if (newUnKnownErrorsList.Any())
                    {
                        await DataProcessor.SaveUnKnownErrorsIntoDb(newUnKnownErrorsList);
                    }

                    var isModified = unKnownErrorsList.Where(o => o.IsModified).ToList();

                    if (isModified.Any())
                    {
                        await DataProcessor.UpdateUnKnownErrorsIntoDb(isModified);
                    }

                    logParser.textBox1.AppendText(resultParsDoc);
                    countRows += LogsList.Count;
                    countFiles--;
                    file++;

                    var dt2 = DateTime.Now.TimeOfDay;
                    if (countFiles > 0)
                    {
                        logParser.labelTime.Visible   = true;
                        logParser.pictureBox1.Visible = false;
                        UpdateTimer(GetTime(dt, dt2, file, countFiles));
                    }
                    UpdateProgBarToFinish((int)((file * 100.0) / listpath.Count));
                }

                if (offerAnswers.Any())
                {
                    if (MessageBox.Show("We found " + ErrorsList.Count + " errors.\r\nWe have " + offerAnswers.Count + " offer for decision. \r\nDo you want to see our decisions for this errors and informations about problems?",
                                        "Information!", MessageBoxButtons.OKCancel, MessageBoxIcon.Information) == DialogResult.OK)
                    {
                        OfferErrorAnswer offer = new OfferErrorAnswer(offerAnswers);
                        offer.ShowDialog();
                    }
                }

                logParser.labelCountFiles.Text  = countFiles.ToString();
                logParser.labelFileName.Text    = "";
                logParser.progressBarFile.Value = 0;

                if (TempLogsList.Any())
                {
                    await DataProcessor.SaveDocumentsIntoDb(TempLogsList);

                    logParser.label4WithoutPair.Text = TempLogsList.Count.ToString();
                }

                logParser.pictureBox1.Visible = false;
                logParser.textBox1.AppendText("\r\n\r\nReading finished successfully! ");
                logParser.label5CountInserted.Text = (countRows + TempLogsList.Count).ToString();
                TempLogsList.Clear();
            }
        }