コード例 #1
0
ファイル: PushCommand.cs プロジェクト: lythix/forklift
        protected override void RunCore(Args args)
        {
            var environmentName = args.Arguments.Skip(1).FirstOrDefault();
            var extractions     = ExtractionInstructions.Parse(args.Arguments.Skip(2).ToArray());

            if (environmentName == null)
            {
                throw new Exception("You need to specify an environment");
            }

            var environment = Plans.Environment(environmentName);

            using (var context = new DataContext(environment.ConnectionString))
                using (var scope = new TransactionScope())
                {
                    var metabase = new ContextMetabase(context);

                    foreach (var extraction in extractions)
                    {
                        extraction.Update(metabase, Plans);
                    }

                    var extract = XElement.Load(ExtractFile);

                    foreach (var extraction in extractions)
                    {
                        extraction.Insert(metabase, extract);
                    }

                    scope.Complete();
                }
        }
コード例 #2
0
        protected override void RunCore(Args args)
        {
            var environmentName = args.Arguments.Skip(1).FirstOrDefault();
            var extractions     = ExtractionInstructions.Parse(args.Arguments.Skip(2).ToArray());

            if (environmentName == null)
            {
                throw new Exception("You need to specify an environment");
            }

            var environment = Plans.Environment(environmentName);

            using (var context = new DataContext(environment.ConnectionString))
            {
                var metabase = new ContextMetabase(context);

                foreach (var extraction in extractions)
                {
                    extraction.Update(metabase, Plans);
                }


                new XElement("Extract",
                             extractions.Select(x => x.Run(metabase))
                             ).Save(ExtractFile);
            }
        }