//public static async AsyncReply<T> CreateResourceAsync<T>(this IServiceProvider serviceProvider, T properties = null) where T : class, IResource //{ // var options = serviceProvider.GetService<IDbContextOptions>().FindExtension<EsiurExtensionOptions<T>>(); // var resource = await Warehouse.New<T>("", options.Store, null, null, null, properties); // resource.Instance.Managers.AddRange(options.Store.Instance.Managers.ToArray()); // return resource; //} //public static T CreateResource<T>(this IServiceProvider serviceProvider, object properties = null) where T : class, IResource // => CreateResourceAsync<T>(serviceProvider, properties).Wait(); public static DbContextOptionsBuilder UseEsiur(this DbContextOptionsBuilder optionsBuilder, EntityStore store, Func <DbContext> getter = null //IServiceCollection services = null //string name = null, //IResource parent = null, //IPermissionsManager manager = null, //Func<DbContext> dbContextProvider = null ) { var extension = optionsBuilder.Options.FindExtension <EsiurExtensionOptions>(); if (extension == null) { if (store == null) { return(optionsBuilder); } store.Options = optionsBuilder.Options; extension = new EsiurExtensionOptions(store); } ((IDbContextOptionsBuilderInfrastructure)optionsBuilder).AddOrUpdateExtension(extension); return(optionsBuilder); }
public EsiurProxyRewrite(EsiurExtensionOptions ext, ProviderConventionSetBuilderDependencies conventionSetBuilderDependencies) { _directBindingConvention = new ConstructorBindingConvention(conventionSetBuilderDependencies); }