/// <summary> /// 应用初始化 /// </summary> /// <param name="containerBuilder">容器构建器</param> public override void Initialize(ContainerBuilder containerBuilder) { //注册标识图设置 TenantLogoSettings.RegisterSettings(tenantLogoSettingsElement); //注册ResourceAccessor的应用资源 ResourceAccessor.RegisterApplicationResourceManager(ApplicationId, "Spacebuilder.Group.Resources.Resource", typeof(Spacebuilder.Group.Resources.Resource).Assembly); InvitationType.Register(new InvitationType { Key = InvitationTypeKeys.Instance().InviteJoinGroup(), Name = "邀请参加群组", Description = "" }); InvitationType.Register(new InvitationType { Key = InvitationTypeKeys.Instance().ApplyJoinGroup(), Name = "申请加入群组", Description = "" }); containerBuilder.Register(c => new GroupActivityReceiverGetter()).Named <IActivityReceiverGetter>(ActivityOwnerTypes.Instance().Group().ToString()).SingleInstance(); //groupId与groupKey的查询器 containerBuilder.Register(c => new DefaultGroupIdToGroupKeyDictionary()).As <GroupIdToGroupKeyDictionary>().SingleInstance(); //注册全文检索搜索器 containerBuilder.Register(c => new GroupSearcher("群组", "~/App_Data/IndexFiles/Group", true, 7)).As <ISearcher>().Named <ISearcher>(GroupSearcher.CODE).SingleInstance(); ThemeService.RegisterThemeResolver(PresentAreaKeysOfBuiltIn.GroupSpace, new GroupSpaceThemeResolver()); //群组推荐 containerBuilder.Register(c => new GroupApplicationStatisticDataGetter()).Named <IApplicationStatisticDataGetter>(this.ApplicationKey).SingleInstance(); containerBuilder.Register(c => new GroupTenantAuthorizationHandler()).As <ITenantAuthorizationHandler>().SingleInstance(); }
public ActionResult Upgrading_Database_Ready() { SqlConnection sqlConnection = GetConnection(); //注册应用中的Application.Config foreach (var applicationConfig in ApplicationConfigManager.Instance().GetAllApplicationConfigs()) { if (applicationConfig.Element("tenantAttachmentSettings") != null) { TenantAttachmentSettings.RegisterSettings(applicationConfig.Element("tenantAttachmentSettings")); } if (applicationConfig.Element("tenantLogoSettings") != null) { TenantLogoSettings.RegisterSettings(applicationConfig.Element("tenantLogoSettings")); } } ConcurrentDictionary <string, string> messages = new ConcurrentDictionary <string, string>(); //修改3.2版本的表名 string reNameSqlFile = SetupHelper.GetUpgradeReNameFile(); try { SetupHelper.ExecuteInFile(sqlConnection, reNameSqlFile, out messages); } catch (Exception e) { if (!messages.ContainsKey("在文件:" + reNameSqlFile + " 中产生异常")) { messages["在文件:" + reNameSqlFile + " 中产生异常"] = e.Message + "\r\n"; } else { messages["在文件:" + reNameSqlFile + " 中产生异常"] += e.Message + "\r\n"; } } foreach (var message in messages) { WriteLogFile(string.Format("{0}:{1}", message.Key, message.Value)); } if (messages.Count > 0) { return(Json(new StatusMessageData(StatusMessageType.Error, "升级数据库准备失败,请查看升级日志"))); } else { return(Json(new StatusMessageData(StatusMessageType.Success, "升级数据库准备就绪。"))); } }
/// <summary> /// 应用初始化 /// </summary> /// <param name="containerBuilder">容器构建器</param> public override void Initialize(ContainerBuilder containerBuilder) { //注册ResourceAccessor的应用资源 ResourceAccessor.RegisterApplicationResourceManager(ApplicationId, "Spacebuilder.Bar.Resources.Resource", typeof(Spacebuilder.Bar.Resources.Resource).Assembly); //注册附件设置 TenantAttachmentSettings.RegisterSettings(tenantAttachmentSettingsElement); //注册标识图设置 TenantLogoSettings.RegisterSettings(tenantLogoSettingsElement); //注册帖吧正文解析器 containerBuilder.Register(c => new BarBodyProcessor()).Named <IBodyProcessor>(TenantTypeIds.Instance().Bar()).SingleInstance(); containerBuilder.Register(c => new BarSectionActivityReceiverGetter()).Named <IActivityReceiverGetter>(ActivityOwnerTypes.Instance().BarSection().ToString()).SingleInstance(); containerBuilder.Register(c => new BarSearcher("帖吧", "~/App_Data/IndexFiles/Bar", true, 6)).As <ISearcher>().Named <ISearcher>(BarSearcher.CODE).SingleInstance(); containerBuilder.Register(c => new BarApplicationStatisticDataGetter()).Named <IApplicationStatisticDataGetter>(this.ApplicationKey).SingleInstance(); containerBuilder.Register(c => new BarTenantAuthorizationHandler()).As <ITenantAuthorizationHandler>().SingleInstance(); }
/// <summary> /// 应用初始化 /// </summary> /// <param name="containerBuilder">容器构建器</param> public override void Initialize(ContainerBuilder containerBuilder) { //注册ResourceAccessor的应用资源 ResourceAccessor.RegisterApplicationResourceManager(ApplicationId, "Spacebuilder.Bar.Resources.Resource", typeof(Spacebuilder.Bar.Resources.Resource).Assembly); //注册附件设置 TenantAttachmentSettings.RegisterSettings(tenantAttachmentSettingsElement); //注册标识图设置 TenantLogoSettings.RegisterSettings(tenantLogoSettingsElement); //注册帖吧站点设置 containerBuilder.Register(c => new BarSettingsManager()).As <IBarSettingsManager>().SingleInstance(); //注册帖吧正文解析器 containerBuilder.Register(c => new BarBodyProcessor()).Named <IBodyProcessor>(TenantTypeIds.Instance().Bar()).SingleInstance(); containerBuilder.Register(c => new BarIndexEventModule()).As <IEventMoudle>().SingleInstance(); containerBuilder.Register(c => new BarRatingEventModule()).As <IEventMoudle>().SingleInstance(); containerBuilder.Register(c => new BarPostEventModule()).As <IEventMoudle>().SingleInstance(); containerBuilder.Register(c => new BarThreadEventModule()).As <IEventMoudle>().SingleInstance(); containerBuilder.Register(c => new BarSectionEventModule()).As <IEventMoudle>().SingleInstance(); containerBuilder.Register(c => new BarSectionActivityReceiverGetter()).Named <IActivityReceiverGetter>(ActivityOwnerTypes.Instance().BarSection().ToString()).SingleInstance(); containerBuilder.Register(c => new BarSearcher("帖吧", "~/App_Data/IndexFiles/Bar", true, 5)).As <ISearcher>().Named <ISearcher>(BarSearcher.CODE).SingleInstance(); containerBuilder.Register(c => new BarOperationLogEventModule()).As <IEventMoudle>().SingleInstance(); containerBuilder.Register(c => new BarApplicationStatisticDataGetter()).Named <IApplicationStatisticDataGetter>(this.ApplicationKey).SingleInstance(); containerBuilder.Register(c => new BarUrlGetter()).As <IBarUrlGetter>().SingleInstance(); containerBuilder.Register(c => new GroupUrlGetter()).As <IBarUrlGetter>().SingleInstance(); containerBuilder.Register(c => new BarCommentUrlGetter()).As <ICommentUrlGetter>().SingleInstance(); containerBuilder.Register(c => new BarOwnerDataGetter()).As <IOwnerDataGetter>().SingleInstance(); containerBuilder.Register(c => new BarPostOwnerDataGetter()).As <IOwnerDataGetter>().SingleInstance(); containerBuilder.Register(c => new BarTenantAuthorizationHandler()).As <ITenantAuthorizationHandler>().SingleInstance(); containerBuilder.Register(c => new BarThreadRecommendUrlGetter()).As <IRecommendUrlGetter>().SingleInstance(); containerBuilder.Register(c => new BarSectionRecommendUrlGetter()).As <IRecommendUrlGetter>().SingleInstance(); containerBuilder.Register(c => new BarThreadAtUserAssociatedUrlGetter()).As <IAtUserAssociatedUrlGetter>().SingleInstance(); containerBuilder.Register(c => new BarPostAtUserAssociatedUrlGetter()).As <IAtUserAssociatedUrlGetter>().SingleInstance(); }
/// <summary> /// 初始化程序安装步骤 /// </summary> /// <returns></returns> void InitializeSetup() { var containerBuilder = new ContainerBuilder(); containerBuilder.Register(c => new DefaultCacheService(new RuntimeMemoryCache(), 1.0F)).As <ICacheService>().SingleInstance(); containerBuilder.RegisterAssemblyTypes(Assembly.Load("Spacebuilder.Common")).Where(t => t.Name.EndsWith("SettingsManager")).AsImplementedInterfaces().SingleInstance(); containerBuilder.Register(c => new DefaultStoreProvider(@"~/Uploads")).As <IStoreProvider>().Named <IStoreProvider>("CommonStorageProvider").SingleInstance(); //注册PageResourceManager bool pageResourceDebugEnabled = false; if (ConfigurationManager.AppSettings["PageResource:DebugEnabled"] != null) { if (!bool.TryParse(ConfigurationManager.AppSettings["PageResource:DebugEnabled"], out pageResourceDebugEnabled)) { pageResourceDebugEnabled = false; } } //注册标题图的配置 TenantLogoSettings.RegisterSettings(LogoConfigManager.Instance().GetAllLogoConfigs()); string resourceSite = null; if (ConfigurationManager.AppSettings["PageResource:Site"] != null) { resourceSite = ConfigurationManager.AppSettings["PageResource:Site"]; } //用户业务逻辑 containerBuilder.Register(c => new UserService()).As <IUserService>().SingleInstance(); containerBuilder.Register(c => new PageResourceManager("Spacebuilder v4.3正式版") { ResourceSite = resourceSite }).As <IPageResourceManager>().InstancePerHttpRequest(); IContainer container = containerBuilder.Build(); //将Autofac容器中的实例注册到mvc自带DI容器中(这样才获取到每请求缓存的实例) DependencyResolver.SetResolver(new AutofacDependencyResolver(container)); DIContainer.RegisterContainer(container); //注册皮肤选择器 Type themeResolverType = Type.GetType("Spacebuilder.Setup.SetupThemeResolver,Spacebuilder.Setup"); ConstructorInvoker themeResolverConstructor = themeResolverType.DelegateForCreateInstance(); IThemeResolver themeResolver = themeResolverConstructor() as IThemeResolver; ThemeService.RegisterThemeResolver("Channel", themeResolver); ViewEngines.Engines.Clear(); ViewEngines.Engines.Add(new ThemedViewEngine()); string extensionForOldIIS = ".aspx"; int iisVersion = 0; if (!int.TryParse(System.Configuration.ConfigurationManager.AppSettings["IISVersion"], out iisVersion)) { iisVersion = 7; } if (iisVersion >= 7) { extensionForOldIIS = string.Empty; } RouteTable.Routes.MapRoute( "Channel_Home", // Route name string.IsNullOrEmpty(extensionForOldIIS) ? "" : "Home" + extensionForOldIIS, new { controller = "Install", action = "Start", area = "Setup" } ); RouteTable.Routes.MapRoute( "Install_Home", // Route name string.IsNullOrEmpty(extensionForOldIIS) ? "Install" : "Install" + extensionForOldIIS, new { controller = "Install", action = "Start", area = "Setup" } ); RouteTable.Routes.MapRoute( "Install_Common", "Install/{action}" + extensionForOldIIS, new { controller = "Install", action = "Start", area = "Setup" }); RouteTable.Routes.MapRoute( "Upgrade_Home", // Route name "Upgrade" + extensionForOldIIS, new { controller = "Upgrade", action = "Ready", area = "Setup" } ); RouteTable.Routes.MapRoute( "Upgrade_Common", "Upgrade/{action}" + extensionForOldIIS, new { controller = "Upgrade", action = "Ready", area = "Setup" }); }