Пример #1
0
        public override bool Process(IBase baseObject, Facet facet, IGeneratorConfiguration generatorConfiguration)
        {
            var uiAttribute     = (UIAttribute)facet.Attribute;
            var baseElement     = (IElement)baseObject;
            var userFields      = new List <IdentityField>();
            var parentObject    = (IElement)baseObject.Parent;
            var name            = baseElement.GetNavigationName(UIKind.LoginPage);
            var subFolderName   = name.ToLower();
            var pagePath        = FileSystemObject.PathCombine(generatorConfiguration.ApplicationFolderHierarchy[IonicFileSystemType.Pages], subFolderName);
            var resourcesHelper = generatorConfiguration.ResourcesHandler.CreateHelper(UIKind.LoginPage, baseObject);
            IDictionary <string, IEnumerable <ModuleImportDeclaration> > importGroups;
            IModuleAssembly module;
            Folder          pageFolder = null;
            string          loginTitleTranslationKey;
            string          loginButtonTranslationKey;

            if (!generatorConfiguration.FileSystem.Exists(pagePath))
            {
                var newPath = generatorConfiguration.FileSystem.CreatePath(pagePath);

                pageFolder = (Folder)generatorConfiguration.FileSystem[newPath];
            }
            else
            {
                pageFolder = (Folder)generatorConfiguration.FileSystem[pagePath];
            }

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

            importGroups = generatorConfiguration.CreateImportGroups(this, baseObject, pageFolder, true);
            importGroups.AddIndexImport("Page", "MainPage", 1);

            foreach (var childObject in baseElement.GetIdentityFields(IdentityFieldCategory.Login))
            {
                if (childObject is IAttribute)
                {
                    userFields.Add(new IdentityField((IAttribute)childObject, generatorConfiguration));
                }
                else
                {
                    DebugUtils.Break();
                }
            }

            module                    = generatorConfiguration.PushModuleAssembly <AngularModule>("Login");
            module.UILoadKind         = uiAttribute.UILoadKind;
            loginTitleTranslationKey  = resourcesHelper.Get(() => LOGIN_TITLE);
            loginButtonTranslationKey = resourcesHelper.Get(() => LOGIN_BUTTON);

            LoginPageGenerator.GeneratePage(baseObject, pagePath, name, generatorConfiguration, module, importGroups, userFields, loginTitleTranslationKey, loginButtonTranslationKey);

            return(true);
        }
        public override bool Process(IBase baseObject, Facet facet, IGeneratorConfiguration generatorConfiguration)
        {
            var uiAttribute   = (UIAttribute)facet.Attribute;
            var baseElement   = (IElement)baseObject;
            var name          = baseElement.GetNavigationName();
            var formFields    = new List <FormField>();
            var parentObject  = (IElement)baseObject.Parent;
            var subFolderName = name.ToLower();
            var pagePath      = FileSystemObject.PathCombine(generatorConfiguration.ApplicationFolderHierarchy[IonicFileSystemType.Pages], subFolderName);
            IDictionary <string, IEnumerable <ModuleImportDeclaration> > importGroups;
            IModuleAssembly module;
            Folder          pageFolder = null;

            if (!generatorConfiguration.FileSystem.Exists(pagePath))
            {
                var newPath = generatorConfiguration.FileSystem.CreatePath(pagePath);

                pageFolder = (Folder)generatorConfiguration.FileSystem[newPath];
            }
            else
            {
                pageFolder = (Folder)generatorConfiguration.FileSystem[pagePath];
            }

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

            importGroups = generatorConfiguration.CreateImportGroups(this, baseObject, pageFolder, true);

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

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

            EditPopupPageGenerator.GeneratePage(baseObject, pagePath, name, generatorConfiguration, module, importGroups, formFields);

            return(true);
        }