public object Get() { IEnumerable <Request> requests = null; // // Filter by WorkerProcess string wpUuid = Context.Request.Query[Defines.WP_IDENTIFIER]; if (!string.IsNullOrEmpty(wpUuid)) { WorkerProcess wp = WorkerProcessHelper.GetWorkerProcess(new WorkerProcessId(wpUuid).Id); if (wp == null) { return(NotFound()); } requests = RequestHelper.GetRequests(wp, Context.Request.GetFilter()); } // // Filter by Site if (requests == null) { string siteUuid = Context.Request.Query[Sites.Defines.IDENTIFIER]; if (!string.IsNullOrEmpty(siteUuid)) { Site site = SiteHelper.GetSite(new SiteId(siteUuid).Id); if (site == null) { return(NotFound()); } requests = RequestHelper.GetRequests(site, Context.Request.GetFilter()); } } // // Get all if (requests == null) { requests = RequestHelper.GetRequests(Context.Request.GetFilter()); } // // Set HTTP header for total count this.Context.Response.SetItemsCount(requests.Count()); Fields fields = Context.Request.GetFields(); return(new { requests = requests.Select(r => RequestHelper.ToJsonModelRef(r, fields)) }); }
public object Get(string id) { var reqId = new RequestId(id); WorkerProcess wp = WorkerProcessHelper.GetWorkerProcess(reqId.ProcessId); if (wp == null) { return(NotFound()); } Request request = RequestHelper.GetRequest(wp, reqId.Id); if (request == null) { return(NotFound()); } return(RequestHelper.ToJsonModel(request, Context.Request.GetFields())); }
internal static object ToJsonModel(Request request, Fields fields = null, bool full = true) { if (request == null) { throw new ArgumentNullException(nameof(request)); } if (fields == null) { fields = Fields.All; } dynamic obj = new ExpandoObject(); // // url if (fields.Exists("url")) { obj.url = request.Url; } // // id obj.id = new RequestId(request.ProcessId, request.RequestId).Uuid; // // method if (fields.Exists("method")) { obj.method = request.Verb; } // // host_name if (fields.Exists("host_name")) { obj.host_name = request.HostName; } // // client_ip if (fields.Exists("client_ip_address")) { obj.client_ip_address = request.ClientIPAddr; } // // local_ip_address if (fields.Exists("local_ip_address")) { obj.local_ip_address = request.LocalIPAddress; } // // local_port if (fields.Exists("local_port")) { obj.local_port = request.LocalPort; } // // request_id if (fields.Exists("request_id")) { obj.request_id = request.RequestId; } // // connection_id if (fields.Exists("connection_id")) { obj.connection_id = request.ConnectionId; } // // pipeline_state if (fields.Exists("pipeline_state")) { obj.pipeline_state = Enum.GetName(typeof(PipelineState), request.PipelineState); } // // current_module if (fields.Exists("current_module")) { obj.current_module = request.CurrentModule; } // // time_elapsed if (fields.Exists("time_elapsed")) { obj.time_elapsed = request.TimeElapsed; } // // time_in_module if (fields.Exists("time_in_module")) { obj.time_in_module = request.TimeInModule; } // // time_in_state if (fields.Exists("time_in_state")) { obj.time_in_state = request.TimeInState; } // // worker_process if (fields.Exists("worker_process")) { var wp = WorkerProcessHelper.GetWorkerProcess(request.ProcessId); if (wp != null) { obj.worker_process = WorkerProcessHelper.ToJsonModelRef(wp); } } // // website if (fields.Exists("website")) { var site = Sites.SiteHelper.GetSite(request.SiteId); if (site != null) { obj.website = Sites.SiteHelper.ToJsonModelRef(site); } } return(Core.Environment.Hal.Apply(Defines.RequestsResource.Guid, obj, full)); }