private async Task Update(CancellationToken ct, Func <ApplicationSettings, ApplicationSettings> updateFunction) { await _dataPersister.Update(ct, context => { var settings = context.GetReadValueOrDefault(ApplicationSettings.Default); context.Commit(updateFunction(settings)); }); }
public async Task AddCallback(CancellationToken ct, string device, Callback callback) { // Currently we keep only one callback per device await _storage.Update(ct, ctx => ctx.Commit(ctx.Value.SetItem(device, (/*ctx.Value.GetValueOrDefault(device) ??*/ ImmutableList <Callback> .Empty).Add(callback)))); }