private CodeTypeDeclaration GenerateConstantTwoOptions(BooleanAttributeMetadata booleanAttribute) { CodeTypeDeclaration booleanOptionSet = new CodeTypeDeclaration(booleanAttribute.SchemaName) { IsClass = true, Attributes = MemberAttributes.Static | MemberAttributes.Public }; if (generateXmlDocumentation) { CustomizationService.AddMissingXmlDocumentation(booleanAttribute.SchemaName, booleanOptionSet.Comments); } var values = EnumItem.ToUniqueValues(booleanAttribute.OptionSet); foreach (var value in values) { CodeMemberField codeMemberField = new CodeMemberField(typeof(bool), value.Value) { InitExpression = new CodePrimitiveExpression(value.Key == 1), Attributes = MemberAttributes.Const | MemberAttributes.Public }; if (generateXmlDocumentation) { CustomizationService.AddMissingXmlDocumentation(value.Description, codeMemberField.Comments); } booleanOptionSet.Members.Add(codeMemberField); } return(booleanOptionSet); }
private CodeTypeDeclaration GenerateEnumOptions(string schemaName, IEnumerable <EnumItem> values) { CodeTypeDeclaration optionSetEnum = new CodeTypeDeclaration(schemaName) { IsEnum = true }; optionSetEnum.CustomAttributes.Add(new CodeAttributeDeclaration("System.Runtime.Serialization.DataContractAttribute")); optionSetEnum.CustomAttributes.Add(new CodeAttributeDeclaration("System.CodeDom.Compiler.GeneratedCodeAttribute", new CodeAttributeArgument(new CodePrimitiveExpression(CrmSvcUtilsName)), new CodeAttributeArgument(new CodePrimitiveExpression(CrmSvcUtilsVersion)))); if (generateXmlDocumentation) { CustomizationService.AddMissingXmlDocumentation(schemaName, optionSetEnum.Comments); } foreach (var value in values) { CodeMemberField codeMemberField = new CodeMemberField(string.Empty, value.Value) { InitExpression = new CodePrimitiveExpression(value.Key) }; if (generateXmlDocumentation) { CustomizationService.AddMissingXmlDocumentation(value.Description, codeMemberField.Comments); } codeMemberField.CustomAttributes.Add(new CodeAttributeDeclaration("System.Runtime.Serialization.EnumMemberAttribute")); optionSetEnum.Members.Add(codeMemberField); } return(optionSetEnum); }
private CodeTypeDeclaration GetOrCreateClass(string className, CodeTypeMemberCollection members) { var @class = members.ToEnumerable <CodeTypeDeclaration>() .FirstOrDefault(_class => _class.Name == className); if (@class == null) { @class = new CodeTypeDeclaration(className) { TypeAttributes = TypeAttributes.Public | TypeAttributes.Sealed, IsClass = true }; if (generateXmlDocumentation) { CustomizationService.AddMissingXmlDocumentation(className, @class.Comments); } members.Add(@class); } return(@class); }
private bool GetOrCreateOptionSets(IEnumerable <CodeTypeDeclaration> codeTypeDeclarations, out CodeTypeDeclaration optionSets) { foreach (CodeTypeDeclaration type in codeTypeDeclarations) { if (type.Name == "OptionSets") { optionSets = type; return(false); } } optionSets = new CodeTypeDeclaration("OptionSets") { TypeAttributes = TypeAttributes.Public | TypeAttributes.Sealed, IsClass = true }; if (generateXmlDocumentation) { CustomizationService.AddMissingXmlDocumentation("OptionSets", optionSets.Comments); } return(true); }
private CodeMemberField NewAttributeConstant(CodeMemberProperty property, string attributeLogicalName) { CodeMemberField attributeConstant = new CodeMemberField(typeof(string), property.Name) { Attributes = MemberAttributes.Public | MemberAttributes.Const, InitExpression = new CodePrimitiveExpression(attributeLogicalName) }; if (generateXmlDocumentation) { foreach (var documentation in property.Comments.ToEnumerable().Where(documentation => documentation.Comment.DocComment)) { attributeConstant.Comments.Add(documentation); } if (attributeConstant.Comments.Count == 0) { CustomizationService.AddMissingXmlDocumentation(attributeConstant.Name, attributeConstant.Comments); } } return(attributeConstant); }