public CodeNamespace Build(GlobalVariablesRepository globalVariablesRepository)
        {
            var globalVariableNameSpace = new CodeNamespace(globalVariablesRepository.Package);

            // Generate the Service
            globalVariableNameSpace.Imports.AddRange(this.GenerateImports());
            var globalVariableClass = this.GenerateClass(globalVariablesRepository);

            globalVariableNameSpace.Types.Add(globalVariableClass);

            return(globalVariableNameSpace);
        }
Beispiel #2
0
        public GlobalVariablesRepository ParseVariable(string filePath)
        {
            var globalVariablesRepository = new GlobalVariablesRepository();

            globalVariablesRepository.Name = this.ParseFileName(filePath);

            globalVariablesRepository.Package = this.ParsePackageName(filePath);

            XElement allFileElement = XElement.Load(filePath);

            globalVariablesRepository.GlobalVariables = this.ParseVariable(allFileElement);

            return(globalVariablesRepository);
        }
        CodeConstructor GenerateConstructor(GlobalVariablesRepository globalVariablesRepository)
        {
            var constructor = new CodeConstructor();

            constructor.Attributes = MemberAttributes.Public;
            foreach (var variable in globalVariablesRepository.GlobalVariables)
            {
                //var propertyReference = new CodeFieldReferenceExpression(new CodeThisReferenceExpression(), variable.Name);
                var propertyReference = new CodeVariableReferenceExpression(variable.Name);

                constructor.Statements.Add(new CodeAssignStatement(propertyReference,
                                                                   new CodePrimitiveExpression(ConvertToPrimitiveType(globalVaraibleTypeDictionnary[variable.Type.ToString()], variable.Value))));
            }

            return(constructor);
        }
        public CodeTypeMemberCollection GenerateProperties(GlobalVariablesRepository globalVariablesRepository)
        {
            var result = new CodeTypeMemberCollection();

            if (globalVariablesRepository.GlobalVariables == null)
            {
                return(null);
            }

            foreach (var variable in globalVariablesRepository.GlobalVariables)
            {
                result.Add(CodeDomUtils.GenerateStaticProperty(variable.Name, globalVaraibleTypeDictionnary[variable.Type.ToString()]));
            }

            return(result);
        }
        public CodeTypeDeclaration GenerateClass(GlobalVariablesRepository globalVariablesRepository)
        {
            var globalPropertyClass = new CodeTypeDeclaration(globalVariablesRepository.Name);

            globalPropertyClass.IsClass        = true;
            globalPropertyClass.TypeAttributes = TypeAttributes.Public;

            var properties = this.GenerateProperties(globalVariablesRepository);

            if (properties != null)
            {
                globalPropertyClass.Members.AddRange(properties);
            }

            globalPropertyClass.Members.Add(this.GenerateConstructor(globalVariablesRepository));

            return(globalPropertyClass);
        }
        public void SetUp()
        {
            builder      = new GlobalVariableBuilder();
            repo         = new GlobalVariablesRepository();
            repo.Name    = RepoName;
            repo.Package = Package;

            repo.GlobalVariables = new List <GlobalVariable>
            {
                new GlobalVariable
                {
                    Name  = "propertyName1",
                    Type  = GlobalVariableType.String,
                    Value = "my test value"
                },
                new GlobalVariable
                {
                    Name  = "propertyName2",
                    Type  = GlobalVariableType.Integer,
                    Value = "12"
                }
            };
            resultNamspace = builder.Build(repo);
        }