public Task <GetContentLocationsResponse> GetContentLocationsAsync(GetContentLocationsRequest request)
 {
     return(ExecuteAsync(request, async context =>
     {
         Result <IReadOnlyList <ContentLocationEntry> > result = await _store.GetBulkAsync(context, request.Hashes);
         return result.Select(entries => new GetContentLocationsResponse()
         {
             Entries = entries
         });
     }));
 }
Exemplo n.º 2
0
        public void GetContentLocationsRequestRoundtrip()
        {
            var model = MetadataServiceSerializer.TypeModel;

            var obj = new GetContentLocationsRequest()
            {
                ContextId = "test",
                Hashes    = new List <ShortHash>()
                {
                    ContentHash.Random(),
                },
            };

            var deserialized = Roundtrip(model, obj);

            Assert.Equal(obj.Hashes, deserialized.Hashes);

            // Equality seems to be defined wrong for the record type somehow. However, the deserialization does result
            // in the same objects.
            // Assert.Equal(obj, deserialized);
        }
Exemplo n.º 3
0
 /// <inheritdoc />
 public Task <GetContentLocationsResponse> GetContentLocationsAsync(GetContentLocationsRequest request, CallContext callContext = default)
 {
     return(ExecuteAsync(request, callContext, context =>
     {
         return _store.GetBulkAsync(context, request.Hashes)
         .AsAsync(entries => new GetContentLocationsResponse()
         {
             Entries = entries
         });
     },
                         extraEndMessage: r => {
         if (!r.Succeeded)
         {
             var csv = string.Join(",", request.Hashes);
             return $"Hashes=[{csv}]";
         }
         else
         {
             var entries = r.Value.Entries;
             var csv = string.Join(",", request.Hashes.Zip(entries, (hash, entry) => $"{hash}:{entry.Locations.Count}"));
             return $"Hashes=[{csv}]";
         }
     }));
 }