static void Main(string[] args) { var rrr = new EAD_Processor().ExecuteEADMacro(@"C:\Users\Dev-Sys\Desktop\ecl_dump\0\0\processing_0_07863845-2142-4850-3f73-08d94646a174_EAD.xlsb"); //var tasks = new List<Task>(); //while (0 < 1) //{ // Thread.Sleep(AppSettings.ServerCallWaitTime); // var basePath = AppSettings.ECLServer2; // var di = new DirectoryInfo(basePath); // tasks = tasks.Where(o => o.Status == TaskStatus.Running).ToList(); // if (tasks.Count > AppSettings.MaxExcelTaskCount) // { // continue; // } // var files = di.GetFiles("*", SearchOption.AllDirectories).Where(o => o.Name.StartsWith(AppSettings.new_) && o.Name.EndsWith("EAD.xlsb")).ToList(); // foreach (var file in files.OrderBy(o => o.Name).ToList()) // { // var task1 = Task.Run(() => // { // ProcessFile(file); // }); // tasks.Add(task1); // } //} }
public static bool ProcessFile(FileInfo file) { if (!File.Exists(Path.Combine(file.Directory.FullName, AppSettings.TransferComplete))) { return(false); } //Process EAD var processingFileName = file.FullName.Replace(AppSettings.new_, AppSettings.processing_); File.Move(file.FullName, processingFileName); var tryCounter = 0; var eadProcessor = false; while (!eadProcessor && tryCounter <= 3) { eadProcessor = new EAD_Processor().ExecuteEADMacro(processingFileName); } if (eadProcessor) { var completedProcessingFileName = processingFileName.Replace(AppSettings.processing_, AppSettings.complete_); if (!File.Exists(completedProcessingFileName)) { File.Move(processingFileName, completedProcessingFileName); } //transfer file back to master server File.Copy(completedProcessingFileName, completedProcessingFileName.Replace(AppSettings.ECLServer2, AppSettings.ECLServer1), true); try { File.Delete(completedProcessingFileName.Replace(AppSettings.ECLServer2, AppSettings.ECLServer1).Replace(AppSettings.complete_, string.Empty)); } catch { } File.WriteAllText(Path.Combine(new FileInfo(completedProcessingFileName.Replace(AppSettings.ECLServer2, AppSettings.ECLServer1)).Directory.FullName, AppSettings.EADComputeComplete), string.Empty); // Move FrameworkFile if (File.Exists(Path.Combine(new FileInfo(completedProcessingFileName.Replace(AppSettings.ECLServer2, AppSettings.ECLServer1)).Directory.FullName, AppSettings.LGDComputeComplete)) && File.Exists(Path.Combine(new FileInfo(completedProcessingFileName.Replace(AppSettings.ECLServer2, AppSettings.ECLServer1)).Directory.FullName, AppSettings.PDComputeComplete))) { new Framework_Processor().TransferFrameworkInputFiles(completedProcessingFileName.Replace(AppSettings.ECLServer2, AppSettings.ECLServer1), AppSettings.EAD); } } else { File.Move(processingFileName, processingFileName.Replace(AppSettings.processing_, AppSettings.error_)); } return(true); }
private void RunECL(List <Loanbook_Data> batchContracts, int batchId, long affiliateId, Guid eclId, EclType eclType, EADParameters eadParam, LGDParameters lgdParam, PDParameters pdParam, FrameworkParameters frameworkParam) { var affiliatePath = Path.Combine(AppSettings.ECLBasePath, affiliateId.ToString()); var eclPath = Path.Combine(affiliatePath, eclId.ToString()); var batchPath = Path.Combine(eclPath, batchId.ToString()); var eadTemplate = Path.Combine(affiliatePath, "EADTemplate.xlsb"); var lgdTemplate = Path.Combine(affiliatePath, "LGDTemplate.xlsb"); var pdTemplate = Path.Combine(affiliatePath, "PDTemplate.xlsb"); var fraemworkTemplate = Path.Combine(affiliatePath, "FrameworkTemplate.xlsb"); var eadFile = Path.Combine(batchPath, "EAD.xlsb"); var lgdFile = Path.Combine(batchPath, "LGD.xlsb"); var pdFile = Path.Combine(batchPath, "PD.xlsb"); var fraemworkFile = Path.Combine(batchPath, "Framework.xlsb"); File.Copy(eadTemplate, eadFile); File.Copy(lgdTemplate, lgdFile); File.Copy(pdTemplate, pdFile); File.Copy(fraemworkTemplate, fraemworkFile); eadParam.ModelFileName = eadFile; eadParam.BasePath = batchPath; eadParam.LoanBookFileName = $"{batchId}_{eclId}_EAD_LoanBook.xlsx"; eadParam.PaymentScheduleFileName = $"{batchId}_{eclId}_PaymentSchedule.xlsx"; lgdParam.ModelFileName = lgdFile; lgdParam.BasePath = batchPath; lgdParam.LoanBookFileName = $"{batchId}_{eclId}_LGD_LoanBook.xlsx"; pdParam.ModelFileName = pdFile; pdParam.BasePath = batchPath; pdParam.LoanBookFileName = $"{batchId}_{eclId}_PD_LoanBook.xlsx"; frameworkParam.ModelFileName = fraemworkFile; frameworkParam.BasePath = batchPath; frameworkParam.EadFileName = "EAD.xlsb"; frameworkParam.LgdFile = "LGD.xlsb"; frameworkParam.PdFileName = "PD.xlsb"; var reportPath = Path.Combine(batchPath, "Report"); if (!Directory.Exists(reportPath)) { Directory.CreateDirectory(reportPath); } frameworkParam.ReportFolderName = reportPath; var taskList = new List <Task>(); var tskStatusLst = new List <TaskStatus> { TaskStatus.RanToCompletion, TaskStatus.Faulted }; var task1 = Task.Run(() => { var eadProcessor = new EAD_Processor().ProcessEAD(eadParam); }); taskList.Add(task1); var task2 = Task.Run(() => { var lgdProcessor = new LGD_Processor().ProcessLGD(lgdParam); }); taskList.Add(task2); var task3 = Task.Run(() => { var pdProcessor = new PD_Processor().ProcessPD(pdParam); }); taskList.Add(task3); while (0 < 1) { if (taskList.All(o => tskStatusLst.Contains(o.Status))) { foreach (var itm in taskList) { if (itm.Status != TaskStatus.RanToCompletion) { Log4Net.Log.Info("Did not run to Completion"); Log4Net.Log.Error(itm.Exception); } else { Log4Net.Log.Info("Ran to Completion"); } } break; } //Do Nothing } var fwProcessor = new Framework_Processor().ProcessFramework(frameworkParam); var fraemworkResultFile = Path.Combine(batchPath, "Framework.xlsb"); ExtractAndSaveResult(batchContracts, fraemworkResultFile, eclId, eclType); }