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 }); }
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); }