public void When_outputtask_has_more_than_one_export_parameter_than_error() { var epsConfig = GetEpsConfiguration(); var configurator = new EpsJobConfigurator(epsConfig, new MacroProcessor()); var output = new EpsOutput { OutputID = -100, OutputStatus = OutputStatuses.OS_ON_TRANSFER, EpsHandler = 100, Login_r = "test_user_login" }; output.Output_EpsOutputParam_List.Add(new EpsOutputParam { OutputParamType = EpsParamTypes.EPS, OutputParamCode = EpsTaskParameterTypes.Zip, OutputParamValue = "1" }); output.Output_EpsOutputParam_List.Add(new EpsOutputParam { OutputParamType = EpsParamTypes.EPS, OutputParamCode = EpsTaskParameterTypes.ReserveCopy, OutputParamValue = "1" }); var emailTask = new EpsOutputTask { OutputTaskID = -101, OutputTaskCode = EpsOutputTaskCodes.OTC_MAIL, OutputTaskOrder = 1, OutputTaskStatus = OutputStatuses.OS_NEW, }; emailTask.OutputTask_EpsOutputParam_List.Add(new EpsOutputParam() { OutputParamType = EpsParamTypes.TSK, OutputParamCode = EpsTaskParameterTypes.FileFormat, OutputParamValue = "test1" }); emailTask.OutputTask_EpsOutputParam_List.Add(new EpsOutputParam() { OutputParamType = EpsParamTypes.TSK, OutputParamCode = EpsTaskParameterTypes.FileFormat, OutputParamValue = "test2" }); output.Output_EpsOutputTask_List.Add(emailTask); var session = new Mock <ISession>(); var resultConfig = configurator.Configure(output, session.Object, (i, exception, arg3) => { }); }
public void When_Output_login_r_field_is_empty_than_error() { var epsConfig = GetEpsConfiguration(); var configurator = new EpsJobConfigurator(epsConfig, new MacroProcessor()); var output = new EpsOutput { OutputID = -100, OutputStatus = OutputStatuses.OS_ON_TRANSFER, EpsHandler = 100, Login_r = null, //"test_user_login", }; var session = new Mock <ISession>(); configurator.Configure(output, session.Object, (i, exception, arg3) => { }); }
private void ProcessOutput(int outputId) { var sw = new Stopwatch(); sw.Start(); Log.DebugFormat("Output {0}. Start processing.", outputId); Exception exception = null; try { IEpsJobConfig config; using (var session = SessionFactory.OpenSession()) { // получаем output var output = session.Get <EpsOutput>(outputId); // проверяем CheckOutput(output); // создаем конфигурацию config = EpsJobConfigurator.Configure(output, session, HandleTaskComplete); } // запускаем using (var job = EpsJobFactory.CreateJob(config)) job.Execute(); } catch (Exception ex) { exception = ex; // ничего дальше не пробрасываем - просто меняем статус (в finally) } finally { sw.Stop(); HandleComplete(outputId, exception, sw.Elapsed); } }
public void When_parameters_is_pased_than_its_recognized() { var epsConfig = GetEpsConfiguration(); var configurator = new EpsJobConfigurator(epsConfig, new MacroProcessor()); var output = new EpsOutput { OutputID = -100, OutputStatus = OutputStatuses.OS_ON_TRANSFER, EpsHandler = 100, Login_r = "test_user_login", ReportFileSubFolder_r = "TST" }; output.Output_EpsOutputParam_List.Add(new EpsOutputParam { OutputParamType = EpsParamTypes.EPS, OutputParamCode = EpsTaskParameterTypes.Zip, OutputParamValue = "1" }); output.Output_EpsOutputParam_List.Add(new EpsOutputParam { OutputParamType = EpsParamTypes.EPS, OutputParamCode = EpsTaskParameterTypes.ReserveCopy, OutputParamValue = "1" }); var emailTask = new EpsOutputTask { OutputTaskID = -101, OutputTaskCode = EpsOutputTaskCodes.OTC_MAIL, OutputTaskOrder = 1, OutputTaskStatus = OutputStatuses.OS_NEW, }; output.Output_EpsOutputTask_List.Add(emailTask); emailTask.OutputTask_EpsOutputParam_List.Add(new EpsOutputParam { OutputParamType = EpsParamTypes.TSK, OutputParamCode = EpsTaskParameterTypes.FileFormat, OutputParamValue = "wmsMLC.EPS.wmsEPS.ExportTypes.FRExcel2007" }); emailTask.OutputTask_EpsOutputParam_List.Add(new EpsOutputParam { OutputParamType = EpsParamTypes.TSK, OutputParamCode = EpsTaskParameterTypes.Conversion, OutputParamValue = "UTF-32" }); emailTask.OutputTask_EpsOutputParam_List.Add(new EpsOutputParam { OutputParamType = EpsParamTypes.TSK, OutputParamCode = EpsTaskParameterTypes.Spacelife, OutputParamValue = "1" }); var reportParam = new EpsOutputParam { OutputParamType = EpsParamTypes.REP, OutputParamCode = EpsTaskParameterTypes.EpsReport, OutputParamValue = "Test001.frx" }; output.Output_EpsOutputParam_List.Add(new EpsOutputParam { OutputParamType = EpsParamTypes.REP, OutputParamCode = "Parameter1", OutputParamValue = "value1", OutputParamSubValue = "Test001.frx" }); output.Output_EpsOutputParam_List.Add(new EpsOutputParam { OutputParamType = EpsParamTypes.REP, OutputParamCode = "Parameter2", OutputParamValue = "value2", OutputParamSubValue = "Test001.frx" }); output.Output_EpsOutputParam_List.Add(new EpsOutputParam { OutputParamType = EpsParamTypes.REP, OutputParamCode = EpsTaskParameterTypes.ResultReportFile, OutputParamValue = "${SQL=select REPORT_${SYSMACHINENAME}_${UserCode}_${DATE:yyyyMMdd}_${Parameter1}_${Parameter2}.txt from dual}", OutputParamSubValue = "Test001.frx" }); output.Output_EpsOutputParam_List.Add(new EpsOutputParam { OutputParamType = EpsParamTypes.REP, OutputParamCode = EpsTaskParameterTypes.ChangeODBC, OutputParamValue = "1" }); output.Output_EpsOutputParam_List.Add(reportParam); var resultReportName = string.Format("REPORT_{0}_{1}_{2:yyyyMMdd}_value1_value2.txt", Environment.MachineName, output.Login_r, DateTime.Now); var sqlQuery = new Mock <ISQLQuery>(); sqlQuery.Setup(i => i.UniqueResult <string>()).Returns(resultReportName); var session = new Mock <ISession>(); session.Setup(i => i.CreateSQLQuery(It.IsAny <string>())).Returns(sqlQuery.Object); var reportUseODACCpv = new WmsReportCPV { CPVValue = "1", CustomParam = new WmsCustomParam { CustomParamCode = WmsReportCPV.ReportUseODACParameter }, REPORT = new WmsReport { Report = Path.GetFileNameWithoutExtension(reportParam.OutputParamValue) } }; using (ShimsContext.Create()) { ShimLinqExtensionMethods.QueryOf1ISession(s => new[] { reportUseODACCpv }.AsQueryable()); var resultConfig = configurator.Configure(output, session.Object, (i, exception, arg3) => { }); resultConfig.JobId.Should().Be(output.OutputID); resultConfig.Tasks.Should().HaveCount(1); resultConfig.Reports.Should().HaveCount(1); var resultEmailTask = resultConfig.Tasks.Single(i => i.TaskId == emailTask.OutputTaskID); ("OTC_" + resultEmailTask.TaskExecutorType).Should().Be(emailTask.OutputTaskCode.ToString()); resultEmailTask.IsNeedZip.Should().BeTrue(); resultEmailTask.IsNeedReserveCopy.Should().BeTrue(); resultEmailTask.ExportType.Should().NotBeNull(); resultEmailTask.ExportType.Encoding.Should().Be(Encoding.UTF32); resultEmailTask.ExportType.Spacelife.Should().BeTrue(); resultEmailTask.ExportType.Format.Should().Be("wmsMLC.EPS.wmsEPS.ExportTypes.FRExcel2007"); resultEmailTask.HandleTaskComplete.Should().NotBeNull(); var resultReport = resultConfig.Reports.Single(i => i.ReportName == reportParam.OutputParamValue); resultReport.ReportCode.Should().Be(Path.GetFileNameWithoutExtension(reportParam.OutputParamValue)); resultReport.ConnectionString.Should().Be(epsConfig.OdacConnectionString); resultReport.ReportFullFileName.Should().Be(Path.Combine(epsConfig.ReportPath, output.ReportFileSubFolder_r, reportParam.OutputParamValue)); resultReport.Parameters.Should().Contain("Parameter1", "value1"); resultReport.Parameters.Should().Contain("Parameter2", "value2"); resultReport.Parameters.Should().Contain(EpsReportParameterTypes.UserCode, output.Login_r); resultReport.ReportResultFileName.Should().Be(resultReportName); } }
public EpsJobOutputExecutor(ISessionFactory sessionFactory, IEpsJobFactory epsJobFactory, EpsJobConfigurator epsJobConfigurator) : base(sessionFactory, epsJobFactory, epsJobConfigurator) { }