Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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();
        }
Ejemplo n.º 3
0
        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));
        }