private bool CompileEATable() { bool result = false; if (stopImport) { return(result); } StatusChanged("Importing Expense Account files..."); try { IEnumerable <DataRow> expenses = dtExpenseReview.Rows.Cast <DataRow>(); foreach (FileInfo file in new DirectoryInfo(_sourceEAPath).GetFiles("*.pdf", SearchOption.AllDirectories)) { if (stopImport) { break; } ExpenseAccountEVM ea = null; try { ea = FDLManager.ImportEAFromFile(file.FullName, false, false, true); if (ea != null) { File.Copy(file.FullName, Path.Combine(ApplicationSettings.Directories.ExpenseAccount, file.Name), true); using (DBArchive db = new DBArchive()) { // we must override recived EA with the same of current dbcontext istance ExpenseAccount currentEA = db.ExpenseAccounts.SingleOrDefault(e => e.Id == ea.Id); if (currentEA != null) { FDL fdl = db.FDLs.SingleOrDefault(f => f.Id == currentEA.FDL); if (fdl != null) { currentEA.Status = fdl.Status; } else { currentEA.Status = (long)EFDLStatus.Accepted; } var expense = expenses.SingleOrDefault(e => !string.IsNullOrEmpty(e.Field <string>("Dbf_Foglio")) && FormatFDL(e.Field <string>("Dbf_Foglio")) == fdl.Id); currentEA.IsRefunded = expense != null && expense.Field <bool>("Dbf_Restituito"); if (currentEA.Status != (long)EFDLStatus.New) { currentEA.IsReadOnly = true; } db.ExpenseAccounts.AddOrUpdate(currentEA); db.SaveChanges(); Message($"Expense Account {currentEA.FDL} OK"); } else { Error("Missing EA on database. Should never happen."); } } } else { Error($"Failed to import EA from file: {file.FullName}"); } } catch (Exception ex) { Error($"Failed importing EA {ea?.FDL}. {ex}", ex); } } result = true; } catch (Exception ex) { Error($"Failed importing expense accounts. {ex}", ex); } return(result); }
private bool ImportEAFiles() { bool result = false; if (stopImport) { return(result); } StatusChanged("Importing Expense Account files..."); try { foreach (FileInfo file in new DirectoryInfo(FDLFolder).GetFiles("*.pdf", SearchOption.AllDirectories)) { if (stopImport) { break; } if (FDLManager.GetFileType(file.Name) != EFileType.ExpenseAccount) { continue; } ExpenseAccountEVM ea = null; try { ea = FDLManager.ImportEAFromFile(file.FullName, false, false, true); if (ea != null) { File.Copy(file.FullName, Path.Combine(ApplicationSettings.Directories.ExpenseAccount, file.Name), true); using (DBArchive db = new DBArchive()) { // we must override recived EA with the same of current dbcontext istance ExpenseAccount currentEA = db.ExpenseAccounts.SingleOrDefault(e => e.Id == ea.Id); if (currentEA != null) { currentEA.Status = currentEA.FDL1.Status; if (currentEA.Status == (long)EFDLStatus.Accepted) { currentEA.IsRefunded = true; } db.ExpenseAccounts.AddOrUpdate(currentEA); db.SaveChanges(); } else { Error("Missing EA on database. Should never happen."); } } Message($"Expense Account {ea.FDL} OK"); } else { Error($"Failed to import EA from file: {file.FullName}"); } } catch (Exception ex) { Error($"Failed importing EA {ea?.FDL}. {ex}", ex); } } result = true; } catch (Exception ex) { Error($"Failed importing expense accounts. {ex}", ex); } return(result); }