public async Task <string> Render(TemplateRenderModel model)
        {
            var html = await viewToStringRenderer.RenderViewToStringAsync(
                $"{model.Language.ToLowerInvariant()}/{model.Template}/{model.Template}.cshtml", model.Model);

            return(model.Stringify ? JsonConvert.SerializeObject(html) : html);
        }
Beispiel #2
0
        /// <summary>
        /// Parse params from parameters
        /// </summary>
        /// <param name="parameters"></param>
        private void ParseParams(string[] parameters)
        {
            /*
             * Params:
             * * Parent Id
             * * Show Parent
             * * Parent Template
             * * Children Template
             */

            ParentTemplateName      = DefaultTemplate;
            ChildTemplateName       = DefaultChildTemplate;
            ChildMobileTemplateName = DefaultChildMobileTemplate;

            //ParentId
            if (parameters.Length > 1 && !string.IsNullOrEmpty(parameters[1]))
            {
                ParentId = parameters[1].ToNullableInt();
            }

            //ShowParentMenu
            if (parameters.Length > 2 && !string.IsNullOrEmpty(parameters[2]) && ParentId.HasValue)
            {
                ShowParentMenu = parameters[1].ToBool(false);
            }

            //ParentTemplateName
            if (parameters.Length > 3 && !string.IsNullOrEmpty(parameters[3]))
            {
                ParentTemplateName = parameters[3];
            }

            //ChildTemplateName
            if (parameters.Length > 4 && !string.IsNullOrEmpty(parameters[4]))
            {
                ChildTemplateName = parameters[4];
            }

            //ChildTemplateName
            if (parameters.Length > 5 && !string.IsNullOrEmpty(parameters[5]))
            {
                ChildMobileTemplateName = parameters[5];
            }

            _parentTemplate = _templateServices.GetTemplateByName(ParentTemplateName);
            if (_parentTemplate == null)
            {
                throw new Exception(string.Format("Template {0} is not founded.", ParentTemplateName));
            }
            _childTemplate = _templateServices.GetTemplateByName(ChildTemplateName);
            if (_childTemplate == null)
            {
                throw new Exception(string.Format("Template {0} is not founded.", ChildTemplateName));
            }
            _childMobileTemplate = _templateServices.GetTemplateByName(ChildMobileTemplateName);
            if (_childMobileTemplate == null)
            {
                throw new Exception(string.Format("Template {0} is not founded.", ChildMobileTemplateName));
            }
        }
Beispiel #3
0
 private string RenderMobileMenus(List <DynamicMenuCurlyBracket> menus, TemplateRenderModel template)
 {
     if (menus.Any())
     {
         foreach (var dynamicMenuCurlyBracket in menus)
         {
             //Recursive render child html
             dynamicMenuCurlyBracket.ChildMenusString = RenderMobileMenus(dynamicMenuCurlyBracket.ChildMenus, _childMobileTemplate);
         }
         return(_templateServices.Parse(template.Content, menus, null, template.CacheName));
     }
     return(string.Empty);
 }
Beispiel #4
0
        public async Task <ContentResult> Render([FromBody] TemplateRenderModel model)
        {
            var content = await templatesService.Render(model);

            return(Content(content));
        }