public void HappyPath_NightWatchmanAnalysis_BuildMachineData() { const int DesktopCount = 50123; const int LaptopCount = 50321; const string companyName = "Nightwatchman Company, Ltd"; long totalMachine = 5000; long machinesOnForWeekdays = 3000; long machinesOnForWeekend = 2000; long noOfDays = 15; var machineData = BuildMachineData(DesktopCount, LaptopCount); DataTable machineActivityData; DataTable machineActivityValidationData; BuildMachineActivityData(totalMachine, machinesOnForWeekdays, machinesOnForWeekend, noOfDays, out machineActivityData, out machineActivityValidationData); Dictionary <string, DataTable> mockValues = new Dictionary <string, DataTable>() { { "MachineData", machineData }, { "MachineActivityData", machineActivityData }, { "Validate_MachineActivityData", machineActivityValidationData } }; var mockQueryExecutor = new Moq.Mock <IQueryExecutor>(); mockQueryExecutor.Setup( m => m.ExecuteQuery(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <SqlParameter[]>())) .Returns( (string a, string b, string tableName, SqlParameter[] p) => mockValues[tableName]); string assemblyPath; assemblyPath = Directory.GetCurrentDirectory(); Console.WriteLine("Working directory: " + assemblyPath); var context = new CommonExtractionContext() { CompanyName = companyName, BaseWorkDirectory = assemblyPath, PluginsDirectory = assemblyPath }; var factory = new DataExtractorFactory(context.PluginsDirectory); var nwmExtractor = factory.GetExtractor <NightWatchmanDataExtractor>(); Assert.NotNull(nwmExtractor, "DataExtractorFactory failed to load NightWatchmanDataExtractor"); var extractor = new DataExtractor(factory, mockQueryExecutor.Object); var zipFile = extractor.BuildPackage(context); Assert.IsTrue(File.Exists(zipFile), "Failed to create Zip file"); Assert.IsTrue((string.Compare(Path.GetFileNameWithoutExtension(zipFile), context.CompanyName) == 0), "Zip file is not correctly named"); // Need to add more code to test zip file paths }
public void HappyPath_NightWatchmanAnalysis_BuildMachineData() { const int DesktopCount = 50123; const int LaptopCount = 50321; const string companyName = "Nightwatchman Company, Ltd"; long totalMachine = 5000; long machinesOnForWeekdays = 3000; long machinesOnForWeekend = 2000; long noOfDays = 15; var machineData = BuildMachineData(DesktopCount, LaptopCount); DataTable machineActivityData; DataTable machineActivityValidationData; BuildMachineActivityData(totalMachine, machinesOnForWeekdays, machinesOnForWeekend, noOfDays, out machineActivityData, out machineActivityValidationData); Dictionary<string, DataTable> mockValues = new Dictionary<string, DataTable>() { {"MachineData",machineData}, {"MachineActivityData",machineActivityData}, {"Validate_MachineActivityData",machineActivityValidationData} }; var mockQueryExecutor = new Moq.Mock<IQueryExecutor>(); mockQueryExecutor.Setup( m => m.ExecuteQuery(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<SqlParameter[]>())) .Returns( (string a, string b, string tableName, SqlParameter[] p) => mockValues[tableName]); string assemblyPath; assemblyPath = Directory.GetCurrentDirectory(); Console.WriteLine("Working directory: " + assemblyPath); var context = new CommonExtractionContext() { CompanyName = companyName, BaseWorkDirectory = assemblyPath, PluginsDirectory = assemblyPath }; var factory = new DataExtractorFactory(context.PluginsDirectory); var nwmExtractor = factory.GetExtractor<NightWatchmanDataExtractor>(); Assert.NotNull(nwmExtractor, "DataExtractorFactory failed to load NightWatchmanDataExtractor"); var extractor = new DataExtractor(factory, mockQueryExecutor.Object); var zipFile = extractor.BuildPackage(context); Assert.IsTrue(File.Exists(zipFile), "Failed to create Zip file"); Assert.IsTrue((string.Compare(Path.GetFileNameWithoutExtension(zipFile), context.CompanyName) == 0), "Zip file is not correctly named"); // Need to add more code to test zip file paths }
public static void Main(string[] args) { ExitCodes exitCode = ExitCodes.Success; try { CommandLine.DisplayBanner(); var commandLine = new CommandLine(new Arguments(args)); if (commandLine.Valid()) { // Create common configuration context string connectionString = BuildConnectionString(commandLine); Console.WriteLine("Using database connection string " + connectionString); string assemblyPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); var context = new CommonExtractionContext { CompanyName = commandLine.CompanyName, SccmConnection = connectionString, StartDate = commandLine.StartDate, EndtDate = commandLine.EndDate, BaseWorkDirectory = assemblyPath, PluginsDirectory = Path.Combine(assemblyPath, "Plugins") }; // Create DataExtractor Plugin Factory var factory = new DataExtractorFactory(context.PluginsDirectory); int commandExecutionTimeout = SqlCommandExecutionTimeout(); var queryExecutor = new SqlQueryExecutor(context.SccmConnection, commandExecutionTimeout); // Create Data Extractor and build package var extractor = new DataExtractor(factory, queryExecutor); string zipPath = extractor.BuildPackage(context); if (extractor.Succeded()) { string uploadurl = ConfigurationManager.AppSettings["fileUploadUrl"].Replace( "[SERVERNAME]", commandLine.UploadServerName); FileUploader.UploadFile(uploadurl, zipPath); } } } catch (Exception ex) { DisplayError(ex); exitCode = ExitCodes.Error; } Environment.Exit((int)exitCode); }
private void btnImportData_Click(object sender, EventArgs e) { try { IDataExtractor result = null; using (var dialog = new Dialog.ImportSelectDialog()) { dialog.Filter = "File / Folders to Import|*.*|Data File|*.csv;*.xslx"; dialog.Multiselect = true; if (dialog.ShowDialog() == DialogResult.OK) { if (dialog.FileName == Utils.GetAppFilePath(AppFileType.ImportExtractor)) { result = DataExtractorFactory.Deserialize(File.ReadAllText(dialog.FileName)); } else if (dialog.FilterIndex == 1 || Directory.Exists(dialog.FileName)) { result = DataExtractorFactory.Get(dialog.FileNames, ImportType.Files); } else { throw new NotSupportedException(); } } } if (result != null) { var mapping = new ImportMapping(); mapping.Extractor = result; var connSelect = new ConnectionSelection(); connSelect.MultiSelect = false; connSelect.GoNextAction = () => _wizard.GoToStep(mapping); _wizard.GoToStep(connSelect); } } catch (Exception ex) { Utils.HandleError(ex); } }
//public void ReportThread(string result, string strRptFolder) public void BankRateThread(object QueryCode) { List <BANK_RULES> lbr = new List <BANK_RULES>(); BankRuleService brs = new BankRuleService(); lbr = brs.findAll(); foreach (BANK_RULES BR in lbr) { try { string result = ""; BankService bs = new BankService(); BANK b = new BANK(); b = bs.find(BR.BankCode); if (b != null) { string groupCode = Guid.NewGuid().ToString(); RATE_HISTORY rateHistory = new RATE_HISTORY(); RateHistoryService rhs = new RateHistoryService(); if (b.BankCode == "OCB") { Thread.Sleep(180000); if (BankRateService.LastOCBRun.AddMinutes(5) < DateTime.Now) { BankRateService.LastOCBRun = DateTime.Now; string bankData = DataExtractorFactory.getDataExtractor(b).extractData(b); result = RuleProcessor.process(bankData, BR.BankRule, b.BankCode); } } else { string bankData = DataExtractorFactory.getDataExtractor(b).extractData(b); result = RuleProcessor.process(bankData, BR.BankRule, b.BankCode); } if (result != "") { rateHistory = rhs.get(b.BankCode, BR.TenorCode); float finalResult; if (rateHistory != null) { if (float.TryParse(result, out finalResult)) { rateHistory.InsRate = result; rateHistory.GroupCode = groupCode; rateHistory.Timestamp = DateTime.Now; rhs.editRateHistory(rateHistory); } } else { if (float.TryParse(result, out finalResult)) { rateHistory = new RATE_HISTORY(); rateHistory.BankCode = b.BankCode; rateHistory.TenorCode = BR.TenorCode; rateHistory.InsRate = result; rateHistory.GroupCode = groupCode; rateHistory.Timestamp = DateTime.Now; rhs.addRateHistory(rateHistory); } } } } } catch (Exception ex) { log.Info("Error: ", ex); } } }