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("{", "${")) )); }
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() ))); }
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}"); }