Esempio n. 1
0
        public async Task Seed(StateExecutionConfiguration stateExecutionConfiguration)
        {
            IDataProvider provider;

            if (_configuration.Destination == DestinationOption.mg)
            {
                provider = new MongoProvider(_configuration);
            }
            else
            {
                provider = new FileProvider(_configuration);
            }

            if (provider.ActionWhenAborted != null)
            {
                stateExecutionConfiguration.ExecutionActionsAfterAbort = provider.ActionWhenAborted;
            }

            Console.WriteLine($"Seed start: {DateTime.Now}");

            await provider.WriteAsync();

            Console.WriteLine("Press any key to Exit.");
        }
Esempio n. 2
0
        private void OnExecute()
        {
            SeederConfiguration seederConfiguration;

            try
            {
                seederConfiguration = new SeederConfiguration();
                seederConfiguration.Configure((c, b) =>
                {
                    c.HideDetailsInfo = HideDetailsInfo;

                    c.ConnectionString    = ConnectionString;
                    c.Database            = Database;
                    c.ClearDataBeforeSeed = ClearDataBeforeSeed;
                    c.RewriteIndexes      = RewriteIndexes;
                    c.DefaultCountSeed    = DefaultCountSeed;
                    c.TimeReportSec       = TimeReportSec;
                    c.CreateTags          = CreateTags;
                    c.CreateUsers         = CreateUsers;
                    c.Path        = Path;
                    c.Destination = Destination;
                });
            }
            catch (Exception e)
            {
                Console.WriteLine($"Error configuration file: {e.Message}");
                return;
            }

            if (!seederConfiguration.HideDetailsInfo)
            {
                Console.WriteLine(Environment.NewLine);
                DetailsInfoConfiguration(seederConfiguration);
            }

            Console.WriteLine(new string('*', 30));

            _stateExecutionConfiguration = new StateExecutionConfiguration();
            Task.Run(async() =>
            {
                var seeder = new SeedManager(seederConfiguration);
                await seeder.Seed(_stateExecutionConfiguration);
                _stateExecutionConfiguration.Success();
            });

            Console.WriteLine("Press any key to Abort.");
            Console.WriteLine(new string('*', 30));

            Console.ReadKey();

            if (!_stateExecutionConfiguration.Aborted)
            {
                return;
            }

            Console.WriteLine("Execution aborted. Please wait.");

            if (_stateExecutionConfiguration.ExecutionActionsAfterAbort == null)
            {
                return;
            }
            foreach (var action in _stateExecutionConfiguration.ExecutionActionsAfterAbort.GetInvocationList())
            {
                action.DynamicInvoke();
            }
        }