public async Task Initialize_Dependecy() { // dependencies registration IoC.Container.RegisterServices(s => { var typesResolver = new TypesResolver(() => new Type[] { typeof(TestModel) }); s.AddScoped <ITypesResolver>(s => typesResolver); s.AddDbContext <IContext, TDbContext <IdentityUser, IdentityRole, string> >(options => { options.UseInMemoryDatabase("nlayersapp-tests"); }, ServiceLifetime.Scoped); s.AddMediatRHandlers(typesResolver); s.AddMediatR(Assembly.GetEntryAssembly()); }); mediator = IoC.ServiceProvider.GetRequiredService <IMediator>(); var context = IoC.ServiceProvider.GetRequiredService <IContext>(); await((DbContext)context).Database.EnsureDeletedAsync(); await((DbContext)context).Database.EnsureCreatedAsync(); context.Set <TestModel>().AddRange(test_Entities); await context.SaveChangesAsync(CancellationToken.None); }
static IEnumerable <Type> KnownTypes() { IList <Type> typesOfResource = TypesResolver.GetKnownTypes(null).Where(x => typeof(ResponseBase).IsAssignableFrom(x)).ToList(); return(typesOfResource); }
public async Task Initialize_Dependecy() { // dependencies registration IoC.Container.RegisterServices(s => { var typesResolver = new TypesResolver(() => new Type[] { typeof(TestModel) }); s.AddScoped <ITypesResolver>(s => typesResolver); s.AddDbContext <IContext, TDbContext <IdentityUser, IdentityRole, string> >(options => { options.UseInMemoryDatabase("nlayersapp-db"); //.UseSqlite("Data Source=.\\Data\\nlayersapp.sqlite;"); }, ServiceLifetime.Scoped); s.AddMediatRHandlers(typesResolver); s.AddMediatR(Assembly.GetEntryAssembly()); }); mediator = IoC.ServiceProvider.GetRequiredService <IMediator>(); var context = IoC.ServiceProvider.GetRequiredService <IContext>(); var context_as_dbContext = (DbContext)context; if (context_as_dbContext.Database.CanConnect()) { await context_as_dbContext.Database.EnsureDeletedAsync(); } await context_as_dbContext.Database.EnsureCreatedAsync(); // migrate still not working on azure pipeline agent // ((DbContext)context).Database.Migrate(); context.Set <TestModel>().AddRange(test_Entities); await context.SaveChangesAsync(CancellationToken.None); }
static IEnumerable <Type> KnownTypes() { IList <Type> typesOfResource = TypesResolver.GetKnownTypes(null).Where(x => typeof(DoorOpenBehaviorService).IsAssignableFrom(x)).ToList(); return(typesOfResource); }
private static void Main(string[] args) { _typesResolver = new TypesResolver(); var logger = _typesResolver.ResolveType <ILogger>(); logger.WriteMessage("Initializing GPIO..."); try { var initWrapper = _typesResolver.ResolveType <IWrapInit>(); _gpioClass = new GPIOBoard(logger, initWrapper); var gpioWrapper = _typesResolver.ResolveType <IWrapGPIO>(); RideTheHood(logger, gpioWrapper); } catch (Exception a) { logger.WriteMessage(a); } Console.WriteLine("All job is done"); Console.ReadKey(); }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { Configuration = new ConfigurationBuilder() .AddEnvironmentVariables() .AddJsonFile("./appsettings.json") .Build(); var connectionString = Configuration["SQL_CONN_STR"] ?? "Server=192.168.1.191;Initial Catalog=nlayersappdb-tests;User Id=sa;Password=mrullerp!0"; TypesResolver resolver = getResolverFromConfig(nameof(TypesResolverOptions)); services.AddScoped <ITypesResolver>(s => resolver); services.AddScoped <IContext, TDbContext>(s => s.GetRequiredService <TDbContext>()); services.AddDbContext <TDbContext>( optionsAction: (s, o) => { o.UseSqlServer( connectionString: connectionString, sqlServerOptionsAction: b => { b.MigrationsAssembly("NLayersApp.SampleProject"); b.EnableRetryOnFailure(3); } ); //var builder = new ModelBuilder(new ConventionSet()); // foreach (var type in resolver.RegisteredTypes) // { // builder.Entity(type); // } // builder.FinalizeModel(); // o.UseModel(builder.Model); o.UseOpenIddict(); }, contextLifetime: ServiceLifetime.Scoped ); services.AddCors(options => options.AddPolicy("AllowAll", p => p.AllowAnyOrigin() .AllowAnyMethod() .AllowAnyHeader()));; services.AddMediatRHandlers(resolver); services.AddDynamicRolesAuthorizationServices <TDbContext>(); services.AddControllers(c => c.AddDynamicRolesAuthorizationFilter <TDbContext>()) .UseDynamicControllers(resolver) .AddControllersAsServices(); services.ConfigureAuthenticationAndAuthorisation <IdentityUser, IdentityRole, string, TDbContext>(); TypesResolver getResolverFromConfig(string configSection) { services.AddOptions <TypesResolverOptions>(configSection); TypesResolverOptions resolverOptions = new TypesResolverOptions(); Configuration.GetSection(nameof(TypesResolverOptions)).Bind(resolverOptions); foreach (var definition in resolverOptions.TypesDefinitions) { definition.Assembly = appendToExecutionPath(definition.Assembly); } var resolver = new TypesResolver(resolverOptions); return(resolver); } string appendToExecutionPath(string filename) { var assembly_location = Assembly.GetEntryAssembly().Location; var latstIndexOf_slash = Assembly.GetEntryAssembly().Location.LastIndexOf('/'); return($"{assembly_location.Remove(latstIndexOf_slash + 1)}{filename}"); } }
public Startup() { _resolver = new TypesResolver(() => new[] { typeof(TestModel), typeof(Page), typeof(Section), typeof(Member), typeof(Component) }); }