public void Run(Container container, Assembly[] assemblies, CrudOptions options) { BulkConfigurationManager.Clear(); container.Options.AllowOverridingRegistrations = true; var bulkAgent = new BulkDataAgent(); if ((_extensions & BulkExtensions.Create) == BulkExtensions.Create) { container.RegisterInstance <IBulkCreateDataAgent>(bulkAgent); } if ((_extensions & BulkExtensions.Update) == BulkExtensions.Update) { container.RegisterInstance <IBulkUpdateDataAgent>(bulkAgent); } if ((_extensions & BulkExtensions.Delete) == BulkExtensions.Delete) { container.RegisterInstance <IBulkDeleteDataAgent>(bulkAgent); } container.Options.AllowOverridingRegistrations = false; EntityFrameworkManager.ContextFactory = context => container.GetInstance <DbContext>(); }
public override void Run(ServiceProviderContainer container, Assembly[] assemblies, CrudlessOptions options) { BulkConfigurationManager.Clear(); using (container.AllowOverrides()) { var bulkAgent = new BulkDataAgent(); if ((_extensions & BulkExtensions.Create) == BulkExtensions.Create) { container.RegisterInstance <IBulkCreateDataAgent>(bulkAgent); } if ((_extensions & BulkExtensions.Update) == BulkExtensions.Update) { container.RegisterInstance <IBulkUpdateDataAgent>(bulkAgent); } if ((_extensions & BulkExtensions.Delete) == BulkExtensions.Delete) { container.RegisterInstance <IBulkDeleteDataAgent>(bulkAgent); } } EntityFrameworkManager.ContextFactory = context => container.ProvideInstance <DbContext>(); }
public static TBuilder BulkCreateWith <TRequest, TEntity, TBuilder>( this RequestEntityConfigBuilderCommon <TRequest, TEntity, TBuilder> builder, Func <BulkInsertConfiguration <TEntity>, BulkInsertConfiguration <TEntity> > configure) where TEntity : class where TBuilder : RequestEntityConfigBuilderCommon <TRequest, TEntity, TBuilder> { var config = configure(new BulkInsertConfiguration <TEntity>()); if (config != null) { BulkConfigurationManager.SetConfiguration(BulkConfigurationType.Insert, typeof(TRequest), typeof(TEntity), config); } return((TBuilder)builder); }
public static void Configure <TEntity>(this BulkOperation <TEntity> operation, BulkConfigurationType type, DataContext <TEntity> context) where TEntity : class { var typeConfigs = BulkConfigurationManager.Configurations(type); if (!typeConfigs.ContainsKey(context.Configuration.RequestType)) { typeConfigs[context.Configuration.RequestType] = new BulkRequestEntityConfigurationMap(); } var requestConfigs = typeConfigs[context.Configuration.RequestType]; if (!requestConfigs.ContainsKey(typeof(TEntity))) { requestConfigs[typeof(TEntity)] = new DefaultBulkConfiguration <TEntity>(); } var configurations = new List <IBulkConfiguration>(); foreach (var tRequest in context.Configuration.RequestType.BuildTypeHierarchyDown()) { if (!typeConfigs.TryGetValue(tRequest, out requestConfigs)) { continue; } foreach (var tEntity in typeof(TEntity).BuildTypeHierarchyDown()) { if (requestConfigs.TryGetValue(tEntity, out var entityConfigs)) { configurations.Add(entityConfigs); } } } foreach (var configuration in configurations) { configuration.Apply(context.Configuration, operation); } }