public void MoveToArchiveTest() { string errorMsg = ""; var testUser = GetTestUser(); var testCompany = GetTestCompany(testUser); // Create a temp file var tempFile = GetTempFile(".txt"); File.WriteAllText(tempFile, LorumIpsum()); // Now archive it var dts = new DataTransferService.DataTransferService(db); var config = createDataTransfer(testCompany, testUser); bool bRc = dts.MoveToArchive(config, tempFile, ref errorMsg); Assert.IsTrue(bRc == false, errorMsg); // Check if the file has been moved Assert.IsTrue(!File.Exists(tempFile), $"Error: File '{tempFile}' still exists when it should have been deleted"); string newTarget = config.ArchiveFolder.AddString("\\") + tempFile.FileName(); Assert.IsTrue(File.Exists(newTarget), $"Error: File '{newTarget}' could not be found in its archived location"); }
public override int DoProcessing(string[] args) { var shopifyImportService = new ShopifyImportService.ShopifyImportService(_db); DataTransferService.DataTransferService dts = new DataTransferService.DataTransferService(_db); int i = 1; var profileName = GetTaskParameter($"DataTransfer{1}", ""); var taskUser = GetTaskUser(); string errorMsg = ""; var config = dts.FindDataTransferConfigurationModel(profileName); if (config == null) { TaskService.WriteTaskLog(this.Task, $"Error: Failed to find Data Transfer configuration '{profileName}' !"); } else { string fileLoc = config.TargetFolder; while (!string.IsNullOrEmpty(fileLoc)) { string businessName = GetTaskParameter($"BusinessName{i}", ""); string[] files = null; try { files = Directory.GetFiles(fileLoc); } catch (Exception ex) { TaskService.WriteTaskLog(this.Task, $"Error: There was a problem getting files from '{fileLoc}'\r\n" + ex, LogSeverity.Severe); } if (files.Length > 0 && files != null) { foreach (string fileName in files) { // Process File TaskService.WriteTaskLog(this.Task, $"Success: Processing file '{fileName}'", LogSeverity.Normal); ShopifyImportTempModel.Data shopifyTempModel = null; try { shopifyTempModel = shopifyImportService.ProcessXml(fileName, businessName); } catch (Exception ex) { TaskService.WriteTaskLog(this.Task, $"Error: Could not process file '{fileName}'\r\n" + ex, LogSeverity.Severe); //MoveFileToErrorFolder(dts, config, fileName); } if (shopifyTempModel != null) { List <ShopifyImportHeaderTemp> sihtList = new List <ShopifyImportHeaderTemp>(); // Map each order to TEMP foreach (var order in shopifyTempModel.Order) { try { Dictionary <string, string> configDetails = LookupConfigDetails(order.StoreName); if (configDetails.Count > 0) { ShopifyImportHeaderTemp siht = new ShopifyImportHeaderTemp(); siht = shopifyImportService.MapOrderToTemp(businessName, configDetails, order, taskUser); sihtList.Add(siht); } else { TaskService.WriteTaskLog(this.Task, $"Error: Configuration Setting are not setup", LogSeverity.Severe); } } catch (Exception ex) { TaskService.WriteTaskLog(this.Task, $"Error: Could not map order (#{order.OrderNumber}) details to temp table\r\n" + ex, LogSeverity.Severe); //MoveFileToErrorFolder(dts, config, fileName); break; } } if (sihtList.Count > 0 && sihtList.Count == shopifyTempModel.Order.Length) // AND COUNT = THE ACTUAL NUMBER OF ORDERS IN THE XML FILE // Save temp to db { try { shopifyImportService.SaveDataToTempTables(sihtList); TaskService.WriteTaskLog(this.Task, $"Success: Saved '{fileName}' temp table", LogSeverity.Normal); // Get Temp table data try { sihtList = shopifyImportService.GetShopifyTempTableData(); if (sihtList.Count > 0) { try { // CopyTempDataToSalesModel List <SalesOrderHeader> orders = shopifyImportService.CopyTempDataToSalesModel(sihtList, businessName); if (orders.Count > 0) { if (shopifyImportService.SaveSalesOrders(orders)) { TaskService.WriteTaskLog(this.Task, $"Success: Data Saved to Sales tables", LogSeverity.Normal); // Move file to Archive folder if (dts.MoveToArchive(config, fileName, ref errorMsg)) { TaskService.WriteTaskLog(this.Task, $"Failed to move to Archive folder\r\n{errorMsg}", LogSeverity.Severe); } else { TaskService.WriteTaskLog(this.Task, $"Successfully moved file '{fileName}' to Archive folder", LogSeverity.Normal); } } else { // Move file to Error folder MoveFileToErrorFolder(dts, config, fileName); } } else { TaskService.WriteTaskLog(this.Task, $"Error: Could not retrieve any orders from the temp table/s", LogSeverity.Severe); MoveFileToErrorFolder(dts, config, fileName); } } catch (Exception ex) { TaskService.WriteTaskLog(this.Task, $"Error: Could not copy data to sales table/s\r\n" + ex, LogSeverity.Severe); MoveFileToErrorFolder(dts, config, fileName); } } } catch (Exception ex) { TaskService.WriteTaskLog(this.Task, $"Error: Failed to get temp data from database\r\n" + ex, LogSeverity.Severe); MoveFileToErrorFolder(dts, config, fileName); } } catch (Exception ex) { TaskService.WriteTaskLog(this.Task, $"Error: Failed to save data to the temp table/s\r\n" + ex, LogSeverity.Severe); MoveFileToErrorFolder(dts, config, fileName); } } } else { TaskService.WriteTaskLog(this.Task, $"Error: The file '{fileName}' was empty", LogSeverity.Severe); MoveFileToErrorFolder(dts, config, fileName); } MoveFileToErrorFolder(dts, config, fileName); } } else { TaskService.WriteTaskLog(this.Task, $"INFO: There were no files to process.'", LogSeverity.Normal); } i++; profileName = GetTaskParameter($"DataTransfer{i}", ""); config = dts.FindDataTransferConfigurationModel(profileName); fileLoc = (config != null) ? config.TargetFolder : ""; } } return(0); }
public override int DoProcessing(string[] args) { var pepperiImportService = new PepperiImportService.PepperiImportService(_db); DataTransferService.DataTransferService dts = new DataTransferService.DataTransferService(_db); int i = 1; var profileName = GetTaskParameter($"DataTransfer{i}", ""); var taskUser = GetTaskUser(); string errorMsg = ""; var config = dts.FindDataTransferConfigurationModel(profileName); if (config == null) { TaskService.WriteTaskLog(this.Task, $"Error: Failed to find Data Transfer configuration '{profileName}' !"); } else { string fileLoc = config.TargetFolder; while (!string.IsNullOrEmpty(fileLoc)) { string businessName = GetTaskParameter($"BusinessName{i}", ""); string[] files = Directory.GetFiles(fileLoc); if (files.Length > 0 && files != null) { foreach (string fileName in files) { if (pepperiImportService.ProcessXml(fileName, businessName, taskUser, this.Task)) { if (dts.MoveToArchive(config, fileName, ref errorMsg)) { TaskService.WriteTaskLog(this.Task, $"Failed to move to Archive folder/r/n{errorMsg}", LogSeverity.Severe); } else { TaskService.WriteTaskLog(this.Task, $"Successfully moved file '{fileName}' to Archive folder", LogSeverity.Normal); } } else { if (dts.MoveToError(config, fileName, ref errorMsg)) { TaskService.WriteTaskLog(this.Task, $"Failed to move to Error folder/r/n{errorMsg}", LogSeverity.Severe); } else { TaskService.WriteTaskLog(this.Task, $"File '{fileName}' has been moved to the Error folder", LogSeverity.Severe); } } } } else { TaskService.WriteTaskLog(this.Task, $"Warning: There are no files to import", LogSeverity.Normal); } i++; profileName = GetTaskParameter($"DataTransfer{i}", ""); config = dts.FindDataTransferConfigurationModel(profileName); fileLoc = (config != null) ? config.TargetFolder : ""; } } return(0); }
public override int DoProcessing(string[] args) { var nuOrderImportService = new NuOrderImportService.NuOrderImportService(_db); DataTransferService.DataTransferService dts = new DataTransferService.DataTransferService(_db); int i = 1; var profileName = GetTaskParameter($"DataTransfer{1}", ""); var taskUser = GetTaskUser(); string errorMsg = ""; var config = dts.FindDataTransferConfigurationModel(profileName); if (config == null) { TaskService.WriteTaskLog(this.Task, $"Error: Failed to find Data Transfer configuration '{profileName}' !"); } else { string fileLoc = config.TargetFolder; while (!string.IsNullOrEmpty(fileLoc)) { string businessName = GetTaskParameter($"BusinessName{i}", "");; string[] files = null; try { files = Directory.GetFiles(fileLoc); } catch (Exception ex) { TaskService.WriteTaskLog(this.Task, $"Error: There was a problem getting files from '{fileLoc}'\r\n" + ex, LogSeverity.Severe); } if (files.Length > 0 && files != null) { foreach (string fileName in files) { // ProcessFile TaskService.WriteTaskLog(this.Task, $"Success: Processing file '{fileName}'", LogSeverity.Normal); List <Dictionary <string, string> > orderLines = null; try { orderLines = nuOrderImportService.ProcessFile(fileName, businessName); } catch (Exception ex) { TaskService.WriteTaskLog(this.Task, $"Error: Could not process file '{fileName}'\r\n" + ex, LogSeverity.Severe); } if (orderLines != null || orderLines.Count == 0) { List <NuOrderImportTemp> nuOrderImportTempList = new List <NuOrderImportTemp>(); // MapFileToTemp try { nuOrderImportTempList = nuOrderImportService.MapFileToTemp(businessName, orderLines, taskUser); TaskService.WriteTaskLog(this.Task, $"Success: Saved '{fileName}' temp table", LogSeverity.Normal); // GetTempTableData try { nuOrderImportTempList = nuOrderImportService.GetTempTableData(); } catch (Exception ex) { TaskService.WriteTaskLog(this.Task, $"Error: Failed to get temp data from database\r\n" + ex, LogSeverity.Severe); } // CopyTempToProduction & Move to file to appropriate folder if (nuOrderImportTempList.Count > 0) { try { if (nuOrderImportService.CopyTempDataToProduction(nuOrderImportTempList, businessName)) { TaskService.WriteTaskLog(this.Task, $"Success: Data Saved to Sales tables", LogSeverity.Normal); if (dts.MoveToArchive(config, fileName, ref errorMsg)) { TaskService.WriteTaskLog(this.Task, $"Failed to move to Archive folder\r\n{errorMsg}", LogSeverity.Severe); } else { TaskService.WriteTaskLog(this.Task, $"Successfully moved file '{fileName}' to Archive folder", LogSeverity.Normal); } } else { MoveFileToErrorFolder(dts, config, fileName); } } catch (Exception ex) { TaskService.WriteTaskLog(this.Task, $"Error: Could not copy data to sales table/s\r\n" + ex, LogSeverity.Severe); MoveFileToErrorFolder(dts, config, fileName); } } } catch (Exception ex) { TaskService.WriteTaskLog(this.Task, $"Error: Failed to map '{fileName}'\r\n" + ex, LogSeverity.Severe); MoveFileToErrorFolder(dts, config, fileName); } } else { TaskService.WriteTaskLog(this.Task, $"Error: The file '{fileName}' was empty", LogSeverity.Severe); MoveFileToErrorFolder(dts, config, fileName); } } } else { TaskService.WriteTaskLog(this.Task, $"INFO: There were no files to process.'", LogSeverity.Normal); } i++; profileName = GetTaskParameter($"DataTransfer{i}", ""); config = dts.FindDataTransferConfigurationModel(profileName); fileLoc = (config != null) ? config.TargetFolder : ""; } } return(0); }