private static TypeScriptReturnStatement GenerateGetUrlCall(IMethodInfo methodInfo)
        {
            var routeTemplate = methodInfo.GetAttributes(TypeInfo.From <RouteAttribute>()).Single().GetValue("Template", "");

            return(new TypeScriptReturnStatement(
                       new TypeScriptTemplateStringLiteral("${this.prefix}" + routeTemplate.Replace("{", "${"))
                       ));
        }
Пример #2
0
        protected override string BuildRoute(ITypeInfo controllerType, IMethodInfo methodInfo)
        {
            var routeTemplate = methodInfo.GetAttributes(false)
                                .Select(x => x.AttributeData.TryGetValue("Template", out var value) ? (string)value : null)
                                .SingleOrDefault(x => !string.IsNullOrEmpty(x));

            return(AppendRoutePrefix(routeTemplate, controllerType));
        }
        protected override string BuildRoute(ITypeInfo controllerType, IMethodInfo methodInfo)
        {
            var routeTemplate = methodInfo.GetAttributes(false)
                                .Select(x => x.GetValue("Template", ""))
                                .SingleOrDefault(x => !string.IsNullOrEmpty(x));

            return(AppendRoutePrefix(routeTemplate ?? string.Empty, controllerType));
        }
        private static TypeScriptReturnStatement CreateCall(IMethodInfo methodInfo)
        {
            if (methodInfo.GetAttributes(TypeInfo.From <HttpGetAttribute>()).Any())
            {
                return(GenerateGetMethodCall(methodInfo));
            }

            if (methodInfo.GetAttributes(TypeInfo.From <HttpPostAttribute>()).Any())
            {
                return(GenerateMethodCallWithBody(methodInfo, "post"));
            }

            if (methodInfo.GetAttributes(TypeInfo.From <HttpDeleteAttribute>()).Any())
            {
                return(GenerateMethodCallWithBody(methodInfo, "delete"));
            }

            return(new TypeScriptReturnStatement(new TypeScriptConstantExpression("null")));
        }
        private static TypeScriptReturnStatement GenerateMethodCallWithBody(IMethodInfo methodInfo, string methodName)
        {
            var routeTemplate = methodInfo.GetAttributes(TypeInfo.From <RouteAttribute>()).Single().GetValue("Template", "");

            return(new TypeScriptReturnStatement(
                       new TypeScriptMethodCallExpression(
                           new TypeScriptThisReference(),
                           methodName,
                           new TypeScriptTemplateStringLiteral(routeTemplate.Replace("{", "${")),
                           GenerateConstructBody(methodInfo.GetParameters().ToArray(), routeTemplate)
                           )));
        }
        private static TypeScriptReturnStatement GenerateGetMethodCall(IMethodInfo methodInfo)
        {
            var routeTemplate = methodInfo.GetAttributes(TypeInfo.From <RouteAttribute>()).Single().GetValue("Template", "");

            return(new TypeScriptReturnStatement(
                       new TypeScriptMethodCallExpression(
                           new TypeScriptThisReference(),
                           "get",
                           new[]
            {
                new TypeScriptTemplateStringLiteral(routeTemplate.Replace("{", "${")),
                GenerateConstructGetParams(methodInfo.GetParameters().ToArray(), routeTemplate)
            }.Where(x => x != null).ToArray()
                           )));
        }
Пример #7
0
        protected override BaseApiMethod ResolveBaseApiMethod(IMethodInfo methodInfo)
        {
            if (methodInfo.GetAttributes(TypeInfo.From <HttpGetAttribute>()).Any())
            {
                return(BaseApiMethod.Get);
            }

            if (methodInfo.GetAttributes(TypeInfo.From <HttpPostAttribute>()).Any())
            {
                return(BaseApiMethod.Post);
            }

            if (methodInfo.GetAttributes(TypeInfo.From <HttpPutAttribute>()).Any())
            {
                return(BaseApiMethod.Put);
            }

            if (methodInfo.GetAttributes(TypeInfo.From <HttpDeleteAttribute>()).Any())
            {
                return(BaseApiMethod.Delete);
            }

            throw new NotSupportedException($"Unresolved http verb for method {methodInfo.Name} at controller {methodInfo.DeclaringType?.Name}");
        }