public EBDataImporterWorker( LogWriter logger, ILogin login, TaskSchedule task) : base(logger, login, task) { Importer = new EbDataImporter(); Importer.Login = Login; Importer.Year = DateTime.Today.Year; /* get database timestamp */ }
/// <summary>Read CSV File </summary> private void ReadFiles() { TargetFiles?.Clear(); if (Importer == null) { Importer = new EbDataImporter(); } Importer.Login = ApplicationContext.Login; if (datYear.Value.HasValue) { Importer.Year = datYear.Value.Value.Year; } var files = new List <FileInformation>(); var items = grdImportItems.Rows.Select((row, index) => new { item = row.DataBoundItem as ImportItem, index }) .Where(x => x.item.DoImport) .Select(x => { var setting = GetUseableEBFileSettings().First(y => y.Id == x.item.EBFileSettingId); return(new FileInformation(x.index, x.item.FilePath, setting)); }); files.AddRange(items); var task = Task.Run(() => { TargetFiles = Importer.ReadFiles(files); }); ProgressDialog.Start(ParentForm, task, false, SessionKey); var anyFileImportable = TargetFiles.Any(x => x.Result == EbData.ImportResult.Success); foreach (var file in TargetFiles) { var messageId = string.Empty; var row = grdImportItems.Rows[file.Index]; var item = row.DataBoundItem as ImportItem; item.Executed = true; if (file.Result == EbData.ImportResult.Success) { item.ReadCount = file.ImportFileLog.ReadCount; item.TargetCount = file.ImportFileLog.ImportCount; messageId = MsgInfFinishFileReadingProcess; } else { if (anyFileImportable) { item.DoImport = false; } if (file.Result == EbData.ImportResult.FileNotFound) { messageId = MsgWngOpenFileNotFound; } if (file.Result == EbData.ImportResult.FileReadError) { messageId = MsgErrReadingError; } if (file.Result == EbData.ImportResult.FileFormatError) { messageId = MsgErrReadingError; } if (file.Result == EbData.ImportResult.BankAccountMasterError) { messageId = MsgWngNotExistBankAccountMaster; } if (file.Result == EbData.ImportResult.ImportDataNotFound) { messageId = MsgWngNoReceiptData; } if (file.Result == EbData.ImportResult.BankAccountFormatError) { messageId = MsgErrBankAccountFormatError; } if (file.Result == EbData.ImportResult.PayerCodeFormatError) { messageId = MsgErrPayerCodeFormatError; } } if (!string.IsNullOrEmpty(messageId)) { var message = GetMesasge(messageId); if (file.Result == EbData.ImportResult.BankAccountMasterError) { message += Environment.NewLine + file.BankInformation; } item.Status = message; } } if (anyFileImportable) { foreach (var row in grdImportItems.Rows) { row[CellName(nameof(ImportItem.DoImport))].Enabled = false; row[CellName(nameof(ImportItem.EBFileSettingId))].Enabled = false; } cmbDefaultEBFileSetting.Enabled = false; btnShowOpenFilesDialog.Enabled = false; BaseContext.SetFunction01Enabled(false); BaseContext.SetFunction03Enabled(true); BaseContext.SetFunction07Enabled(false); } grdImportItems.Focus(); }