public IServiceProvider ConfigureServices(IServiceCollection services, IConfigurationRoot configuration) { var typeFinder = new WebAppTypeFinder(); var startupConfigurations = typeFinder.FindClassesOfType <IStartup>(); var instances = startupConfigurations .Where(startup => EklentiYönetici.EklentiBul(startup)?.Kuruldu ?? true) //ignore not installed plugins .Select(startup => (IStartup)Activator.CreateInstance(startup)) .OrderBy(startup => startup.Order); //configure services foreach (var instance in instances) { instance.ConfigureServices(services, configuration); } AddAutoMapper(services, typeFinder); var nopConfig = services.BuildServiceProvider().GetService <Config>(); RegisterDependencies(nopConfig, services, typeFinder); if (!nopConfig.IgnoreStartupTasks) { RunStartupTasks(typeFinder); } AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve; AppDomain.CurrentDomain.SetData("DataDirectory", GenelYardımcı.MapPath("~/App_Data/")); return(_serviceProvider); }
public virtual void RegisterRoutes(IRouteBuilder routeBuilder) { var routeProviders = typeFinder.FindClassesOfType <IRotaSağlayıcı>(); var instances = routeProviders .Where(routeProvider => EklentiYönetici.EklentiBul(routeProvider)?.Kuruldu ?? true) //ignore not installed plugins .Select(routeProvider => (IRotaSağlayıcı)Activator.CreateInstance(routeProvider)) .OrderByDescending(routeProvider => routeProvider.Priority); foreach (var routeProvider in instances) { routeProvider.RegisterRoutes(routeBuilder); } }
public void ConfigureRequestPipeline(IApplicationBuilder application) { var typeFinder = Resolve <ITypeFinder>(); var startupConfigurations = typeFinder.FindClassesOfType <IStartup>(); var instances = startupConfigurations .Where(startup => EklentiYönetici.EklentiBul(startup)?.Kuruldu ?? true) //ignore not installed plugins .Select(startup => (IStartup)Activator.CreateInstance(startup)) .OrderBy(startup => startup.Order); //configure request pipeline foreach (var instance in instances) { instance.Configure(application); } }
protected virtual void AddAutoMapper(IServiceCollection services, ITypeFinder typeFinder) { var mapperConfigurations = typeFinder.FindClassesOfType <IMapperAyarları>(); var instances = mapperConfigurations .Where(mapperConfiguration => EklentiYönetici.EklentiBul(mapperConfiguration)?.Kuruldu ?? true) //ignore not installed plugins .Select(mapperConfiguration => (IMapperAyarları)Activator.CreateInstance(mapperConfiguration)) .OrderBy(mapperConfiguration => mapperConfiguration.Order); var config = new MapperConfiguration(cfg => { foreach (var instance in instances) { cfg.AddProfile(instance.GetType()); } }); services.AddAutoMapper(); AutoMapperAyarları.Init(config); }
public static void AddRotaAuthentication(this IServiceCollection services) { var authenticationBuilder = services.AddAuthentication(options => { options.DefaultChallengeScheme = ÇerezYetkilendirmeVarsayılanları.AuthenticationScheme; options.DefaultSignInScheme = ÇerezYetkilendirmeVarsayılanları.ExternalAuthenticationScheme; }); //add main cookie authentication authenticationBuilder.AddCookie(ÇerezYetkilendirmeVarsayılanları.AuthenticationScheme, options => { options.Cookie.Name = ÇerezYetkilendirmeVarsayılanları.CookiePrefix + ÇerezYetkilendirmeVarsayılanları.AuthenticationScheme; options.Cookie.HttpOnly = true; options.LoginPath = ÇerezYetkilendirmeVarsayılanları.LoginPath; options.AccessDeniedPath = ÇerezYetkilendirmeVarsayılanları.AccessDeniedPath; }); //add external authentication authenticationBuilder.AddCookie(ÇerezYetkilendirmeVarsayılanları.ExternalAuthenticationScheme, options => { options.Cookie.Name = ÇerezYetkilendirmeVarsayılanları.CookiePrefix + ÇerezYetkilendirmeVarsayılanları.ExternalAuthenticationScheme; options.Cookie.HttpOnly = true; options.LoginPath = ÇerezYetkilendirmeVarsayılanları.LoginPath; options.AccessDeniedPath = ÇerezYetkilendirmeVarsayılanları.AccessDeniedPath; }); //register and configure external authentication plugins now var typeFinder = new WebAppTypeFinder(); var externalAuthConfigurations = typeFinder.FindClassesOfType <IHariciYetkilendirmeRegistrar>(); var externalAuthInstances = externalAuthConfigurations .Where(x => EklentiYönetici.EklentiBul(x)?.Kuruldu ?? true) //ignore not installed plugins .Select(x => (IHariciYetkilendirmeRegistrar)Activator.CreateInstance(x)); foreach (var instance in externalAuthInstances) { instance.Yapılandır(authenticationBuilder); } }