public ApiServiceCallParameter(ApiServiceCall call, ParameterInfo info)
        {
            this.ServiceCall = call;
            this.Parameter   = info;
            this.FromBody    = info.GetCustomAttribute <FromBodyAttribute>();
            this.FromUri     = info.GetCustomAttribute <FromUriAttribute>();

            String route = call.Route.Template ?? String.Empty;

            if (FromUri != null)
            {
                if (!route.Contains($"{{{Parameter.Name}}}"))
                {
                    FromQueryString = FromUri;
                    FromUri         = null;
                }
            }
            else if (FromBody == null)
            {
                if (route.Contains(Parameter.Name))
                {
                    FromUri = new FromUriAttribute();
                }
                else
                {
                    FromBody = new FromBodyAttribute();
                }
            }
        }
Exemple #2
0
        private void DiscoverRoutes()
        {
            var methods = ControllerType.GetMethods();

            foreach (var mt in methods)
            {
                var routeAttr = mt.GetCustomAttribute <RouteAttribute>();
                if (null == routeAttr)
                {
                    continue;
                }

                ApiServiceCall call = new ApiServiceCall(this, mt);
                Calls.Add(call);
            }
        }