protected void PropageteRequestToWorkers(RestRequest request, Topic topic, Worker worker, Worker coworker)
        {
            var           requestForMaster = request.AddParameter("Cooperator", coworker.Address);
            IRestResponse response;

            if (WorkerQueries.IsWorkerAlive(DBConnection, worker.Id))
            {
                response = PropagateRequest(requestForMaster, worker);
                if (response.ResponseStatus == ResponseStatus.TimedOut ||
                    response.ResponseStatus == ResponseStatus.Error)
                {
                    response = PropagateRequest(request, coworker);
                    TopicsQueries.swapWorkers(DBConnection, topic);
                }
            }
            else
            {
                response = PropagateRequest(request, coworker);
                TopicsQueries.swapWorkers(DBConnection, topic);
            }
            if (response.StatusCode != HttpStatusCode.OK)
            {
                throw new BadRequestException();
            }
        }
 protected override void swapWorkers(ICollection collection)
 {
     TopicsQueries.swapWorkers(DBConnection, (Topic)collection);
 }