Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 11th, 2012  |  syntax: None  |  size: 1.86 KB  |  hits: 12  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. [HttpGet]
  2.                 public ActionResult Students(String searchField, String searchOper, String searchString, String sidx, String sord)
  3.                 {
  4.                         using (var ctx = new SurgeContext())
  5.                         {
  6.                                 List<Student> students = ctx.Get<Student>().ToList().Where(each => each.UserCanView(CurrentUser)).ToList();
  7.                                 var studentModels = students.Select(each => new StudentListItem(each)).ToList();
  8.  
  9.                                 if (students.Count > 0)
  10.                                 {
  11.                                         if( searchField != null )
  12.                                         {
  13.                                                 var field = typeof(StudentListItem).GetProperty(searchField);
  14.  
  15.                                                 switch (searchOper)
  16.                                                 {
  17.                                                         case "eq":
  18.                                                                 studentModels = studentModels.Where(each => field.GetValue(each, null) != null && field.GetValue(each, null).ToString() == searchString).ToList();
  19.                                                                 break;
  20.  
  21.                                                         case "ne":
  22.                                                                 studentModels = studentModels.Where(each => field.GetValue(each, null) != null && field.GetValue(each, null).ToString() != searchString).ToList();
  23.                                                                 break;
  24.  
  25.                                                         case "cn":
  26.                                                                 studentModels = studentModels.Where(each => field.GetValue(each, null) != null && field.GetValue(each, null).ToString().Contains(searchString)).ToList();
  27.                                                                 break;
  28.                                                 }
  29.                                         }
  30.  
  31.                                         if (sidx != null)
  32.                                         {
  33.                                                 var field = typeof(StudentListItem).GetProperty(sidx);
  34.  
  35.                                                 switch (sord)
  36.                                                 {
  37.                                                         case "asc":
  38.                                                                 studentModels = studentModels.OrderBy(each => field.GetValue(each, null) != null ? field.GetValue(each, null).ToString() : "").ToList();
  39.                                                                 break;
  40.  
  41.                                                         case "desc":
  42.                                                                 studentModels = studentModels.OrderByDescending(each => field.GetValue(each, null) != null ? field.GetValue(each, null).ToString() : "").ToList();
  43.                                                                 break;
  44.                                                 }
  45.                                         }
  46.                                 }
  47.  
  48.                                 var rows = studentModels.Select(each => new { id = 1, cell = each.ToCell() });
  49.  
  50.                                 var model = new { total = 1, page = 1, records = rows.Count(), rows };
  51.  
  52.                                 return ModelOrView(model);
  53.                         }
  54.                 }