Example #1
0
        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>();
        }
Example #2
0
        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>();
        }
Example #3
0
        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);
            }
        }