public virtual void GenerateComponent(string module, PageRenderDTO viewPath, PageJsonData data)
        {
            PageDTO p          = _unit.PageRepository.FindSingleForRendering(d => d.Id == viewPath.Id);
            string  scriptPath = _fileNameService.GetComponentFilePath(p.TenantCode, p.Page.ViewPath) + ".ts";

            using (Out.Set(ConsoleColor.DarkRed))
            {
                Out.Write(" Ts: ");
            }


            if (File.Exists(scriptPath) && !_opts.ReplaceComponentScripts)
            {
                WriteColored("Exists", ConsoleColor.Cyan);
                Out.WriteLine();
                return;
            }


            string scriptTemplate = "";

            if (p.ParentHasResource)
            {
                scriptTemplate = _molds.ComponentMold;
            }
            else
            {
                scriptTemplate = _molds.BasicComponent;
            }

            if (p.BaseViewPath == null)
            {
                WriteException(new Exception("Please process template first!!"), false);
                WriteFailed();
                return;
            }

            string script = _writer.FillStringParameters(scriptTemplate, new ComponentTsModel
            {
                BaseClassLocation = _fileNameService.GetBaseComponentFilePath(p.BaseViewPath, true),
                BaseClass         = p.BaseViewPath.GetAfterLast("/") + "Base",
                ComponentName     = p.Page.Name,
                TemplateName      = _fileNameService.ApplyConvension(p.Page.Name, AppParts.Component),

                Domain     = p.DomainName,
                Resource   = p.ResourceName,
                Selector   = _fileNameService.GetComponentSelector(p.Page.Name),
                ViewParams = data.ViewParams.ToJson(new Newtonsoft.Json.JsonSerializerSettings {
                    StringEscapeHandling = Newtonsoft.Json.StringEscapeHandling.EscapeHtml
                }),
                Sources      = data.Sources.ToJsonIndent(),
                CollectionId = p.CollectionId == null ? "null" : "'" + p.CollectionId + "'"
            });

            Utils.CreateFolderForFile(scriptPath);
            File.WriteAllText(scriptPath, script);

            WriteSuccess();
        }
 public virtual PageJsonData GenerateComponentTemplate(string moduleName, PageRenderDTO dto)
 {
     if (RenderPage(dto.Id, out RenderedPageResult res))
     {
         return(res);
     }
     return(null);
 }
Example #3
0
        public virtual void RenderPage(string moduleName, PageRenderDTO dto)
        {
            _output.Write("Writing Component \"" + dto.ViewPath + "\" : ");
            _output.GotoColumn(9);
            var data = _html.GenerateComponentTemplate(moduleName, dto);

            _ts.GenerateComponent(moduleName, dto, data);

            _output.WriteLine();
        }
        public IActionResult RenderPage(long id)
        {
            var dto = new PageRenderDTO {
                Id = id
            };

            molds.RenderPage(null, dto);
            sc.GenerateModuleDefinitionByPage(dto);
            SubmitResult = new Data.Helpers.SubmitResult(0, "success_message");
            return(Respond());
        }
        public virtual void GenerateModuleDefinitionByPage(PageRenderDTO dto)
        {
            var data = _unit.PageRepository.FindSingleAs(
                d => new { d.Domain.Chain, HasNav = d.NavigationPages.Any(), d.Tenant.Code },
                d => d.Id == dto.Id
                );

            var dom = _unit.DomainRepository.GetSingleValue(d => d.Id, d => data.Chain.Contains("|" + d.Id + "|") && d.ParentId == null);

            GenerateDomainModuleById(data.Code, dom);
            if (data.HasNav)
            {
                GenerateRoutes(data.Code);
            }
        }