public ActionResult <IEnumerable <coreevent.Person> > Get([ModelBinder(binderType: typeof(SearchBinder))] coreevent.SearchRequest srch) { try { var evts = _personService.GetAllPersons().ToList(); if ((srch == null) || (srch != null && srch.FilterObjectWrapper.FilterObjects.Count == 0 && srch.SortObjects.Count == 0 && srch.Page == 0 && srch.PageSize == 25)) { //return Ok(evts); HttpContext.Response.Headers.Add("Paging-TotalRecords", JsonConvert.SerializeObject(evts.Count)); return(Ok(evts)); } else { //Most javascript grids are 1 based page if (srch.Page > 0) { srch.Page--; } var fp = new coreevent.FilterParsing <coreevent.Person>(); string filtering = "true"; try { filtering = fp.GetFiltering(srch); } catch (Exception fex) { ModelState.AddModelError("Person:Get:FilterParse", fex.Message); return(BadRequest(ModelState)); } var sorting = "true"; try { sorting = coreevent.FilterParsing <coreevent.Person> .GetSorting(srch); } catch (Exception sex) { ModelState.AddModelError("Person:Get:SortParse", sex.Message); return(BadRequest(ModelState)); } IQueryable <coreevent.Person> query = evts.AsQueryable().Where(filtering).OrderBy(sorting); int RowCount = 0; var newList = new List <coreevent.Person>(); try { RowCount = query.Count(); int skip = srch.Page * srch.PageSize; newList = query.Skip(skip).Take(srch.PageSize).ToList(); } catch {} // Setting Header HttpContext.Response.Headers.Add("Paging-TotalRecords", JsonConvert.SerializeObject(RowCount)); //var newList = query.ToList(); // var newRes = new FilterDTO<IEnumerable<coreevent.Person>>() { total=RowCount, data=newList }; //new { total = mdl.RowCount, data = res } return(Ok(newList)); } } catch (Exception ex) { ModelState.AddModelError("Person:Get", ex.Message); return(BadRequest(ModelState)); } }
public ActionResult <IEnumerable <coreevent.Event> > Get([ModelBinder(binderType: typeof(SearchBinder))] coreevent.SearchRequest srch) { try { //need to pull back all for all request or adjusting birthday dates for queires var evts = _eventService.GetAllEvents().ToList(); if ((srch == null) || (srch != null && srch.FilterObjectWrapper.FilterObjects.Count == 0 && srch.SortObjects.Count == 0 && srch.Page == 0 && srch.PageSize == 25)) { //return Ok(evts); HttpContext.Response.Headers.Add("Paging-TotalRecords", JsonConvert.SerializeObject(evts.Count)); return(Ok(evts)); } else { foreach (var item in evts) { if ((item.RepeatYearly == true) || (item.TopicId == 1 && item.Date != null)) { item.Date = new DateTime(DateTime.Now.Year, item.Date.Value.Month, item.Date.Value.Day); } } //Most javascript grids are 1 based page if (srch.Page > 0) { srch.Page--; } var fp = new coreevent.FilterParsing <coreevent.Event>(); string filtering = "true"; try { filtering = fp.GetFiltering(srch); } catch (Exception fex) { ModelState.AddModelError("Person:Get:FilterParse", fex.Message); return(BadRequest(ModelState)); } var sorting = "true"; try { sorting = coreevent.FilterParsing <coreevent.Event> .GetSorting(srch); } catch (Exception sex) { ModelState.AddModelError("Person:Get:SortParse", sex.Message); return(BadRequest(ModelState)); } //if filter and date range if (srch.FilterObjectWrapper.FilterObjects.Count == 2) { if (srch.FilterObjectWrapper.FilterObjects.ElementAt(0).Field1 == "Date" && srch.FilterObjectWrapper.FilterObjects.ElementAt(1).Field1 == "Date" && srch.FilterObjectWrapper.FilterObjects.ElementAt(0).Value1 != "" && srch.FilterObjectWrapper.FilterObjects.ElementAt(1).Value1 != "") { var startDate = ParseConvertDate(srch.FilterObjectWrapper.FilterObjects.ElementAt(0).Value1); var endtDate = ParseConvertDate(srch.FilterObjectWrapper.FilterObjects.ElementAt(1).Value1); var cevt = _eventService.GetCalculatedEventsByDateRange(startDate, endtDate); evts.AddRange(cevt); } } IQueryable <coreevent.Event> query = evts.AsQueryable().Where(filtering).OrderBy(sorting); int RowCount = 0; var newList = new List <coreevent.Event>(); try { RowCount = query.Count(); int skip = srch.Page * srch.PageSize; newList = query.Skip(skip).Take(srch.PageSize).ToList(); } catch {} //var newList = query.ToList(); HttpContext.Response.Headers.Add("Paging-TotalRecords", JsonConvert.SerializeObject(RowCount)); //new { total = mdl.RowCount, data = res } return(Ok(newList)); } } catch (Exception ex) { ModelState.AddModelError("Person:Get", ex.Message); return(BadRequest(ModelState)); } }