public HttpResponseMessage GetScanedPages(int pageSize, int pageNum, string sortdatafield = "", string sortorder = "") { var query = Request.GetQueryNameValuePairs(); int filtersCount = int.Parse(query.Where(p => p.Key == "filterscount").First().Value); List<Func<ScannedPageBusinessModel, bool>> predicates = new List<Func<ScannedPageBusinessModel, bool>>(); for (int i = 0; i < filtersCount; i++) { string filterDataField = query.Where(p => p.Key == "filterdatafield" + i).First().Value; string filterCondition = query.Where(p => p.Key == "filtercondition" + i).First().Value; string filterValue = query.Where(p => p.Key == "filtervalue" + i).First().Value; switch (filterDataField) { case "OrderText": predicates.Add(u => u.OrderText.ToLower().Contains(filterValue.ToLower())); break; case "OrderDate": { DateTime date = DateTime.Parse(filterValue); switch (filterCondition) { case "GREATER_THAN_OR_EQUAL": predicates.Add(u => u.OrderDate >= date); break; case "LESS_THAN_OR_EQUAL": predicates.Add(u => u.OrderDate <= date); break; } break; } case "ExecutionDate": { DateTime date = DateTime.Parse(filterValue); switch (filterCondition) { case "GREATER_THAN_OR_EQUAL": predicates.Add(u => u.ExecutionDate >= date); break; case "LESS_THAN_OR_EQUAL": predicates.Add(u => u.ExecutionDate <= date); break; } break; } } } int count; var scannedPagesToSort = new List<ScannedPageBusinessModel>(); if ((Roles.IsUserInRole(WebSecurity.CurrentUserName, "Librarian")) || (Roles.IsUserInRole(WebSecurity.CurrentUserName, "Admin"))) { scannedPagesToSort = this.scannedPageManager.GetAllScannedPagesForSort(pageSize * pageNum, pageSize, out count, predicates, sortdatafield, sortorder); var result = new { TotalRows = count, Rows = scannedPagesToSort }; return Request.CreateResponse(HttpStatusCode.OK, result); } else { var reader = this.readerManager.GetReaderByUserId(WebSecurity.CurrentUserId); if (reader != null) { scannedPagesToSort = this.scannedPageManager.GetReaderScannedPagesForSort(pageSize * pageNum, pageSize, reader.ReaderId, out count, predicates, sortdatafield, sortorder); var result = new { TotalRows = count, Rows = scannedPagesToSort }; return Request.CreateResponse(HttpStatusCode.OK, result); } return Request.CreateResponse(HttpStatusCode.OK); } }
public HttpResponseMessage Create(int id) { var scannedPage = this.scannedPageManager.GetScannedPageById(id); if (scannedPage == null) { return Request.CreateResponse(HttpStatusCode.BadRequest); } var result = new { scannedPage.Id, scannedPage.ExecutionDate, scannedPage.OrderDate, scannedPage.OrderText, scannedPage.IsLocked, scannedPage.IsReady, scannedPage.Message }; return Request.CreateResponse(HttpStatusCode.OK, result); }