Example #1
0
        public async Task <int> NextContest(string filter, int idx)
        {
            for (; idx < _contests.Count; idx++)
            {
                var contest = _contests[idx];
                if (contest.Phase == "FINISHED" && contest.Name.Contains(filter))
                {
                    bool able = true;
                    foreach (var user in _users)
                    {
                        var responseStatus = await CodeforcesClient.GetStatus(contest.Id, user);

                        if (responseStatus.Result.Count != 0)
                        {
                            able = false;
                            break;
                        }
                    }
                    if (able)
                    {
                        return(idx);
                    }
                }
            }
            return(-1);
        }
Example #2
0
        public App()
        {
            var responseContests = CodeforcesClient.GetContestsList(false);

            _users = IO.GetUsers();

            var responseCheckUsers = CheckUsers(_users);

            responseCheckUsers.GetAwaiter().GetResult();
            var able = responseCheckUsers.Result;

            if (!able)
            {
                throw new Exception();
            }

            var response = responseContests.GetAwaiter().GetResult();

            if (response.Status == "FAILED")
            {
                throw new Exception();
            }

            _contests = response.Result;
            if (IO.OlderFirst())
            {
                _contests.Reverse();
            }
        }
Example #3
0
        public async Task <bool> CheckUsers(List <string> users)
        {
            bool able = true;

            foreach (var username in users)
            {
                var responseUser = await CodeforcesClient.GetUser(username);

                if (responseUser.Status == "FAILED")
                {
                    Console.WriteLine($"User {username} does not exist");
                    able = false;
                }
            }
            return(able);
        }