Exemplo n.º 1
0
        private async Task SeedSingleSeed(int seedingStep, ServiceProvider serviceProvider, SeedInfo seedInfo)
        {
            Assert(seedingStep > 0);
            Assert(serviceProvider != null);
            Assert(seedInfo != null);

            Preparing?.Invoke(this, new SeedingEventArgs(seedingStep, seedInfo));

            var seed = (ISeed)ActivatorUtilities.GetServiceOrCreateInstance(serviceProvider, seedInfo.SeedType);

            foreach (var seedOutputProperty in seedInfo.SeedOutputProperties)
            {
                // We always want to create a new instance of a seed output class.
                // Why? Because in a general case seed output classes will have dependency constructors
                // that can potentially have transient dependencies.
                var propertyValue = ActivatorUtilities.GetServiceOrCreateInstance(serviceProvider, seedOutputProperty.PropertyType);
                seedOutputProperty.SetValue(seed, propertyValue);
            }

            if (await seed.OutputAlreadyExists())
            {
                Skipping?.Invoke(this, new SeedingEventArgs(seedingStep, seedInfo));
                return;
            }

            Seeding?.Invoke(this, new SeedingEventArgs(seedingStep, seedInfo));

            await seed.Seed();

            SeedingEnded?.Invoke(this, new SeedingEventArgs(seedingStep, seedInfo));
        }
Exemplo n.º 2
0
        public void Skipping_Initialization_01()
        {
            ObservableCollection <Item> items = new ObservableCollection <Item>();

            Skipping <Item> itemComputing = items.Skipping(0);

            itemComputing.ValidateConsistency();
        }
        public void Skipping_Initialization_01()
        {
            ObservableCollection <Item> items = new ObservableCollection <Item>();

            Skipping <Item> itemComputing = items.Skipping(0).For(consumer);

            itemComputing.ValidateInternalConsistency();
            consumer.Dispose();
        }
Exemplo n.º 4
0
        public void Skipping_Insert1(
            [Range(0, 4, 1)] int count)
        {
            ObservableCollection <Item> items = new ObservableCollection <Item>();

            Skipping <Item> itemComputing = items.Skipping(count);

            itemComputing.ValidateConsistency();
            items.Insert(0, new Item());
            itemComputing.ValidateConsistency();
        }
        public void Skipping_Insert1(
            [Range(0, 4, 1)] int count)
        {
            ObservableCollection <Item> items = new ObservableCollection <Item>();

            Skipping <Item> itemComputing = items.Skipping(count).For(consumer);

            itemComputing.ValidateInternalConsistency();
            items.Insert(0, new Item());
            itemComputing.ValidateInternalConsistency();
            consumer.Dispose();
        }
Exemplo n.º 6
0
        public void Skipping_Remove1(
            [Range(0, 4, 1)] int count)
        {
            ObservableCollection <Item> items = new ObservableCollection <Item>(
                new[]
            {
                new Item()
            }
                );

            Skipping <Item> itemComputing = items.Skipping(count);

            itemComputing.ValidateConsistency();
            items.RemoveAt(0);
            itemComputing.ValidateConsistency();
        }
Exemplo n.º 7
0
        public void Skipping_Set(
            [Range(0, 4, 1)] int count,
            [Range(0, 4, 1)] int index)
        {
            ObservableCollection <Item> items = new ObservableCollection <Item>(
                new[]
            {
                new Item(),
                new Item(),
                new Item(),
                new Item(),
                new Item()
            }
                );

            Skipping <Item> itemComputing = items.Skipping(count);

            itemComputing.ValidateConsistency();
            items[index] = new Item();
            itemComputing.ValidateConsistency();
        }
        public void Skipping_Remove(
            [Range(0, 4, 1)] int count,
            [Range(0, 4, 1)] int index)
        {
            ObservableCollection <Item> items = new ObservableCollection <Item>(
                new[]
            {
                new Item(),
                new Item(),
                new Item(),
                new Item(),
                new Item()
            }
                );

            Skipping <Item> itemComputing = items.Skipping(count).For(consumer);

            itemComputing.ValidateInternalConsistency();
            items.RemoveAt(index);
            itemComputing.ValidateInternalConsistency();
            consumer.Dispose();
        }
Exemplo n.º 9
0
        public void Skipping_Insert(
            [Range(0, 4, 1)] int index,
            [Range(0, 4, 1)] int count)
        {
            ObservableCollection <Item> items = new ObservableCollection <Item>(
                new[]
            {
                new Item(),
                new Item(),
                new Item(),
                new Item(),
                new Item()
            }
                );

            Skipping <Item> itemComputing = items.Skipping(count).IsNeededFor(consumer);

            itemComputing.ValidateConsistency();
            items.Insert(index, new Item());
            itemComputing.ValidateConsistency();
            consumer.Dispose();
        }
        public void Skipping_Move(
            [Range(0, 4, 1)] int count,
            [Range(0, 4, 1)] int oldIndex,
            [Range(0, 4, 1)] int newIndex)
        {
            ObservableCollection <Item> items = new ObservableCollection <Item>(
                new[]
            {
                new Item(),
                new Item(),
                new Item(),
                new Item(),
                new Item()
            }
                );

            Skipping <Item> itemComputing = items.Skipping(count).For(consumer);

            itemComputing.ValidateConsistency();
            items.Move(oldIndex, newIndex);
            itemComputing.ValidateConsistency();
            consumer.Dispose();
        }