public CoreAdminService(string moduleName, IServiceProvider serviceProvider) { _adminSiteProvider = serviceProvider.GetService <IAdminSiteProvider>(); _logger = serviceProvider.GetService <ILogger <CoreAdminService> >(); _moduleRegistry = serviceProvider.GetService <IModuleRegistry>(); _serviceProvider = serviceProvider; _serializer = new JsonSerializer(); _serializer.NullValueHandling = NullValueHandling.Ignore; _serializer.Converters.Add(new Core.Common.Json.GuidConverter()); var adminConfiguratorType = _moduleRegistry.GetModuleMetaInfoByModuleName(moduleName)?.AdminConfiguratorTypeInfo; if (adminConfiguratorType == null) { throw new ArgumentNullException(string.Format(Resources.AdminConfiguratorNotFound, moduleName)); } _adminSite = _adminSiteProvider.GetAdminConfig(adminConfiguratorType.AsType()); if (_adminSite.AdminType == AdminType.Entity) { _adminRepository = new AdminRepository(_adminSite, _serviceProvider); } }
private void ConfigureAdminSites(TypeInfo adminConfiguratorType, IAdminSite adminSite, AdminBuilder adminBuilder) { var objAdminConfigurator = Activator.CreateInstance(adminConfiguratorType); var genericInterface = typeof(IAdminConfigurator); //var adminConfiguratorInterface = genericInterface.MakeGenericType(dbContextType); var configureAdminMethodInfo = genericInterface.GetMethod("ConfigureAdmin"); configureAdminMethodInfo.Invoke(objAdminConfigurator, new object[] { adminBuilder }); _adminConfigStore.GetOrAdd(adminConfiguratorType.AsType(), adminSite); }
public void ConfigureAdmin(IAdminSite adminSite) { //adminSite.SiteName = "TestAdmin"; ////Register Student model by specifying the fields to be included with custom configuration //adminSite.Register<User>(config => //{ // config.FieldConfig // .AddField(s => s.FirstName).AddInlineField(s => s.LastName) // .AddField(s => s.PhoneNumber) // .AddField(s => s.UserRole); //}); }
public AdminRepository(IAdminSite adminSite, IServiceProvider serviceProvider) { _logger = serviceProvider.GetService <ILogger <AdminRepository> >(); _adminSite = adminSite; if (_adminSite == null) { throw new InvalidOperationException($"Admin site is not found for type {_adminConfiguratorType}"); } _dbContext = (DbContext)serviceProvider.GetService(_adminSite.DbContextType); _entityManager = new EntityManager(_dbContext); _serializer.Converters.Add(new Core.Common.Json.GuidConverter()); }
public AdminBuilder(IAdminSite adminSite) { _adminSite = adminSite; }