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(); } }