public static void RefreshProblemListCache() { System.Threading.Tasks.Task.Factory.StartNew(() => { var DbContext = new DataModels.DB(); ProblemListCache = (from p in DbContext.Problems select p).ToList(); }); }
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"); }