Ejemplo n.º 1
0
 public static void RefreshProblemListCache()
 {
     System.Threading.Tasks.Task.Factory.StartNew(() =>
     {
         var DbContext    = new DataModels.DB();
         ProblemListCache = (from p in DbContext.Problems
                             select p).ToList();
     });
 }
Ejemplo n.º 2
0
 public vStatus(Status Status)
 {
     ID              = Status.ID;
     UserID          = Status.UserID;
     IsContestStatus = Status.ContestID == null ? false : true;
     ProblemID       = Status.ProblemID;
     ProblemTitle    = HttpUtility.HtmlEncode(Status.Problem.Title);
     ResultAsInt     = Status.ResultAsInt;
     Result          = CommonEnums.JudgeResultDisplay[Status.ResultAsInt];
     IsJoyOI         = !string.IsNullOrEmpty(Status.StateMachineId);
     if (Status.TimeUsage == null || Status.Score == null || Status.MemoryUsage == null)
     {
         try
         {
             TimeUsage   = Status.JudgeTasks.Sum(x => x.TimeUsage);
             MemoryUsage = Status.JudgeTasks.Max(x => x.MemoryUsage);
             Score       = Status.JudgeTasks.Where(x => x.Result == JudgeResult.Accepted).Count() * 100 / Status.JudgeTasks.Count;
         }
         catch
         {
             TimeUsage   = 0;
             MemoryUsage = 0;
             Score       = 0;
         }
         var db = new DataModels.DB();
         var s  = db.Statuses.Find(Status.ID);
         s.TimeUsage   = TimeUsage;
         s.MemoryUsage = MemoryUsage;
         s.Score       = s.Score;
         db.SaveChanges();
     }
     else
     {
         TimeUsage   = Status.TimeUsage.Value;
         MemoryUsage = Status.MemoryUsage.Value;
         Score       = Status.Score.Value;
     }
     if (Status.Result == JudgeResult.Hidden)
     {
         TimeUsage   = 0;
         MemoryUsage = 0;
         Score       = 0;
     }
     Username = Helpers.ColorName.GetNicknameHtml(Status.User.Username, Status.User.Role);
     Language = CommonEnums.LanguageDisplay[Status.LanguageAsInt];
     Time     = Status.Time.ToString("yyyy-MM-dd HH:mm:ss");
 }