private static TcpPackage WrapFilteredReadAllEventsBackwardCompleted( ClientMessage.FilteredReadAllEventsBackwardCompleted msg) { var dto = new TcpClientMessageDto.FilteredReadAllEventsCompleted( msg.CurrentPos.CommitPosition, msg.CurrentPos.PreparePosition, ConvertToResolvedEvents(msg.Events), msg.NextPos.CommitPosition, msg.NextPos.PreparePosition, msg.IsEndOfStream, (TcpClientMessageDto.FilteredReadAllEventsCompleted.FilteredReadAllResult)msg.Result, msg.Error); return(new TcpPackage(TcpCommand.FilteredReadAllEventsBackwardCompleted, msg.CorrelationId, dto.Serialize())); }
public static FeedElement ToFilteredAllEventsBackwardFeed(ClientMessage.FilteredReadAllEventsBackwardCompleted msg, Uri requestedUrl, EmbedLevel embedContent) { var self = HostName.Combine(requestedUrl, "/streams/{0}", AllFilteredEscaped); var feed = new FeedElement(); feed.SetTitle(string.Format("All events")); feed.SetId(self); feed.SetUpdated(msg.Events.Length > 0 && msg.Events[0].Event != null ? msg.Events[0].Event.TimeStamp : DateTime.MinValue.ToUniversalTime()); feed.SetAuthor(AtomSpecs.Author); feed.AddLink("self", self); feed.AddLink("first", HostName.Combine(requestedUrl, "/streams/{0}/head/backward/{1}", AllFilteredEscaped, msg.MaxCount)); if (!msg.IsEndOfStream) { feed.AddLink("last", HostName.Combine(requestedUrl, "/streams/{0}/{1}/forward/{2}", AllFilteredEscaped, new TFPos(0, 0).AsString(), msg.MaxCount)); feed.AddLink("next", HostName.Combine(requestedUrl, "/streams/{0}/{1}/backward/{2}", AllFilteredEscaped, msg.NextPos.AsString(), msg.MaxCount)); } feed.AddLink("previous", HostName.Combine(requestedUrl, "/streams/{0}/{1}/forward/{2}", AllFilteredEscaped, msg.PrevPos.AsString(), msg.MaxCount)); for (int i = 0; i < msg.Events.Length; ++i) { feed.AddEntry(ToEntry(msg.Events[i].WithoutPosition(), requestedUrl, embedContent)); } return(feed); }