public Queue( Guid objectId, Guid userGuid, Uri mediaUrl, string title, string summary, DateTime publishedDate, Uri imageUri) { ObjectId = objectId; _userGuid = userGuid; MediaUrl = mediaUrl; Title = title; Summary = summary; PublishedDate = publishedDate; ImageUri = imageUri; _playhead = new Mutable<double>(userGuid.ToCanonicalString()); }
private async Task LoadInternalAsync(Guid objectId, TaskCompletionSource<ImmutableList<Message>> completion) { try { string fileName = String.Format("obj_{0}.json", objectId.ToCanonicalString()); var stream = await FileImplementation.OpenForRead( _folderName, fileName); var messages = ReadMessages(stream); var result = messages .Select(m => Message.FromMemento(m)) .ToImmutableList(); completion.SetResult(result); } catch (Exception ex) { completion.SetException(ex); } }
private static Message CreateSearchResultMessage( MessageHash searchHash, Guid searchTermId, SearchResult searchResult) { var searchResultMessage = Message.CreateMessage( searchTermId.ToCanonicalString(), "SearchResult", Predecessors.Set .In("Search", searchHash), searchTermId, new { ProviderId = "digitalpodcast.com", FeedUrl = searchResult.FeedUrl, Title = searchResult.Title, Subtitle = searchResult.Subtitle, Author = searchResult.Author, ImageUri = searchResult.ImageUri }); return searchResultMessage; }
private static Message CreateAggregateMessage( Guid searchTermId, ImmutableList<Message> searchResultMessages) { var aggregateMessage = Message.CreateMessage( searchTermId.ToCanonicalString(), "Aggregate", Predecessors.Set .In("SearchResult", searchResultMessages.Select(r => r.Hash)), searchTermId, new { }); return aggregateMessage; }
private async Task SaveUserIdentifierInternalAsync(string role, Guid userIdentifier) { string fileName = String.Format("user_{0}.txt", role); var outputStream = await FileImplementation.OpenForWrite( _folderName, fileName); using (var writer = new StreamWriter(outputStream)) { await writer.WriteAsync(userIdentifier.ToCanonicalString()); } }