protected void processRequest(string topicName, RestRequest request)
        {
            if (!TopicsQueries.TopicExists(DBConnection, topicName))
            {
                throw new TopicNotExistsException();
            }
            else
            {
                var topic    = TopicsQueries.getTopicByName(DBConnection, topicName);
                var worker   = WorkerQueries.GetWorkerById(DBConnection, topic.Worker);
                var coworker = WorkerQueries.GetWorkerById(DBConnection, topic.Cooperator);

                PropageteRequestToWorkers(request, topic, worker, coworker);
            }
        }
        public void Delete(DeleteTopic request)
        {
            var requestToSend = new RestRequest($"/topics/{request.TopicName}", Method.DELETE);

            if (!TopicsQueries.TopicExists(DBConnection, request.TopicName))
            {
                throw new TopicNotExistsException();
            }
            else
            {
                var topic    = TopicsQueries.getTopicByName(DBConnection, request.TopicName);
                var worker   = WorkerQueries.GetWorkerById(DBConnection, topic.Worker);
                var coworker = WorkerQueries.GetWorkerById(DBConnection, topic.Cooperator);

                TopicsQueries.DeleteTopic(DBConnection, request.TopicName);
                PropageteRequestToWorkers(requestToSend, topic, worker, coworker);
            }
        }
        public Announcement Get(GetAnnouncement request, int subscriberId)
        {
            var requestToSend = new RestRequest($"/topics/{request.TopicName}/announcements", Method.GET);

            requestToSend.AddParameter("SubscriberId", subscriberId);

            if (!TopicsQueries.TopicExists(DBConnection, request.TopicName))
            {
                throw new TopicNotExistsException();
            }
            else
            {
                var topic    = TopicsQueries.getTopicByName(DBConnection, request.TopicName);
                var worker   = WorkerQueries.GetWorkerById(DBConnection, topic.Worker);
                var coworker = WorkerQueries.GetWorkerById(DBConnection, topic.Cooperator);

                return(PropageteRequestToWorkers <Announcement>(requestToSend, topic, worker, coworker));
            }
        }