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)); }
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(); }
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(); }
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(); }
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(); }
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(); }