예제 #1
0
        public void Delete(DeleteQueue request)
        {
            var requestToSend = new RestRequest($"queues/{request.QueueName}", Method.DELETE);

            if (!QueuesQueries.QueueExists(DBConnection, request.QueueName))
            {
                throw new QueueNotExistsException();
            }
            else
            {
                var queue    = QueuesQueries.getQueueByName(DBConnection, request.QueueName);
                var worker   = WorkerQueries.GetWorkerById(DBConnection, queue.Worker);
                var coworker = WorkerQueries.GetWorkerById(DBConnection, queue.Cooperator);

                QueuesQueries.DeleteQueue(DBConnection, request.QueueName);
                PropageteRequestToWorkers(requestToSend, queue, worker, coworker);
            }
        }
예제 #2
0
        public object Delete(DeleteQueue request)
        {
            IDbTransaction transaction = Db.OpenTransaction();

            try
            {
                DeletingQueue.Delete(request);
            }
            catch (QueueNotExistsException)
            {
                return(new HttpError(HttpStatusCode.NotFound, $"Queue {request.QueueName} not exists"));
            }
            catch (BadRequestException)
            {
                return(new HttpError(HttpStatusCode.BadRequest, "BadRequest"));
            }
            finally
            {
                transaction.Commit();
            }

            return(new HttpResult(new DeleteQueueResponse(), HttpStatusCode.NoContent));
        }