protected void PropageteRequestToWorkers(RestRequest request, Queue queue, 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); QueuesQueries.swapWorkers(DBConnection, queue); } } else { response = PropagateRequest(request, coworker); QueuesQueries.swapWorkers(DBConnection, queue); } if (response.StatusCode != HttpStatusCode.OK) { throw new BadRequestException(); } }
protected T PropageteRequestToWorkers <T>(RestRequest request, ICollection collection, Worker worker, Worker coworker) where T : new() { IRestResponse <T> response; if (WorkerQueries.IsWorkerAlive(DBConnection, worker.Id)) { response = PropagateRequest <T>(request, worker); if (response.ResponseStatus == ResponseStatus.TimedOut || response.ResponseStatus == ResponseStatus.Error) { response = PropagateRequest <T>(request, coworker); swapWorkers(collection); } } else { response = PropagateRequest <T>(request, coworker); swapWorkers(collection); } if (response.StatusCode != HttpStatusCode.OK) { throw new BadRequestException(); } return(response.Data); }