public static void SetConfiguration(BulkConfigurationType type, Type tRequest, Type tEntity, IBulkConfiguration config) { if (!_configurations[type].ContainsKey(tRequest)) { _configurations[type][tRequest] = new BulkRequestEntityConfigurationMap(); } _configurations[type][tRequest][tEntity] = config; }
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); } }
public static BulkRequestConfigurationMap Configurations(BulkConfigurationType type) => _configurations[type];