public override IExecutionResult Run() { var connection = new SqlConnection(string.Format(@"Data Source={0};Initial Catalog=master;Integrated Security=SSPI;", Etl.Server)); var integrationServices = new IntegrationServices(connection); var catalog = integrationServices.Catalogs[Etl.Catalog]; var folder = catalog.Folders[Etl.Folder]; var project = folder.Projects[Etl.Project]; var package = project.Packages[Etl.Name]; var setValueParameters = new Collection <PackageInfo.ExecutionValueParameterSet>(); setValueParameters.Add(new PackageInfo.ExecutionValueParameterSet { ObjectType = 50, ParameterName = "SYNCHRONIZED", ParameterValue = 1 }); long executionIdentifier = package.Execute(Etl.Is32Bits, null, setValueParameters); var execution = catalog.Executions[executionIdentifier]; var result = EtlRunResult.Build( execution.Status , execution.Messages.Where(m => m.MessageType == 120 || m.MessageType == 110).Select(m => m.Message) , execution.StartTime , execution.EndTime); return(result); }
public EtlRunResult Instantiate(Operation.ServerOperationStatus status, IEnumerable <string> messages, DateTimeOffset?startTime, DateTimeOffset?endTime) { switch (status) { case Operation.ServerOperationStatus.Failed: return(EtlRunResult.Failure(String.Join(Environment.NewLine, messages))); case Operation.ServerOperationStatus.Success: return(EtlRunResult.Success(endTime.Value.Subtract(startTime.Value))); default: break; } throw new ArgumentException(); }
public override IExecutionResult Run() { var app = new Application(); if (!string.IsNullOrEmpty(Etl.Password)) { app.PackagePassword = Etl.Password; } var package = Load(Etl, app); Parameterize(Etl.Parameters, ref package); var events = new PackageEvents(); var pkgResults = package.Execute(null, null, events, null, null); var result = (ExecResult)pkgResults; return(EtlRunResult.Build(result, events)); }