Esempio n. 1
0
        private string FormatPage(FrontTypeInfo typeInfo)
        {
            var componentName = GetComponentName(typeInfo);

            var header = @"import { LitElement, html, property, customElement } from ""lit-element""" + "\n"
                         + "import { InitPage } from './initPage';\n"
                         + $"@customElement('{componentName}')" + "\n"
                         + $"class {typeInfo.Name}Component extends LitElement" + "{\n";

            var footer = "}\n";

            var props =
                string.Join("",
                            typeInfo.FieldInfos.Select(x =>
                                                       "@property({type : " + GetPropertyType(x.FieldType) + "}) " + $"{x.Name}: {ConvertTypeToTypeScript(x.FieldType)}" + "\n")
                            );

            var connected = "connectedCallback() { \n"
                            + "    super.connectedCallback()\n"
                            + $"    new InitPage().Fill('/api/' + location.pathname, this);\n"
                            + "}\n";

            var render = "render() { return html`" + componentName + "`; }";

            return(header + props /*+ connected*/ + render + footer);
        }
Esempio n. 2
0
 private string GetTemplateFilenameWithoutExtension(FrontTypeInfo typeInfo)
 {
     /*
      * if (typeInfo.Name.StartsWith("Users"))
      *  return System.IO.Path.Combine("users", typeInfo.Name + "Component");
      * if (typeInfo.Name.StartsWith("Vendeur"))
      *  return System.IO.Path.Combine("vendeur", typeInfo.Name + "Component");
      */
     return(System.IO.Path.Combine(typeInfo.Name + "Component"));
 }
 public IEnumerable <Type> GetNeededTypes(FrontTypeInfo pageTypeInfo)
 {
     return(pageTypeInfo.FormMemberInfos
            .SelectMany(f => new Type[] { f.MessageType, f.ResponseType })
            .Concat(pageTypeInfo.FieldInfos
                    .Where(f => f.FieldType != typeof(string) &&
                           f.FieldType != typeof(string[]))
                    .Select(f => f.FieldType)
                    .ToList()
                    )
            .Distinct()
            .ToList());
 }
        public FrontTypeInfo GetPageTypeInfo(Type pageType)
        {
            var pageResponseType = GetPageResponseType(pageType);
            var typeInfo         = new FrontTypeInfo();

            typeInfo.Name            = pageType.Name;
            typeInfo.IsPage          = true;
            typeInfo.PageUrl         = GetPageParameterizedUrl(pageType);
            typeInfo.FieldInfos      = GetFields(pageResponseType);
            typeInfo.LinkMemberInfos = GetLinks(pageResponseType);
            typeInfo.FormMemberInfos = GetForms(pageResponseType);
            return(typeInfo);
        }
        private string FormatMessage(FrontTypeInfo type)
        {
            var r = $"class {type.Name} " + "{\n";

            foreach (var m in type.FieldInfos)
            {
                r += $"    {m.Name}: {m.FieldType.Name};\n";
            }

            foreach (var m in type.LinkMemberInfos)
            {
                r += $"    {m.Name}: string;\n";
            }

            r += "}\n\n";
            return(r);
        }
        private string FormatPage(FrontTypeInfo type)
        {
            var r = $"abstract class {type.Name} extends Page " + "{\n";

            r += $"    PageUrl:string = '{type.PageUrl}';\n";

            foreach (var m in type.FieldInfos)
            {
                r += $"    {m.Name}: {m.FieldType.Name};\n";
            }

            foreach (var m in type.LinkMemberInfos)
            {
                r += $"    {m.Name}: string;\n";
            }

            foreach (var m in type.FormMemberInfos)
            {
                r += $"    {m.Name}: Form<{m.MessageType.Name}, {m.ResponseType.Name}>;\n";
            }

            r += "}\n\n";
            return(r);
        }
 public string FormatType(FrontTypeInfo type)
 {
     return(type.IsPage ? FormatPage(type) : FormatMessage(type));
 }
Esempio n. 8
0
        private string GetComponentName(FrontTypeInfo typeInfo)
        {
            var name = typeInfo.Name;

            return(name.Replace("_", "-").ToLowerInvariant());
        }