public override bool Process(IBase baseObject, Facet facet, IGeneratorConfiguration generatorConfiguration)
        {
            var             uiAttribute  = (UIAttribute)facet.Attribute;
            var             name         = baseObject.GetNavigationName(UIKind.BlankPage);
            var             parentObject = (IParentBase)baseObject;
            var             pagesPath    = generatorConfiguration.ApplicationFolderHierarchy[IonicFileSystemType.Pages];
            var             pagesFolder  = (Folder)generatorConfiguration.FileSystem[pagesPath];
            var             loadKind     = uiAttribute.UILoadKind;
            IModuleAssembly module;
            IEnumerable <ModuleImportDeclaration> imports;

            if (uiAttribute.UILoadKind == UILoadKind.RootPage)
            {
                this.Raise <ApplicationFacetHandler>();
            }

            imports = generatorConfiguration.CreateImports(this, baseObject, pagesFolder, false, 1);

            module            = generatorConfiguration.PushModuleAssembly <AngularModule>(name);
            module.UILoadKind = uiAttribute.UILoadKind;

            BlankPageGenerator.GeneratePage(baseObject, pagesPath, name, generatorConfiguration, module, imports, loadKind);

            return(true);
        }
        public override bool Process(IBase baseObject, Facet facet, IGeneratorConfiguration generatorConfiguration)
        {
            var             uiAttribute  = (UIAttribute)facet.Attribute;
            var             name         = baseObject.GetNavigationName();
            var             parentObject = (IParentBase)baseObject;
            var             pagesPath    = generatorConfiguration.ApplicationFolderHierarchy[IonicFileSystemType.Pages];
            var             pagesFolder  = (Folder)generatorConfiguration.FileSystem[pagesPath];
            var             imports      = generatorConfiguration.CreateImports(this, baseObject, pagesFolder, false, 1);
            var             slidingTabs  = new List <SlidingTab>();
            var             featureKind  = uiAttribute.GetFeatureKind();
            var             isComponent  = featureKind.IsComponent();
            IModuleAssembly module;

            foreach (var childObject in parentObject.GetFollowingChildren(generatorConfiguration.PartsAliasResolver, baseObject.Kind != DefinitionKind.StaticContainer))
            {
                slidingTabs.Add(new SlidingTab(childObject, generatorConfiguration));
            }

            module             = generatorConfiguration.PushModuleAssembly <AngularModule>(name);
            module.UILoadKind  = uiAttribute.UILoadKind;
            module.IsComponent = isComponent;

            SlidingTabsPageGenerator.GeneratePage(baseObject, pagesPath, name, generatorConfiguration, module, imports, slidingTabs, isComponent);

            return(true);
        }
示例#3
0
        public bool Process(IBase baseObject, Facet facet, IGeneratorConfiguration generatorConfiguration)
        {
            var uiAttribute  = (UIAttribute)facet.Attribute;
            var name         = baseObject.GetNavigationName();
            var parentObject = (IParentBase)baseObject;
            var pagesPath    = generatorConfiguration.ApplicationFolderHierarchy[IonicFileSystemType.Pages];
            var pagesFolder  = (Folder)generatorConfiguration.FileSystem[pagesPath];
            var imports      = generatorConfiguration.CreateImports(this, baseObject, pagesFolder);
            var module       = new AngularModule(name + "Module");
            var formFields   = new List <FormField>();

            generatorConfiguration.ModuleAssemblies.Push(module);

            foreach (var childObject in parentObject.GetFormFields(generatorConfiguration.PartsAliasResolver))
            {
                if (childObject is IAttribute)
                {
                    formFields.Add(new FormField((IAttribute)childObject, generatorConfiguration));
                }
                else
                {
                }
            }

            $basename$PageGenerator.GeneratePage(baseObject, pagesPath, name, generatorConfiguration, module, imports, module, formFields);

            return(true);
        }
示例#4
0
        public override bool Process(IBase baseObject, Facet facet, IGeneratorConfiguration generatorConfiguration)
        {
            var             uiAttribute  = (UIAttribute)facet.Attribute;
            var             name         = baseObject.GetNavigationName();
            var             parentObject = (IParentBase)baseObject;
            var             pagesPath    = generatorConfiguration.ApplicationFolderHierarchy[IonicFileSystemType.Pages];
            var             pagesFolder  = (Folder)generatorConfiguration.FileSystem[pagesPath];
            var             imports      = generatorConfiguration.CreateImports(this, baseObject, pagesFolder, false, 1);
            var             inputObjects = new List <object>(); // TODO - change, preferably to a typed List, to match your needs
            IModuleAssembly module;

            foreach (var childObject in parentObject.GetFollowingChildren(generatorConfiguration.PartsAliasResolver))
            {
                // TODO - add code to capture children elements

                inputObjects.Add(new object());
            }

            module            = generatorConfiguration.PushModuleAssembly <AngularModule>(name);
            module.UILoadKind = uiAttribute.UILoadKind;

            $basename$PageGenerator.GeneratePage(baseObject, pagesPath, name, generatorConfiguration, module, imports, module /* , .. TODO - add additional parameters */);

            return(true);
        }
示例#5
0
        public ManagedList(IBase baseObject, IGeneratorConfiguration generatorConfiguration) : base(baseObject, generatorConfiguration)
        {
            var title = baseObject.GetDisplayName();
            var name  = baseObject.GetNavigationName();

            this.Title = title;
            this.Name  = name;
        }
示例#6
0
        public Response(IBase baseObject, IGeneratorConfiguration generatorConfiguration) : base(baseObject, generatorConfiguration)
        {
            var gridColumnAttribute = baseObject.GetFacetAttribute <GridColumnAttribute>();
            var displayName         = baseObject.GetDisplayName();
            var name = baseObject.GetNavigationName();

            this.Title            = displayName;
            this.Name             = name;
            this.GridColumnKind   = gridColumnAttribute.GridColumnKind;
            this.IsTextIdentifier = gridColumnAttribute.IsTextIdentifier;
            this.IsKey            = baseObject.HasFacetAttribute <KeyAttribute>();
        }
示例#7
0
        public ServiceMethod(IBase baseObject, string prefix, string serviceName, string parmsSignature, IGeneratorConfiguration generatorConfiguration) : base(baseObject, generatorConfiguration)
        {
            var displayName = prefix + baseObject.GetDisplayName();
            var name        = prefix + baseObject.GetNavigationName();

            this.ServiceMethodKind = EnumUtils.GetValue <ServiceMethodKind>(prefix);
            this.Name           = name;
            this.ServiceName    = serviceName;
            this.ParmsSignature = parmsSignature;

            switch (this.ServiceMethodKind)
            {
            case ServiceMethodKind.List:

                this.HttpMethod = "GET";
                this.ReturnType = "IEnumerable<dynamic>";
                break;

            case ServiceMethodKind.Create:

                this.HttpMethod = "POST";
                this.ReturnType = "void";
                break;

            case ServiceMethodKind.Get:

                this.HttpMethod = "POST";
                this.ReturnType = "dynamic";
                break;

            case ServiceMethodKind.Update:

                this.HttpMethod = "PUT";
                this.ReturnType = "void";
                break;


            case ServiceMethodKind.Delete:

                this.HttpMethod = "DELETE";
                this.ReturnType = "void";
                break;
            }

            this.MethodFullSignature = $"{ this.ReturnType } { this.ServiceName }.{ this.Name }({ this.ParmsSignature })";
            this.MethodSignature     = $"public { this.ReturnType } { this.Name }({ this.ParmsSignature })";
            this.InterfaceSignature  = $"{ this.ReturnType } { this.Name }({ this.ParmsSignature });";
        }
示例#8
0
        public bool Process(IBase baseObject, Facet facet, IGeneratorConfiguration generatorConfiguration)
        {
            var providerAttribute = (UIAttribute)facet.Attribute;
            var name              = baseObject.GetNavigationName();
            var parentObject      = (IElement)baseObject;
            var controllersPath   = generatorConfiguration.ApplicationFolderHierarchy[IonicFileSystemType.Controllers];
            var controllersFolder = (Folder)generatorConfiguration.FileSystem[controllersPath];
            var relatedEntities   = new List <RelatedEntity>();

            foreach (var childObject in parentObject.GetParentNavigationProperties(generatorConfiguration.PartsAliasResolver))
            {
                relatedEntities.Add(new RelatedEntity(childObject, generatorConfiguration));
            }

            $basename$ControllerGenerator.GenerateController(baseObject, pagesPath, name, generatorConfiguration, imports, module, relatedEntities);

            return(true);
        }
示例#9
0
        public override bool Process(IBase baseObject, Facet facet, IView view, IGeneratorConfiguration generatorConfiguration)
        {
            var             name         = baseObject.GetNavigationName();
            var             parentObject = (IParentBase)baseObject;
            var             pagesPath    = generatorConfiguration.ApplicationFolderHierarchy[IonicFileSystemType.Pages];
            var             pagesFolder  = (Folder)generatorConfiguration.FileSystem[pagesPath];
            var             imports      = generatorConfiguration.CreateImports(this, baseObject, pagesFolder, false, 1);
            IModuleAssembly module;

            this.BaseObject = baseObject;
            this.Facet      = facet;
            this.Name       = name;

            module = generatorConfiguration.PushModuleAssembly <AngularModule>(name);

            RepeaterPageGenerator.GeneratePage(baseObject, pagesPath, name, generatorConfiguration, module, imports, (View)view, this);

            return(true);
        }
示例#10
0
        public override bool Process(IBase baseObject, Facet facet, IGeneratorConfiguration generatorConfiguration)
        {
            var             uiAttribute  = (UIAttribute)facet.Attribute;
            var             name         = baseObject.GetNavigationName();
            var             parentObject = (IParentBase)baseObject;
            var             mainObject   = parentObject.ChildElements.Single();
            var             managedLists = new List <ManagedList>();
            var             gridColumns  = new List <GridColumn>();
            var             pagesPath    = generatorConfiguration.ApplicationFolderHierarchy[IonicFileSystemType.Pages];
            var             pagesFolder  = (Folder)generatorConfiguration.FileSystem[pagesPath];
            var             featureKind  = uiAttribute.GetFeatureKind();
            var             isComponent  = featureKind.IsComponent();
            IModuleAssembly module;
            IEnumerable <ModuleImportDeclaration> imports;

            if (mainObject is IParentBase)
            {
                foreach (var childObject in mainObject.GetFollowingNavigationChildren(generatorConfiguration.PartsAliasResolver))
                {
                    managedLists.Add(new ManagedList(childObject, generatorConfiguration));
                }
            }

            foreach (var childObject in mainObject.GetGridColumns(generatorConfiguration.PartsAliasResolver))
            {
                gridColumns.Add(new GridColumn(childObject, generatorConfiguration));
            }

            if (uiAttribute.UILoadKind == UILoadKind.RootPage)
            {
                this.Raise <ApplicationFacetHandler>();
            }

            imports = generatorConfiguration.CreateImports(this, baseObject, pagesFolder, false, 1);

            module             = generatorConfiguration.PushModuleAssembly <AngularModule>(name);
            module.UILoadKind  = uiAttribute.UILoadKind;
            module.IsComponent = isComponent;

            NavigationGridPageGenerator.GeneratePage(baseObject, pagesPath, name, generatorConfiguration, module, imports, module, managedLists, gridColumns, isComponent);

            return(true);
        }
示例#11
0
        public SlidingTab(IBase baseObject, IGeneratorConfiguration generatorConfiguration) : base(baseObject, generatorConfiguration)
        {
            var    navigationAttribute   = baseObject.GetFacetAttribute <UINavigationAttribute>();
            var    hasComponentAttribute = baseObject.HasFacetAttribute <UIAttribute>();
            var    tabName = baseObject.GetDisplayName();
            string name;

            if (!hasComponentAttribute && baseObject.Kind == DefinitionKind.ComplexSetProperty)
            {
                var parentBase   = (IParentBase)baseObject;
                var childElement = parentBase.ChildElements.Single();

                name = childElement.GetNavigationName() + "Page";
            }
            else
            {
                name = baseObject.GetNavigationName() + "Page";
            }

            this.Root  = name;
            this.Title = tabName;
        }
        public override bool Process(IBase baseObject, Facet facet, IGeneratorConfiguration generatorConfiguration)
        {
            var         uiAttribute      = (UICustomAttribute)facet.Attribute;
            var         viewRelativePath = uiAttribute.ViewRelativePath;
            var         name             = baseObject.GetNavigationName();
            var         parentObject     = (IParentBase)baseObject;
            var         tabs             = new List <Tab>();
            var         pagesPath        = generatorConfiguration.ApplicationFolderHierarchy[IonicFileSystemType.Pages];
            var         pagesFolder      = (Folder)generatorConfiguration.FileSystem[pagesPath];
            var         projectPath      = Environment.ExpandEnvironmentVariables(uiAttribute.ProjectPath);
            var         viewProjects     = generatorConfiguration.ViewProjects;
            ViewProject viewProject;
            View        view;

            if (!viewProjects.ContainsKey(projectPath))
            {
                viewProject = new ViewProject(projectPath);
                viewProjects.Add(projectPath, new ViewProject(projectPath));
            }
            else
            {
                viewProject = (ViewProject)viewProjects[projectPath];
            }

            if (!viewProject.ContainsView(viewRelativePath))
            {
                view = viewProject.AddView(viewRelativePath);
            }

            if (uiAttribute.UILoadKind == UILoadKind.RootPage)
            {
                this.Raise <ApplicationFacetHandler>();
            }

            generatorConfiguration.HandleViews(viewProject, baseObject, facet);

            return(true);
        }