/// <summary>
        /// Command line runner entry point
        /// </summary>
        private static void Main(string[] args)
        {
            try
            {
                Log.Info("================== Data Migration CommandLine Runner ==================");
                var operationEngine = new OperationEngine();

                Log.Info("******** Verifying Connectivity ********");
                var connectivityTests = new ConnectivityTests(Log);
                if (!connectivityTests.TestConnections())
                {
                    Log.Fatal("Fatal exception while trying to establish connectivity to systems under migration.");
                    Console.Read();
                    return;
                }

                Log.Info("******** Migrating catalog, culture, currency definitions ********");
                var migrateCatalogs = new MigrateCatalogs {
                    Log = Log
                };
                operationEngine.Execute(migrateCatalogs.BuildOperation());

                Log.Info("******** Migrating taxonomy ********");
                var migrateTaxonomy = new MigrateTaxonomy()
                {
                    Log = Log
                };
                operationEngine.Execute(migrateTaxonomy.BuildOperation());

                Log.Info("******** Migrating product types ********");
                var migrateProductTypes = new MigrateProductTypes {
                    Log = Log
                };
                operationEngine.Execute(migrateProductTypes.BuildOperation());

                Log.Info("******** Migrating core product data ********");
                var productCount      = DataHelper.GetProductCount();
                var currentBatchCount = 0;
                do
                {
                    var migrateProductData = new MigrateProductData {
                        Log = Log, Skip = currentBatchCount, Take = ProductBatchSize
                    };
                    operationEngine.Execute(migrateProductData.BuildOperation());
                    currentBatchCount += ProductBatchSize;
                } while (currentBatchCount < productCount);

                Log.Info("======================= Data Migration Complete =======================");
                Console.Read();
            }
            catch (Exception ex)
            {
                Log.Fatal("There was an unrecoverable error while executing the migration.  Details: ", ex);
                Console.Read();
            }
        }
Ejemplo n.º 2
0
        public ActionResult Download(int?id, string typeName, DownloadAs?type)
        {
            var typeInfo = new TypeInfo
            {
                Id       = id.GetValueOrDefault(0),
                TypeName = typeName ?? "",
                Type     = type.GetValueOrDefault(DownloadAs.Excel),
            };

            WorkFile   output = null;
            IOperation operation;

            if (typeInfo.Type == DownloadAs.Excel)
            {
                var builder = FluentOperationBuilder
                              .Receive <InvokeMethodReceiver <TypeInfo> >().WithOption(x => x.Method = () => typeInfo)
                              .Transform <TypeInfoToProductListCog>()
                              .Transform <ProductListToDataTable>()
                              .Transform <FromDataTableToExcelStream>()
                              .Transform <NamingCog>().WithOption(a => a.Extension = ".xlsx")
                              .Send <InvokeMethodSender <WorkFile> >().WithOption(x => x.Method = (value) => output = value);
                operation = builder.ToOperation();
            }
            else
            {
                var builder = FluentOperationBuilder
                              .Receive <InvokeMethodReceiver <TypeInfo> >().WithOption(x => x.Method = () => typeInfo)
                              .Transform <TypeInfoToProductListCog>()
                              .Transform <ProductListToDataTable>()
                              .Transform <FromDataTableToCsvStream>()
                              .Transform <NamingCog>().WithOption(a => a.Extension = ".csv")
                              .Send <InvokeMethodSender <WorkFile> >().WithOption(x => x.Method = (value) => output = value);
                operation = builder.ToOperation();
            }

            var runner = new OperationEngine();

            runner.Execute(operation);
            output.Stream.Flush();
            output.Stream.Position = 0;
            return(File(output.Stream, MediaTypeNames.Application.Octet, output.Name));
        }
Ejemplo n.º 3
0
 public Resource Handle(OperationRequest message)
 {
     return(_operationEngine.Execute(message.OperationContext));
 }