public StudentSettingsControl(LimpUser user, UserGroup group, Action updateUi) { InitializeComponent(); _updateUI = updateUi; _group = group; _user = user; Title.Content = user.Username; }
private static string GenerateDayResults(LimpUser user) { throw new NotSupportedException(); //List<LimpUser> list = JsonBackupManager.LoadFromJson(); //LimpUser currentUser = list.FirstOrDefault(u => u.Username == user.Username); //int completed = user.CompletedTaskCount() - // (currentUser?.CompletedTaskCount() ?? 0); //return $"{user.Username,-14} |{user.CompletedTaskCount(),-3} ({completed})"; }
public static ProblemPackResult Create(ProblemsPack problems, LimpUser user) { List <int> result = problems .Problems .Select(problem => problem.GetUserResult(user)) .ToList(); return(new ProblemPackResult { Points = result, Username = user.Username }); }
public void LoadUserData(LimpUser user) { var client = new HtmlWeb(); string link = ElimpParser.DomainUrl + $"/users/{user.EOlympLogin}/punchcard"; Dictionary <int, int> userResult = client.Load(link) .GetElementbyId("punch-card") .ChildNodes .Where(n => n.GetAttributeValue("href", "empty") != "empty") .Where(n => n.Attributes["href"].Value.Substring(0, 13) == "/ru/problems/") .Select(n => (TaskIdFromLink(n.Attributes["href"].Value), TitleToResult(n.Attributes["title"].Value))) .ToDictionary(pair => pair.Item1, pair => pair.Item2); user.EOlimpProblemsResult = userResult; }
private static void TryLoad(LimpUser user, IProblemParser parser) { for (var i = 0; i < MaxRequestPerUserCount; i++) { try { parser.LoadUserData(user); return; } catch (ParserException) { Debug.WriteLine($"Failed for {user.Username}"); } } throw new ParserException($"Can't load user data for {user.Username}"); }
public int GetUserResult(LimpUser user) { switch (Type) { case Domain.EOlymp: //TODO: Handle case when problem was not found user.EOlimpProblemsResult.TryGetValue(int.Parse(Title), out int points); return(points); case Domain.Codeforces: return(user.CodeforcesSubmissions.Contains(Title) ? 100 : 0); default: throw new ArgumentException(nameof(user)); } }
public void LoadUserData(LimpUser user) { ResponseContainer <List <Submission> > response = CodeforcesClient .User .Status(user.CodeforcesHandle) .Result; response.ThrowExceptionIfFailed(); IEnumerable <Submission> okSubmission = response .Result .Where(s => s.Verdict == SubmissionVerdictEnum.Ok); IEnumerable <string> solvedProblems = okSubmission .Select(s => $"{s.Problem.ContestId}{s.Problem.Index}") .Distinct(); user.CodeforcesSubmissions = solvedProblems.ToList(); }
public ProblemPackResult GetResults(LimpUser user) { return(ProblemPackResult.Create(this, user)); }