public HttpResponseMessage Count() { return Request.CreateResponse(HttpStatusCode.OK, EventLogManager.EventCount()); }
public HttpResponseMessage Browse(int pageIndex = 0, int pageSize = 30, string eventType = null, int severity = -1) { EventLogSeverity?actualSeverity = null; // Is there a severity set? if (severity >= 0) { actualSeverity = (EventLogSeverity)severity; } // Get event logs. List <EventLog> eventLogs = EventLogManager.Browse(pageIndex, pageSize, eventType, actualSeverity).ToList(); // Work out pagination details. int rowCount = EventLogManager.EventCount(); int pageCount = (int)Math.Ceiling((double)(rowCount / pageSize)); // Start building meta. Dictionary <string, dynamic> pagination = new Dictionary <string, dynamic>(); // Add basics. pagination.Add("Records", rowCount); pagination.Add("Pages", pageCount); pagination.Add("CurrentPage", pageIndex); // Build navigation. Dictionary <string, string> navigation = new Dictionary <string, string>(); // Parameters passed in not changed by pagination. string fixedParams = ""; // Page size. if (pageSize != 30) { fixedParams += string.Format("pageSize={0}", pageSize); } // Event type. if (eventType != null) { fixedParams += string.Format("eventType={0}", eventType); } // Severity. if (severity != -1) { fixedParams += string.Format("eventType={0}", severity); } // Is there a next page? if (pageIndex < pageCount) { string nextLink = string.Format("Browse?pageIndex={0}", pageIndex + 1); if (!string.IsNullOrEmpty(fixedParams)) { nextLink = string.Format("{0}&{1}", nextLink, fixedParams); } navigation.Add("Next", nextLink); } // Is there a previous page? if (pageIndex > 0) { string prevLink = string.Format("Browse?pageIndex={0}", pageIndex - 1); if (!string.IsNullOrEmpty(fixedParams)) { prevLink = string.Format("{0}&{1}", prevLink, fixedParams); } navigation.Add("Previous", prevLink); } // Add navigation. pagination.Add("Navigation", navigation); Dictionary <string, dynamic> payload = new Dictionary <string, dynamic>(); payload.Add("Data", eventLogs); payload.Add("Pagination", pagination); string json = JsonConvert.SerializeObject(payload); HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK); response.Content = new StringContent(json, Encoding.UTF8, "application/json"); return(response); }