Example #1
0
        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);
            }
        }
Example #2
0
        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);
        }
Example #3
0
        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());
        }
Example #5
0
 public AdminBuilder(IAdminSite adminSite)
 {
     _adminSite = adminSite;
 }