Beispiel #1
0
        public ActionResult GetClarifications(string Token, int ContestID)
        {
            var user = CheckUser(Token);

            if (user == null)
            {
                return(Json(new Clarifications
                {
                    List = null,
                    Code = 500,
                    IsSuccess = false,
                    Info = "AccessToken不正确"
                }));
            }
            var contest = DbContext.Contests.Find(ContestID);
            IQueryable <Entity.Clarification> clarifications = (from c in DbContext.Clarifications
                                                                where c.ContestID == ContestID
                                                                orderby c.Time descending
                                                                select c);

            if (user.Role < Entity.UserRole.Master && !(from cm in contest.Managers select cm.ID).Contains(user.ID))
            {
                clarifications.Where(x => x.UserID == user.ID || x.Status == Entity.ClarificationStatus.BroadCast);
            }
            clarifications.ToList();
            var ret = new Clarifications()
            {
                Code = 0, IsSuccess = true, Info = "", List = new List <Clarification>()
            };

            foreach (var clarification in clarifications)
            {
                ret.List.Add(new Clarification
                {
                    ClarID      = clarification.ID,
                    Answer      = clarification.Answer,
                    Question    = clarification.Question,
                    Status      = clarification.Status.ToString(),
                    StatusAsInt = clarification.StatusAsInt,
                    Category    = clarification.ProblemID == null ? "General" : clarification.Problem.Title,
                    Time        = clarification.Time,
                    ContestID   = clarification.ContestID
                });
            }
            return(Json(ret));
        }
Beispiel #2
0
 public ActionResult GetClarifications(string Token, int ContestID)
 {
     var user = CheckUser(Token);
     if (user == null)
         return Json(new Clarifications
         {
             List = null,
             Code = 500,
             IsSuccess = false,
             Info = "AccessToken不正确"
         });
     var contest = DbContext.Contests.Find(ContestID);
     IQueryable<Entity.Clarification> clarifications = (from c in DbContext.Clarifications
                                                  where c.ContestID == ContestID
                                                  orderby c.Time descending
                                                  select c);
     if (user.Role < Entity.UserRole.Master && !(from cm in contest.Managers select cm.ID).Contains(user.ID))
         clarifications.Where(x => x.UserID == user.ID || x.Status == Entity.ClarificationStatus.BroadCast);
     clarifications.ToList();
     var ret = new Clarifications() { Code = 0, IsSuccess = true, Info = "", List=new List<Clarification>() };
     foreach (var clarification in clarifications)
     {
         ret.List.Add(new Clarification
         {
             ClarID = clarification.ID,
             Answer = clarification.Answer,
             Question = clarification.Question,
             Status = clarification.Status.ToString(),
             StatusAsInt = clarification.StatusAsInt,
             Category = clarification.ProblemID == null ? "General" : clarification.Problem.Title,
             Time = clarification.Time,
             ContestID = clarification.ContestID
         });
     }
     return Json(ret);
 }