public async Task LoadAsync() { Dal = new CacheDalCms(true); Business = new BllCms(Dal); foreach (var item in _container.Components) { await Dal.Components.SaveAsync(item).ConfigureAwait(false); } foreach (var item in _container.Cultures) { await Dal.Cultures.SaveAsync(item).ConfigureAwait(false); } foreach (var item in _container.Markets) { await Dal.Markets.SaveAsync(item).ConfigureAwait(false); } foreach (var item in _container.Pages) { await Dal.Pages.SaveAsync(item).ConfigureAwait(false); } foreach (var item in _container.PagesGroups) { await Dal.PagesGroups.SaveAsync(item).ConfigureAwait(false); } foreach (var item in _container.Scripts) { await Dal.Scripts.SaveAsync(item).ConfigureAwait(false); } foreach (var item in _container.Sites) { await Dal.Sites.SaveAsync(item).ConfigureAwait(false); } foreach (var item in _container.Stylesheets) { await Dal.Styles.SaveAsync(item).ConfigureAwait(false); } foreach (var item in _container.Users) { await Dal.Users.SaveAsync(item).ConfigureAwait(false); } await Business.PrepareSiteRoutesAsync().ConfigureAwait(false); }
public CmsEngineService() : base(token => { //*********************************************************************************** var components = CreateComponents(); var markets = CreateMarkets(); var cultures = CreateCultures(); var pagesGroups = CreatePagesGroups(); var styles = CreateStyles(); var scripts = CreateScripts(); var users = CreateUsers(); var sites = CreateSites(); var pages = CreatePages(); //*********************************************************************************** JsonTextSerializerExtensions.Serializer.UseCamelCase = false; JsonTextSerializerExtensions.Serializer.Indent = true; JsonTextSerializerExtensions.Serializer.IgnoreNullValues = true; var dalCms = new CacheDalCms(true); var bllCms = new BllCms(dalCms); Task.WhenAll(components.Select(i => dalCms.Components.SaveAsync(i))).WaitAsync(); Task.WhenAll(markets.Select(i => dalCms.Markets.SaveAsync(i))).WaitAsync(); Task.WhenAll(cultures.Select(i => dalCms.Cultures.SaveAsync(i))).WaitAsync(); Task.WhenAll(styles.Select(i => dalCms.Styles.SaveAsync(i))).WaitAsync(); Task.WhenAll(scripts.Select(i => dalCms.Scripts.SaveAsync(i))).WaitAsync(); Task.WhenAll(users.Select(i => dalCms.Users.SaveAsync(i))).WaitAsync(); Task.WhenAll(sites.Select(i => dalCms.Sites.SaveAsync(i))).WaitAsync(); Task.WhenAll(pagesGroups.Select(i => dalCms.PagesGroups.SaveAsync(i))).WaitAsync(); Task.WhenAll(pages.Select(i => dalCms.Pages.SaveAsync(i))).WaitAsync(); //*********************************************************************************** #region Create Container var container = new CmsContainer(); container.Components.AddRange(components); container.Markets.AddRange(markets); container.Cultures.AddRange(cultures); container.PagesGroups.AddRange(pagesGroups); container.Stylesheets.AddRange(styles); container.Scripts.AddRange(scripts); container.Users.AddRange(users); container.Sites.AddRange(sites); container.Pages.AddRange(pages); var json = container.SerializeToJson(); var jsonBytes = Encoding.UTF8.GetBytes(json); Core.Log.InfoBasic("JSON container: {0} bytes", jsonBytes.Length); container.SerializeToJsonFile("tmp"); var pwBytes = container.SerializeToWBinary(); Core.Log.InfoBasic("PWSerializer container: {0}", pwBytes.Count); #endregion Create Container //*********************************************************************************** Core.Log.InfoBasic("GetPageModel"); var pageModel = bllCms.GetRuntimePageModel("http://localhost:49268/"); //Core.Log.InfoBasic("Render Model"); //bllCms.Render(pageModel, Console.Out); var pModelJson = pageModel.SerializeToJson(); var pModelJsonBin = Encoding.UTF8.GetBytes(pModelJson); Core.Log.InfoBasic("Page Model Json: {0} bytes", pModelJsonBin.Length); var pModelBin = pageModel.SerializeToWBinary(); Core.Log.InfoBasic("Page Model: {0} bytes", pModelBin.Count); pageModel.SerializeToWBinaryFile("pageModel"); pageModel.SerializeToJsonFile("pagemodel.json"); var shs = new SimpleHttpServer(); shs.OnBeginRequest += (HttpContext context, ref bool handled, CancellationToken cancellationToken) => { var url = context.Request.Url.OriginalString; var model = bllCms.GetRuntimePageModel(url); if (model != null) { //using (var sw = new StreamWriter(context.Response.OutputStream, Encoding.UTF8, 4096, true)) // bllCms.Render(model, sw); handled = true; } }; shs.StartAsync(8086); }) { //EndAfterTaskFinish = true; }