예제 #1
0
        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);
        }
예제 #2
0
        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);
        }