public override void ConfigServices(ModuleConfigServiceContext context) { context.Services.AddTransient(provider => { return(provider.GetService <IMiCakeProxyProvider>().GetMiCakeProxy()); }); }
/// <summary> /// Initialize micake services /// </summary> public void Initialize() { if (_isInitialized) { throw new InvalidOperationException($"MiCake has already build common services." + $"The {nameof(Initialize)} method only can called once!"); } if (_entryType == null) { throw new NullReferenceException($"Cannot find entry module type,Please marke sure you has already call {nameof(SetEntry)} method."); } AddMiCakeCoreSerivces(_services); //Find all micake modules according to the entry module type ModuleManager.PopulateModules(_entryType); _services.AddSingleton(ModuleContext); var loggerFactory = _services.BuildServiceProvider().GetRequiredService <ILoggerFactory>() ?? NullLoggerFactory.Instance; _miCakeModuleBoot = new MiCakeModuleBoot(loggerFactory, ModuleContext.AllModules); //auto register services to di. _miCakeModuleBoot.AddConfigService(AutoRegisterServices); var configServiceContext = new ModuleConfigServiceContext( _services, ModuleContext.MiCakeModules, ApplicationOptions); _miCakeModuleBoot.ConfigServices(configServiceContext); }
public override void PreConfigServices(ModuleConfigServiceContext context) { var services = context.Services; services.AddTransient <IDomainObjectModelProvider, DefaultDomainObjectModelProvider>(); services.AddSingleton <DomainObjectFactory>(); services.AddSingleton <IDomainMetadataProvider, DomainMetadataProvider>(); services.AddSingleton(factory => { var provider = factory.GetService <IDomainMetadataProvider>(); return(provider.GetDomainMetadata()); }); services.AddTransient <IPersistentObjectActivator, PersistentObjectActivator>(); services.AddScoped(typeof(IRepository <,>), typeof(ProxyRepository <,>)); services.AddScoped(typeof(IReadOnlyRepository <,>), typeof(ProxyReadOnlyRepository <,>)); services.AddScoped(typeof(IRepositoryFactory <,>), typeof(DefaultRepositoryFacotry <,>)); services.AddScoped(typeof(IFreeRepository <,>), typeof(ProxyFreeRepository <,>)); services.AddScoped(typeof(IReadOnlyFreeRepository <,>), typeof(ProxyReadOnlyFreeRepository <,>)); services.AddScoped(typeof(IFreeRepositoryFactory <,>), typeof(DefaultFreeRepositoryFactory <,>)); //LifeTime services.AddScoped <IRepositoryPreSaveChanges, DomainEventsRepositoryLifetime>(); }
public override void ConfigServices(ModuleConfigServiceContext context) { var services = context.Services; services.AddSingleton <IDataWrapperExecutor, DefaultWrapperExecutor>(); services.AddSingleton <IConfigureOptions <MvcOptions>, MvcOptionsConfigure>(); }
public override void ConfigServices(ModuleConfigServiceContext context) { var services = context.Services; //add jwt supporter. services.TryAddSingleton <IJwtSupporter, JwtSupporter>(); services.AddOptions <MiCakeJwtOptions>(); }
public override void PreConfigServices(ModuleConfigServiceContext context) { context.Services.AddSingleton <IAutofacLocator, AutofacLocator>(provider => { AutofacLocator.Instance.Locator = provider.GetAutofacRoot(); return(AutofacLocator.Instance); }); }
public override void PreConfigServices(ModuleConfigServiceContext context) { var services = context.Services; services.TryAddTransient <IEFSaveChangesLifetime, DefaultEFSaveChangesLifetime>(); //add ef repository provider services.AddScoped(typeof(IRepositoryProvider <,>), typeof(EFRepositoryProvider <,>)); }
public override void ConfigServices(ModuleConfigServiceContext context) { context.RegisterRepository <IStepFlyUserRepository, StepFlyUserRepository>(); context.RegisterRepository <IHomeConfigRepository, HomeConfigRepository>(); context.RegisterRepository <INoticeRepository, NoticeRepository>(); context.RegisterRepository <IUserRoleRepository, UserRoleRepository>(); context.RegisterRepository <IFeedbackRepository, FeedbackRepository>(); context.RegisterRepository <IStepFlyHistoryRepository, StepFlyHistoryRepository>(); context.RegisterRepository <IVIPUserRepository, VIPUserRepository>(); }
public override void PreConfigServices(ModuleConfigServiceContext context) { var services = context.Services; var moudules = context.MiCakeModules; //regiter all domain event handler to services services.ResigterDomainEventHandler(moudules); services.AddSingleton <IEventDispatcher, EventDispatcher>(); }
public override void ConfigServices(ModuleConfigServiceContext context) { var services = context.Services; services.AddSingleton <IDataWrapperExecutor, DefaultWrapperExecutor>(); services.AddSingleton <IConfigureOptions <MvcOptions>, MvcOptionsConfigure>(); //This services is only use in asp net core middleware. services.AddScoped <IMiCakeCurrentRequestContext, MiCakeCurrentRequestContext>(); }
public override void PreConfigServices(ModuleConfigServiceContext context) { var services = context.Services; //add ef repository provider services.AddScoped(typeof(IRepositoryProvider <,>), typeof(EFRepositoryProvider <,>)); //[Cancel:See Azure Board #ISSUE 12] add ef core interceptor //services.AddScoped(typeof(SaveChangesInterceptor)); }
//Inject service into container according to matching rules private void AutoRegisterServices(ModuleConfigServiceContext context) { var serviceRegistrar = new DefaultServiceRegistrar(context.Services); if (ApplicationOptions.FindAutoServiceTypes != null) { serviceRegistrar.SetServiceTypesFinder(ApplicationOptions.FindAutoServiceTypes); } serviceRegistrar.Register(context.MiCakeModules); }
public override void ConfigServices(ModuleConfigServiceContext context) { //todo : if iunitofworkmanager life is singleton,Internal context will be in conflict. context.Services.AddScoped <IUnitOfWorkManager, UnitOfWorkManager>(); context.Services.AddTransient <IUnitOfWork, UnitOfWork>(); var defaultUowOptions = new UnitOfWorkDefaultOptions() { Limit = UnitOfWorkLimit.Required }; context.Services.AddSingleton(Microsoft.Extensions.Options.Options.Create(defaultUowOptions)); }
public override void PreConfigServices(ModuleConfigServiceContext context) { var services = context.Services; services.TryAddTransient <IEFSaveChangesLifetime, DefaultEFSaveChangesLifetime>(); //add ef repository provider services.AddScoped(typeof(IRepositoryProvider <,>), typeof(EFRepositoryProvider <,>)); services.AddScoped(typeof(IFreeRepositoryProvider <,>), typeof(EFFreeRepositoryProvider <,>)); services.AddTransient(typeof(EFCorePoManager <,>)); //[Cancel:See Azure Board #ISSUE 12] add ef core interceptor //services.AddScoped(typeof(SaveChangesInterceptor)); }
public override void PostConfigServices(ModuleConfigServiceContext context) { var services = context.Services; var modules = context.MiCakeModules; //Select UseAutoMapperAttribute module. var autoMapperAsms = modules.Where(s => s.ModuleType.GetCustomAttribute <UseAutoMapperAttribute>() != null) .Select(s => s.Assembly).ToArray(); services.AddAutoMapper(cfg => { cfg.DisableConstructorMapping(); }, autoMapperAsms); }
/// <summary> /// Add customer repository. /// </summary> /// <param name="serviceType">Interface type of repository</param> /// <param name="implementationType">Implementation type of repository</param> public static void RegisterRepository(this ModuleConfigServiceContext context, Type serviceType, Type implementationType) { if (!DomainTypeHelper.IsRepository(serviceType)) { throw new ArgumentException($"{serviceType.FullName} is not a {nameof(IRepository)},Please give a right type!"); } if (!DomainTypeHelper.IsRepository(implementationType)) { throw new ArgumentException($"{implementationType.FullName} is not a {nameof(IRepository)},Please give a right type!"); } var services = context.Services; services.AddTransient(serviceType, implementationType); }
/// <summary> /// Add customer <see cref="IDomainService"/> /// </summary> /// <param name="context"></param> /// <param name="serviceType">Interface type of domain service</param> /// <param name="implementationType">ImplementationType type of domain service</param> /// <param name="miCakeServiceLifeTime"><see cref="MiCakeServiceLifetime"/></param> public static void RegisterDomainService( this ModuleConfigServiceContext context, Type serviceType, Type implementationType, MiCakeServiceLifetime miCakeServiceLifeTime = MiCakeServiceLifetime.Transient) { if (!DomainTypeHelper.IsDomainService(serviceType)) { throw new ArgumentException($"{serviceType.FullName} is not a domain service,Please give a right type!"); } if (!DomainTypeHelper.IsRepository(implementationType)) { throw new ArgumentException($"{implementationType.FullName} is not a domain service,Please give a right type!"); } var serviceDescpritor = new ServiceDescriptor(serviceType, implementationType, miCakeServiceLifeTime.ConvertToMSLifetime()); context.Services.TryAdd(serviceDescpritor); }
public override void ConfigServices(ModuleConfigServiceContext context) { var auditOptions = (MiCakeAuditOptions)context.MiCakeApplicationOptions.AdditionalInfo.TakeOut(MiCakeBuilderAuditCoreExtension.AuditForApplicationOptionsKey); var services = context.Services; if (auditOptions?.UseAudit != false) { //Audit Executor services.AddScoped <IAuditExecutor, DefaultAuditExecutor>(); //Audit CreationTime and ModifationTime services.AddScoped <IAuditProvider, DefaultTimeAuditProvider>(); //RepositoryLifeTime services.AddTransient <IRepositoryPreSaveChanges, AuditRepositoryLifetime>(); if (auditOptions?.UseSoftDeletion != false) { //Audit Deletion Time services.AddScoped <IAuditProvider, SoftDeletionAuditProvider>(); //RepositoryLifeTime services.AddTransient <IRepositoryPreSaveChanges, SoftDeletionRepositoryLifetime>(); } } }
public override void ConfigServices(ModuleConfigServiceContext context) { context.RegisterRepository <IItineraryRepository, ItineraryRepository>(); context.RegisterRepository <IUserRepository, UserRepository>(); context.RegisterRepository <INewIdeaRepository, NewIdeaRepository>(); }
public override void ConfigServices(ModuleConfigServiceContext context) { var services = context.Services; }
public override void PreConfigServices(ModuleConfigServiceContext context) { StoreConfig.Instance.AddModelProvider(new SoftDeletionStoreEntityConfig()); }
/// <summary> /// Add customer repository. /// </summary> /// <typeparam name="TService">Interface type of repository</typeparam> /// <typeparam name="TImpl">Implementation type of repository</typeparam> public static void RegisterRepository <TService, TImpl>(this ModuleConfigServiceContext context) { RegisterRepository(context, typeof(TService), typeof(TImpl)); }
public override void ConfigServices(ModuleConfigServiceContext context) { context.RegisterRepository <IUserRepository, UserRepository>(); context.RegisterRepository <IUserWithWechatRepository, UserWithWechatRepository>(); }
public virtual void PreConfigServices(ModuleConfigServiceContext context) { }
public override void ConfigServices(ModuleConfigServiceContext context) { context.AutoRegisterRepositories(typeof(BaseMiCakeModule).Assembly); }
public override void ConfigServices(ModuleConfigServiceContext context) { var services = context.Services; services.AddMessageBus(); }
/// <summary> /// Add customer <see cref="IDomainService"/> /// </summary> /// <typeparam name="TService">Interface type of domain service</typeparam> /// <typeparam name="TImpl">ImplementationType type of domain service</typeparam> /// <param name="context"></param> /// <param name="miCakeServiceLifeTime"><see cref="MiCakeServiceLifetime"/></param> public static void RegisterDomainService <TService, TImpl>( this ModuleConfigServiceContext context, MiCakeServiceLifetime miCakeServiceLifeTime = MiCakeServiceLifetime.Transient) { RegisterDomainService(context, typeof(TService), typeof(TImpl), miCakeServiceLifeTime); }
public override void ConfigServices(ModuleConfigServiceContext context) { var services = context.Services; services.TryAddSingleton <IPersistentObjectMapper, MapsterPersistentObjectMapper>(); }
//添加需要所需要的注入服务 public override void ConfigServices(ModuleConfigServiceContext context) { context.Services.AddSingleton <IUnitOfWorkManager, UnitOfWorkManager>(); context.Services.AddTransient <IUnitOfWork, UnitOfWork>(); }
public override void ConfigServices(ModuleConfigServiceContext context) { }