Exemplo n.º 1
0
        public void Call(IRequest request, IResponse response)
        {
            if (request == null) throw new ArgumentNullException(nameof(request));
            if (response == null) throw new ArgumentNullException(nameof(response));

            var controllerName = request.GetControllerName();
            var methodName = request.GetMethodName();

            var methodInfo = _apiDiscoverer.Resolve(controllerName, methodName);

            if(!PreCallCheck(methodInfo, request, response))
            {
                return;
            }

            var result = GetCallMethod(methodInfo)(request);
            response.SetResult(result);

            if (!PostCallCheck(methodInfo, request, response))
            {
                return;
            }
        }