void CreateControllerClass()
        {
            AxHelper axHelper = new AxHelper();

            NewAxClass = axHelper.MetadataProvider.Classes.Read(ClassNameController);

            if (NewAxClass != null)
            {
                CoreUtility.DisplayInfo($"Class {NewAxClass.Name} already exists");
                axHelper.AppendToActiveProject(NewAxClass);
            }
            else
            {
                NewAxClass = new AxClass {
                    Name = ClassNameController
                };
                CreateControllerMethods();

                axHelper.MetaModelService.CreateClass(NewAxClass, axHelper.ModelSaveInfo);
                axHelper.AppendToActiveProject(NewAxClass);

                AddLog($"Class: {NewAxClass.Name}; ");
            }
        }
        void DoEdtCreate()
        {
            if (_axHelper.MetadataProvider.Edts.Read(PrimaryKeyEdtName) != null)
            {
                return;
            }
            //need to create a EDT
            AxEdtString newEdt = new AxEdtString();

            newEdt.Name    = PrimaryKeyEdtName;
            newEdt.Extends = EdtExtends;
            if (EdtStrLen > 0 && newEdt.Extends == String.Empty)
            {
                newEdt.StringSize = EdtStrLen;
            }

            newEdt.Label    = EdtLabel;
            newEdt.HelpText = EdtHelpText;

            _axHelper.MetaModelService.CreateExtendedDataType(newEdt, _axHelper.ModelSaveInfo);
            _axHelper.AppendToActiveProject(newEdt);

            AddLog($"EDT: {newEdt.Name}; ");
        }
        void CreateClass()
        {
            AxHelper axHelper = new AxHelper();

            NewAxClass = axHelper.MetadataProvider.Classes.Read(ClassName);

            if (NewAxClass != null)
            {
                throw new Exception($"Class {ClassName} already exists");
            }

            NewAxClass = new AxClass {
                Name = ClassName
            };
            CreateClassMethodsContract();

            axHelper.MetaModelService.CreateClass(NewAxClass, axHelper.ModelSaveInfo);
            axHelper.AppendToActiveProject(NewAxClass);

            AddLog($"Class: {NewAxClass.Name}; ");
        }
        public void Run()
        {
            AxEdt axEdt = null;

            if (_axHelper == null)
            {
                _axHelper = new AxHelper();
            }

            if (EdtText != String.Empty)
            {
                axEdt = BuildEdt();
                if (!IsEdtExist && axEdt != null)
                {
                    _axHelper.MetaModelService.CreateExtendedDataType(axEdt, _axHelper.ModelSaveInfo);
                    _axHelper.AppendToActiveProject(axEdt);
                }
            }

            AxTableField axTableField = BuildField(axEdt);

            AddField(axTableField);
        }
        public bool Run()
        {
            if (ResultClassName.Length > 80)
            {
                throw new Exception($"Class name can't be more than 80 symbols({ResultClassName.Length})");
            }

            AxHelper axHelper = new AxHelper();

            AxClass newClass = axHelper.MetadataProvider.Classes.Read(ResultClassName);
            bool    res      = false;

            if (newClass == null)
            {
                res = true;
                //throw new Exception($"Class {ResultClassName} already exists");

                newClass = new AxClass {
                    IsFinal = true, Name = ResultClassName
                };

                if (ClassModeType == ExtensionClassModeType.EventHandler)
                {
                    newClass.IsStatic = true;
                }

                string typeStr = "";
                switch (ElementType)
                {
                case Kernel.ExtensionClassType.Form:
                    typeStr = "formstr";
                    break;

                case Kernel.ExtensionClassType.Class:
                    typeStr = "classstr";
                    break;

                case Kernel.ExtensionClassType.Table:
                    typeStr = "tablestr";
                    break;

                case Kernel.ExtensionClassType.FormDataField:
                    typeStr = "formdatafieldstr";
                    break;

                case Kernel.ExtensionClassType.FormDataSource:
                    typeStr = "formdatasourcestr";
                    break;

                case Kernel.ExtensionClassType.FormControl:
                    typeStr = "formcontrolstr";
                    break;

                case Kernel.ExtensionClassType.DataEntityView:
                    typeStr = "dataentityviewstr";
                    break;

                case Kernel.ExtensionClassType.View:
                    typeStr = "viewstr";
                    break;

                case Kernel.ExtensionClassType.Map:
                    typeStr = "mapstr";
                    break;
                }

                StringBuilder declarationText = new StringBuilder();
                if (ClassModeType == ExtensionClassModeType.Extension)
                {
                    if (string.IsNullOrWhiteSpace(SubElementName))
                    {
                        declarationText.AppendLine($"[ExtensionOf({typeStr}({ElementName}))]");
                    }
                    else
                    {
                        declarationText.AppendLine($"[ExtensionOf({typeStr}({ElementName}, {SubElementName}))]");
                    }
                }

                declarationText.AppendLine($"final{(newClass.IsStatic ? " static " : " ")}class {newClass.Name}");
                declarationText.AppendLine("{");
                declarationText.AppendLine("}");

                newClass.SourceCode.Declaration = declarationText.ToString();
                axHelper.MetaModelService.CreateClass(newClass, axHelper.ModelSaveInfo);

                axHelper.AppendToActiveProject(newClass);
                AddLog($"Class: {newClass.Name}; ");
            }
            else
            {
                CoreUtility.DisplayInfo($"Class {newClass.Name} already exists");
                axHelper.AppendToActiveProject(newClass);
            }

            return(res);
        }
Exemple #6
0
        public void Run()
        {
            AxHelper axHelper = new AxHelper();

            AxClass newClass = axHelper.MetadataProvider.Classes.Read(ResultClassName);

            if (newClass != null)
            {
                throw new Exception($"Class {ResultClassName} already exists");
            }

            newClass = new AxClass {
                IsFinal = true, Name = ResultClassName
            };

            if (ClassType == ExtensionClassType.EventHandler)
            {
                newClass.IsStatic = true;
            }

            string typeStr = "";

            switch (ElementType)
            {
            case ExtensionClassObject.Form:
                typeStr = "formstr";
                break;

            case ExtensionClassObject.Class:
                typeStr = "classstr";
                break;

            case ExtensionClassObject.Table:
                typeStr = "tablestr";
                break;

            case ExtensionClassObject.FormDataField:
                typeStr = "formdatafieldstr";
                break;

            case ExtensionClassObject.FormDataSource:
                typeStr = "formdatasourcestr";
                break;

            case ExtensionClassObject.FormControl:
                typeStr = "formcontrolstr";
                break;

            case ExtensionClassObject.DataEntityView:
                typeStr = "dataentityviewstr";
                break;
            }

            StringBuilder declarationText = new StringBuilder();

            if (ClassType == ExtensionClassType.Extension)
            {
                if (string.IsNullOrWhiteSpace(SubElementName))
                {
                    declarationText.AppendLine($"[ExtensionOf({typeStr}({ElementName}))]");
                }
                else
                {
                    declarationText.AppendLine($"[ExtensionOf({typeStr}({ElementName}, {SubElementName}))]");
                }
            }

            declarationText.AppendLine($"final{(newClass.IsStatic ? " static " : " ")}class {newClass.Name}");
            declarationText.AppendLine("{");
            declarationText.AppendLine("}");

            newClass.SourceCode.Declaration = declarationText.ToString();
            axHelper.MetaModelService.CreateClass(newClass, axHelper.ModelSaveInfo);
            axHelper.AppendToActiveProject(newClass);

            AddLog($"Class: {newClass.Name}; ");
        }