コード例 #1
0
        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);
        }
コード例 #2
0
 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);
 }
コード例 #3
0
            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));
            }
コード例 #4
0
        /// <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);
            }
        }
コード例 #5
0
        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);
        }