public StudentSettingsControl(LimpUser user, UserGroup group, Action updateUi)
 {
     InitializeComponent();
     _updateUI     = updateUi;
     _group        = group;
     _user         = user;
     Title.Content = user.Username;
 }
Ejemplo n.º 2
0
        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})";
        }
Ejemplo n.º 3
0
        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
            });
        }
Ejemplo n.º 4
0
        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;
        }
Ejemplo n.º 5
0
 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}");
 }
Ejemplo n.º 6
0
        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));
            }
        }
Ejemplo n.º 7
0
        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();
        }
Ejemplo n.º 8
0
 public ProblemPackResult GetResults(LimpUser user)
 {
     return(ProblemPackResult.Create(this, user));
 }