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); }
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); }