public static async Task <T> GetOrDefaultAsync <T>( this IKeyValueStore store, IValueKey <T> key, CancellationToken cancellation = default(CancellationToken)) { Contracts.Requires.That(store != null); Contracts.Requires.That(key != null); var result = await store.TryGetAsync(key, cancellation).DontMarshallContext(); return(result.HasValue ? result.Value : default(T)); }
/// <inheritdoc /> public async Task <TryValue <T> > TryGetAsync <T>( IValueKey <T> key, CancellationToken cancellation = default(CancellationToken)) { IKeyValueStoreContracts.TryGetAsync(key); cancellation.ThrowIfCancellationRequested(); var result = await this.store.TryGetAsync(key.Key, cancellation).DontMarshallContext(); return(result.HasValue ? key.TryDeserialize(result.Value.Value) : TryValue.None <T>()); }
/// <inheritdoc /> public Task RemoveAsync <T>(IValueKey <T> key, CancellationToken cancellation = default(CancellationToken)) { IKeyValueStoreContracts.RemoveAsync(key); cancellation.ThrowIfCancellationRequested(); var entity = new TEntity() { Key = key.Key, }; return(this.store.RemoveAsync(entity)); }
/// <inheritdoc /> public Task UpdateAsync <T>( IValueKey <T> key, T value, CancellationToken cancellation = default(CancellationToken)) { IKeyValueStoreContracts.UpdateAsync(key); cancellation.ThrowIfCancellationRequested(); var entity = new TEntity() { Key = key.Key, Value = key.Serialize(value), }; return(this.store.UpdateAsync(entity, cancellation)); }
public static TryValue <T> TryDeserialize <T>(this IValueKey <T> key, string value) { Contracts.Requires.That(key != null); T result; if (key.TryDeserialize(value, out result)) { return(TryValue.New(result)); } else { return(TryValue.None <T>()); } }
public static async Task <T> GetAsync <T>( this IKeyValueStore store, IValueKey <T> key, CancellationToken cancellation = default(CancellationToken)) { Contracts.Requires.That(store != null); Contracts.Requires.That(key != null); var result = await store.TryGetAsync(key, cancellation).DontMarshallContext(); if (result.HasValue) { return(result.Value); } else { throw new InvalidOperationException(); } }
public static void RemoveAsync <T>(IValueKey <T> key) { Contracts.Requires.That(key != null); }
public static void AddOrUpdateAsync <T>(IValueKey <T> key) { Contracts.Requires.That(key != null); }