public ActionResult GetGroupHomeworks(string Token, int GroupID, int?Page) { var user = CheckUser(Token); if (user == null) { return(Json(new Base { Code = 500, IsSuccess = false, Info = "AccessToken不正确" })); } var group = DbContext.Groups.Find(GroupID); var groupmember = (from gm in @group.GroupMembers where gm.UserID == user.ID select gm).FirstOrDefault(); if (groupmember == null) { return(Json(new Base { Code = 808, IsSuccess = false, Info = "您不是该群的成员" })); } if (Page == null) { Page = 0; } var ret = new GroupHomeworks { Code = 0, Info = "", IsSuccess = true, List = new List <GroupHomework>(), PageCount = group.GroupHomeworks.Count / 10 + 1 }; var homeworks = group.GroupHomeworks.OrderByDescending(x => x.Begin).Skip(Page.Value * 10).Take(10).ToList(); foreach (var h in homeworks) { var homework = new GroupHomework { Begin = h.Begin, End = h.End, Description = h.Description, Title = h.Title, GroupID = h.GroupID, Problems = new List <GroupHomeworkProblem>() }; var problems = h.GroupHomeworkProblems.OrderBy(x => x.Priority); foreach (var p in problems) { var problem = new GroupHomeworkProblem { ProblemID = p.ID, Title = p.Problem.Title, Code = "" }; var status = (from s in DbContext.Statuses where h.Begin <= s.Time && s.Time < h.End && s.UserID == user.ID orderby s.Time descending select s).FirstOrDefault(); if (status == null) { problem.Status = "未完成"; } else { problem.Points = status.JudgeTasks.Where(x => x.Result == Entity.JudgeResult.Accepted).Count() * 100 / status.JudgeTasks.Count; problem.Status = problem + "分"; problem.Code = status.Code; } homework.Problems.Add(problem); } ret.List.Add(homework); } return(Json(ret)); }
public ActionResult GetGroupHomeworks(string Token, int GroupID, int? Page) { var user = CheckUser(Token); if (user == null) return Json(new Base { Code = 500, IsSuccess = false, Info = "AccessToken不正确" }); var group = DbContext.Groups.Find(GroupID); var groupmember = (from gm in @group.GroupMembers where gm.UserID == user.ID select gm).FirstOrDefault(); if (groupmember == null) return Json(new Base { Code = 808, IsSuccess = false, Info = "您不是该群的成员" }); if (Page == null) Page = 0; var ret = new GroupHomeworks { Code = 0, Info = "", IsSuccess = true, List = new List<GroupHomework>(), PageCount = group.GroupHomeworks.Count / 10 + 1 }; var homeworks = group.GroupHomeworks.OrderByDescending(x => x.Begin).Skip(Page.Value * 10).Take(10).ToList(); foreach (var h in homeworks) { var homework = new GroupHomework { Begin = h.Begin, End = h.End, Description = h.Description, Title = h.Title, GroupID = h.GroupID, Problems = new List<GroupHomeworkProblem>() }; var problems = h.GroupHomeworkProblems.OrderBy(x => x.Priority); foreach (var p in problems) { var problem = new GroupHomeworkProblem { ProblemID = p.ID, Title = p.Problem.Title, Code = "" }; var status = (from s in DbContext.Statuses where h.Begin <= s.Time && s.Time < h.End && s.UserID == user.ID orderby s.Time descending select s).FirstOrDefault(); if (status == null) problem.Status = "未完成"; else { problem.Points = status.JudgeTasks.Where(x => x.Result == Entity.JudgeResult.Accepted).Count() * 100 / status.JudgeTasks.Count; problem.Status = problem + "分"; problem.Code = status.Code; } homework.Problems.Add(problem); } ret.List.Add(homework); } return Json(ret); }