Esempio n. 1
0
 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 */
 }
Esempio n. 2
0
        /// <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();
        }