Example #1
0
        private SyndicationItem MapEntryToSyndicationItem(Identity topicId, FeedEntry e)
        {
            var messageLink = ResourceLocation.OfMessageByTopic(topicId, e.MessageId);
            var message     = messageByMessageKey.Get(new MessageKey {
                TopicId = topicId, MessageId = e.MessageId
            });

            var contentType = message.Headers.FirstOrDefault(h => h.Key == "Content-Type");
            var content     = new UrlSyndicationContent(messageLink, contentType.Value.Aggregate((a, b) => a + "," + b));

            return(new SyndicationItem(string.Format("Message {0}", e.MessageId),
                                       content,
                                       null,
                                       e.MessageId.ToString(), e.TimeStamp)
            {
                Links = { new SyndicationLink(messageLink) },
                LastUpdatedTime = e.TimeStamp
            });
        }
Example #2
0
        public HttpResponseMessage Get(Identity topicId, Identity messageId, HttpRequestMessage request)
        {
            var response = new HttpResponseMessage(HttpStatusCode.OK, string.Empty);

            DoProcess(() =>
            {
                var key = new MessageKey {
                    TopicId = topicId, MessageId = messageId
                };
                var message = messageByMessageKey.Get(key);
                if (message == null)
                {
                    response.StatusCode = HttpStatusCode.NotFound;
                }
                else
                {
                    PopulateHttpResponseMessage(ref response, message);
                }
            });

            return(response);
        }