Пример #1
0
        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());
        }
Пример #2
0
 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);
     }
 }
Пример #3
0
 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;
 }
Пример #4
0
 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;
 }
Пример #5
0
 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());
     }
 }