// Mix: Check custom cms config private void VerifyInitData(IServiceCollection services) { // Mix: Migrate db if already inited if (!MixService.GetConfig <bool>("IsInit")) { using (var ctx = MixService.GetDbContext()) { ctx.Database.Migrate(); var transaction = ctx.Database.BeginTransaction(); var sysDatabasesFile = MixFileRepository.Instance.GetFile("sys_databases", MixFileExtensions.Json, $"{MixFolders.JsonDataFolder}"); var sysDatabases = JObject.Parse(sysDatabasesFile.Content)["data"].ToObject <List <Lib.ViewModels.MixDatabases.ImportViewModel> >(); foreach (var db in sysDatabases) { if (!ctx.MixDatabase.Any(m => m.Name == db.Name)) { db.SaveModel(true, ctx, transaction); } } transaction.Commit(); transaction.Dispose(); } } // Mix: Check if require ssl if (MixService.GetConfig <bool>("IsHttps")) { services.AddHttpsRedirection(options => { options.RedirectStatusCode = StatusCodes.Status308PermanentRedirect; options.HttpsPort = 443; }); } }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts. app.UseHsts(); } if (!MixService.GetConfig <bool>(MixAppSettingKeywords.IsInit)) { var context = MixService.GetDbContext(); var pendingMigration = context.Database.GetPendingMigrations(); if (pendingMigration.Count() > 0) { context.Database.Migrate(); } } app.UseResponseCompression(); app.UseCors(MixcoreAllowSpecificOrigins); var provider = new FileExtensionContentTypeProvider(); // Add new mappings app.UseDefaultFiles(); provider.Mappings[".vue"] = "application/text"; app.UseStaticFiles(new StaticFileOptions { ContentTypeProvider = provider }); //app.UseStaticFiles(); //app.UseGraphiQl("/api/graphql"); app.UseRouting(); app.UseAuthentication(); app.UseAuthorization(); #region Additionals Config for Mixcore Cms if (MixService.GetConfig <bool>("IsHttps")) { app.UseHttpsRedirection(); } app.UseMixRestApi(); //app.UseMixGprc(); app.UseMixSignalR(); app.UseMixRoutes(); app.UseMixScheduler(); #endregion Additionals Config for Mixcore Cms }
// Mix: Check custom cms config private void VerifyInitData(IServiceCollection services) { // Mix: Migrate db if already inited if (!MixService.GetAppSetting <bool>(MixAppSettingKeywords.IsInit)) { using (var ctx = MixService.GetDbContext()) { ctx.Database.Migrate(); var transaction = ctx.Database.BeginTransaction(); var sysDatabasesFile = MixFileRepository.Instance.GetFile("sys_databases", MixFileExtensions.Json, $"{MixFolders.DataFolder}"); var sysDatabases = JObject.Parse(sysDatabasesFile.Content)["data"].ToObject <List <Lib.ViewModels.MixDatabases.ImportViewModel> >(); foreach (var db in sysDatabases) { if (!ctx.MixDatabase.Any(m => m.Name == db.Name)) { db.Id = 0; db.SaveModel(true, ctx, transaction); } } transaction.Commit(); transaction.Dispose(); } using (var cacheCtx = MixCacheService.GetCacheDbContext()) { cacheCtx.Database.Migrate(); } var serviceProvider = services.BuildServiceProvider(); var _roleManager = serviceProvider.GetService <RoleManager <IdentityRole> >(); InitCmsService.InitRolesAsync(_roleManager).GetAwaiter(); } // Mix: Check if require ssl if (MixService.GetAppSetting <bool>("IsHttps")) { services.AddHttpsRedirection(options => { options.RedirectStatusCode = StatusCodes.Status308PermanentRedirect; options.HttpsPort = 443; }); } }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts. app.UseHsts(); } if (!MixService.GetAppSetting <bool>(MixAppSettingKeywords.IsInit)) { var context = MixService.GetDbContext(); var pendingMigration = context.Database.GetPendingMigrations(); if (pendingMigration.Count() > 0) { context.Database.Migrate(); } } app.UseResponseCompression(); app.UseCors(MixcoreAllowSpecificOrigins); int responseCache = MixService.GetAppSetting <int>(MixAppSettingKeywords.ResponseCache); if (responseCache > 0) { app.UseResponseCaching(); app.Use(async(context, next) => { context.Response.GetTypedHeaders().CacheControl = new Microsoft.Net.Http.Headers.CacheControlHeaderValue() { Public = true, NoCache = false, SharedMaxAge = TimeSpan.FromSeconds(responseCache), MaxAge = TimeSpan.FromSeconds(responseCache), }; context.Response.Headers[Microsoft.Net.Http.Headers.HeaderNames.Vary] = new string[] { "Accept-Encoding" }; await next(); }); } var provider = new FileExtensionContentTypeProvider(); // Add new mappings app.UseDefaultFiles(); provider.Mappings[".vue"] = "application/text"; app.UseStaticFiles(new StaticFileOptions { ContentTypeProvider = provider }); //app.UseGraphiQl("/api/graphql"); app.UseStaticFiles(); app.UseRouting(); app.UseAuthentication(); app.UseAuthorization(); #region Additionals Config for Mixcore Cms if (MixService.GetAppSetting <bool>("IsHttps")) { app.UseHttpsRedirection(); } app.UseMixRestApi(); //app.UseMixGprc(); app.UseMixSignalR(); app.UseMixRoutes(); #endregion Additionals Config for Mixcore Cms }