コード例 #1
0
        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);
        }
コード例 #2
0
        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;
        }