public object Get(GetAnnouncement request)
        {
            Announcement announcement;

            try
            {
                var subscriberId = this.GetSession().UserAuthId.ToInt();
                announcement = GettingAnnouncement.Get(request, subscriberId);
            }
            catch (TopicNotExistsException)
            {
                return(new HttpError(HttpStatusCode.NotFound, $"Topic {request.TopicName} not exists"));
            }
            catch (NoNewContentToGetException)
            {
                return(new HttpError(HttpStatusCode.NoContent, "No new content"));
            }
            catch (BadRequestException)
            {
                return(new HttpError(HttpStatusCode.BadRequest, "BadRequest"));
            }

            return(new GetAnnouncementResponse()
            {
                Id = announcement.AnnouncementId,
                Content = announcement.Content
            });
        }
Exemplo n.º 2
0
        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));
            }
        }