Exemplo n.º 1
0
        public async Task Invoke(HttpContext context)
        {
            var request = context.Request;
            var path    = request.Path.ToString();

            path = path.Trim('/');
            if (!path.StartsWith(Options.ApiPrefox, StringComparison.OrdinalIgnoreCase))
            {
                await _next.Invoke(context);
            }
            var apiClass = GetApiClass(path);

            var response = new JsonReponse();

            try
            {
                var result = ApiManager.Execute(apiClass, context.Request);
                response.Success = true;
                response.Model   = result;
                response.Message = string.Empty;
            }
            catch (Exception ex)
            {
                response.Success = false;
                response.Message = ex.Message;
            }


            context.Response.ContentType = "application/json";
            var content = System.Text.Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(response));
            await context.Response.Body.WriteAsync(content, 0, content.Length);
        }
Exemplo n.º 2
0
        //Put base operation here:  such as Log, Exception handler

        protected HttpResponseMessage ExecuteAction(object[] args, Func <object[], JsonReponse> callback)
        {
            var response = new JsonReponse {
                Success = false
            };

            try
            {
                return(Request.CreateResponse(callback(args)));
            }
            catch (Exception ex)
            {
                response.Data = ex.ToJson();
            }

            return(Request.CreateResponse(response));
        }