public JsonResult GetUserQuadList(int?page, int?limit, string sortBy, string direction, string searchString = null) { UserQuadViewModel userQuadViewModel = new UserQuadViewModel(); int userID = Convert.ToInt32(Session["UserID"]); userQuadViewModel.page = page; userQuadViewModel.limit = limit; userQuadViewModel.sortBy = sortBy; userQuadViewModel.direction = direction; userQuadViewModel.searchString = searchString; userQuadViewModel.userID = userID; userQuadViewModel.GetUserQuadList(userQuadViewModel); List <UserQuad> records = userQuadViewModel.UserQuadList; int total = userQuadViewModel.totalRecords; JsonResult gridData = Json(new { records, total }, JsonRequestBehavior.AllowGet); return(gridData); }
public List <UserQuad> GetUserQuadList(UserQuadViewModel userQuadViewModel, out int totalRecords) { pidhubEntities entity = new pidhubEntities(); var quads = from q in entity.Quads .Include("FlightControllerHardware") .Include("FlightControllerSoftware") .Include("Frame") .Include("Battery") .Include("ESC") .Include("Prop") .Include("Motor") where q.User_ID == userQuadViewModel.userID select q; string sortBy = userQuadViewModel.sortBy; string direction = userQuadViewModel.direction; switch (sortBy) { case "QuadName": if (direction == "asc") { quads = quads.OrderBy(t => t.QuadName); } else { quads = quads.OrderByDescending(t => t.QuadName); } break; case "FrameName": if (direction == "asc") { quads = quads.OrderBy(t => t.Frame.FrameName); } else { quads = quads.OrderByDescending(t => t.Frame.FrameName); } break; case "FlightControllerSoftwareName": if (direction == "asc") { quads = quads.OrderBy(t => t.FlightControllerSoftware.FCSoftwareName); } else { quads = quads.OrderByDescending(t => t.FlightControllerSoftware.FCSoftwareName); } break; case "FlightControllerHardwareName": if (direction == "asc") { quads = quads.OrderBy(t => t.FlightControllerHardware.FCHardwareName); } else { quads = quads.OrderByDescending(t => t.FlightControllerHardware.FCHardwareName); } break; case "MotorName": if (direction == "asc") { quads = quads.OrderBy(t => t.Motor.MotorName); } else { quads = quads.OrderByDescending(t => t.Motor.MotorName); } break; case "ESCName": if (direction == "asc") { quads = quads.OrderBy(t => t.ESC.ESCName); } else { quads = quads.OrderByDescending(t => t.ESC.ESCName); } break; case "PropName": if (direction == "asc") { quads = quads.OrderBy(t => t.Prop.PropName); } else { quads = quads.OrderByDescending(t => t.Prop.PropName); } break; case "BatteryName": if (direction == "asc") { quads = quads.OrderBy(t => t.Battery.BatteryName); } else { quads = quads.OrderByDescending(t => t.Battery.BatteryName); } break; default: quads = quads.OrderBy(t => t.Quad_ID); break; } totalRecords = quads.Count(); if (userQuadViewModel.page != null & userQuadViewModel.limit != null) { int page = (int)userQuadViewModel.page - 1; int limit = (int)userQuadViewModel.limit; quads = quads.Skip(page * limit).Take(limit); } List <UserQuad> quadList = new List <UserQuad>(); foreach (Quad quad in quads.ToList()) { quadList.Add(new UserQuad() { QuadID = quad.Quad_ID, QuadName = quad.QuadName, FlightControllerSoftwareName = quad.FlightControllerSoftware.FCSoftwareName, FlightControllerHardwareName = quad.FlightControllerHardware.FCHardwareName, FrameName = quad.Frame.FrameName, MotorName = quad.Motor.MotorName, ESCName = quad.ESC.ESCName, PropName = quad.Prop.PropName, BatteryName = quad.Battery.BatteryName, }); } return(quadList); }