private void GenerateSetPropertyMethod(CodeTypeDeclaration file, EAPClass classPom) { CodeMemberMethod method = new CodeMemberMethod(); method.Attributes = MemberAttributes.Public | MemberAttributes.Override; method.Name = "SetProperty"; method.ReturnType = new CodeTypeReference(typeof(void)); method.Parameters.Add(new CodeParameterDeclarationExpression("Property", "property")); List <CodeSnippetStatement> snipets = new List <CodeSnippetStatement>() { new CodeSnippetStatement("\t\t\t\tswitch(property.Id)"), new CodeSnippetStatement("\t\t\t\t{") }; foreach (EAPAttribute att in classPom.Attributes) { if (att.IsListOfReferences == true) { continue; } CodeSnippetStatement css = new CodeSnippetStatement("\t\t\t\t\tcase ModelCode." + att.Code + ":"); CodeSnippetStatement cssProp = new CodeSnippetStatement(); if (att.TypeCode != "" && att.TypeCode.Equals("Enum")) { cssProp = new CodeSnippetStatement("\t\t\t\t\t\t" + att.Name + " = (" + att.MeasurementType + ") property.AsEnum();"); } else if (att.IsReference == true || att.TypeCode.Equals("Class")) { cssProp = new CodeSnippetStatement("\t\t\t\t\t\t" + att.Name + " = property.AsReference();"); } else { cssProp = new CodeSnippetStatement("\t\t\t\t\t\t" + att.Name + " = property." + StringManipulationManager.GetAsMethod(att.MeasurementType)); } CodeSnippetStatement cssBreak = new CodeSnippetStatement("\t\t\t\t\t\tbreak;"); snipets.Add(css); snipets.Add(cssProp); snipets.Add(cssBreak); } CodeSnippetStatement cssDefault = new CodeSnippetStatement("\t\t\t\t\tdefault:"); CodeSnippetStatement cssBase = new CodeSnippetStatement("\t\t\t\t\t\tbase.SetProperty(property);"); CodeSnippetStatement cssBreakDefault = new CodeSnippetStatement("\t\t\t\t\t\tbreak;"); CodeSnippetStatement ccss = new CodeSnippetStatement("\t\t\t\t}"); snipets.Add(cssDefault); snipets.Add(cssBase); snipets.Add(cssBreakDefault); snipets.Add(ccss); foreach (var item in snipets) { method.Statements.Add(item); } file.Members.Add(method); }