Пример #1
0
        public static void HandleAuthRequest(Client client, object data)
        {
            if (client.Generator != null)
            {
                return;
            }

            AuthData authData = (AuthData)data;
            byte     attemptsLeft;

            client.Send(new AuthResponse()
            {
                Authenticated = client.Authenticate(authData.Email, authData.Token, out attemptsLeft),
                AttemptsLeft  = attemptsLeft
            });

            if (client.Authenticated)
            {
                Console.WriteLine("User {0} authenticated.", client.Email);
                UpdateHandler.UpdateInfo(client);
                ProfileHandler.SendProfiles(client);
                ReportsHandler.SendReports(client);
            }
            else if (attemptsLeft == 0)
            {
                Console.WriteLine("User {0} blocked.", authData.Email);
            }
        }
Пример #2
0
        public void Update()
        {
            lock (this)
            {
                if (_state == TaskState.RUNNING && RunningTime >= Config.TaskUpdateInverval * 1000 * _updateCount)
                {
                    _updateCount++;

                    if ((int)_currentUsers != (int)(_currentUsers + _deltaUsers))
                    {
                        long result;

                        try
                        {
                            result = RequestMaker.MakeWebRequest(Timeout, URLs[0]);
                        }
                        catch (Exception)
                        {
                            result = -1;
                        }

                        Console.WriteLine("Task with groupNumber {0} was updated (latency {1}).", TaskGroup, result);

                        _points.Add(new Point()
                        {
                            x = (int)_currentUsers,
                            y = (int)result
                        });
                    }

                    if (RunningTime >= Duration * 60 * 1000)
                    {
                        TaskDistributor.Distribute(this, 0);
                        _currentUsers = 0;
                        _state        = TaskState.FINISHED;
                        Console.WriteLine("Task with groupNumber {0} has finished.", TaskGroup);
                        ServerState.TasksUpdated.Set();
                        ServerState.RemoveTask(this);
                        SaveResult();
                        ReportsHandler.SendReports(_client);
                    }
                    else
                    {
                        _currentUsers += _deltaUsers;
                        TaskDistributor.Distribute(this, (int)_currentUsers);
                    }
                }
            }
        }