public override MethodDeclarationSyntax GetSyntax() { var syntax = base.GetSyntax(); var tryCatch = MethodGenerators.GetTryCatchBlock(); var methodBody = base.GetMethodBodyParams(); var returnStatement = new ApiCallReturnStatementContainer { Path = Path, PathParams = PathParams, QueryParams = QueryParams, FileParams = FileParams, FormParams = FormParams, BodyParams = BodyParams, HttpMethod = HttpMethod, Returns = Returns, EntityName = EntityName, HasRequest = HasRequest, IsVoidTask = IsVoidTask, }; methodBody.Add(returnStatement.GetSyntax()); var block = SyntaxFactory.Block(methodBody.ToArray()); tryCatch = tryCatch.WithBlock(block); syntax = syntax.WithBody(SyntaxFactory.Block(tryCatch)); return(syntax); }
public ClassGenerator(MemberInfoList memberInfoList, Type interfaceType, NameDefinition nameDefinition, IDefinition[] definitions) { this.interfaceType = interfaceType; this.nameDefinition = nameDefinition; this.definitions = definitions; constructorGenerator = new ConstructorGenerator(nameDefinition.ClassName); propertiesGenerator = new PropertyGenerators(memberInfoList.PropertyInfos, definitions); methodGenerators = new MethodGenerators( memberInfoList.MethodInfos, memberInfoList.MethodIndexes, definitions); eventGenerators = new EventGenerators(memberInfoList.EventInfos, definitions); }
static void PrintGbye() { MethodGenerators genThis = new MethodGenerators(); PersonaListModel primePerson = new PersonaListModel { Prefix = "Madame", fName = "Yukari", lName = "Yakumo" }; Console.WriteLine(genThis.Adios(primePerson.Prefix, primePerson.lName)); }
/// <summary> /// Adds an initialized method generator to the factory. /// </summary> /// <param name="methodGeneratorInstance"></param> protected void AddMethodGenerator(BaseHqlGeneratorForMethod methodGeneratorInstance) { MethodGenerators.Add(methodGeneratorInstance); foreach (MethodInfo supportedSignature in methodGeneratorInstance.SupportedMethods) { if (MethodSignatures.Contains(supportedSignature)) { throw new Exception(String.Format("Method signature {0} loaded by method hql generator {1} has already been added", supportedSignature, methodGeneratorInstance)); } MethodSignatures.Add(supportedSignature); } }
public override MethodDeclarationSyntax GetSyntax() { var syntax = base.GetPaginatedSignature(listOptionsName: ListOptionsName, methodParams: MethodParams); var tryCatch = MethodGenerators.GetTryCatchBlock(); var methodBody = base.GetMethodBodyParams(ignoreQuery: true); var queryOptionsNullCheck = new QueryOptionsNullCheckContainer { ListOptionsName = ListOptionsName.Substring(1), }.GetSyntax(); methodBody.Add(queryOptionsNullCheck); var queryParams = base.GetPaginatedQueryParams(); // paginated function call var paginatedFunctionCallContainer = new PaginatedFunctionCallContainer { Path = Path, Returns = Returns, HttpMethod = HttpMethod, PathParams = PathParams, QueryParams = QueryParams, BodyParams = BodyParams, QueryParamDict = queryParams, ListOptionsName = ListOptionsName, }.GetSyntax(); methodBody.Add(paginatedFunctionCallContainer); // return a paginated response var paginatedResponseReturnStatementContainer = new PaginatedResponseReturnStatementContainer { ListOptionsName = ListOptionsName, Returns = Returns, }.GetSyntax(); methodBody.Add(paginatedResponseReturnStatementContainer); var block = SyntaxFactory.Block(methodBody.ToArray()); tryCatch = tryCatch.WithBlock(block); syntax = syntax.WithBody(SyntaxFactory.Block(tryCatch)); return(syntax); }