public async Task SetValue(string id, Package <TValue>?value) { Dictionary <string, FileItemValue>?list = await ListLoader.GetData().ConfigureAwait(false); if (list == null) { return; } if (list.TryGetValue(id, out FileItemValue? item)) { await Set(item, value).ConfigureAwait(false); if (value == null) { _ = list.Remove(id); await ListLoader.Save(list).ConfigureAwait(false); } } else if (value != null) { FileItemValue nitem = new FileItemValue { FileName = id }; await Set(nitem, value).ConfigureAwait(false); list.Add(id, nitem); await ListLoader.Save(list).ConfigureAwait(false); } }
public async IAsyncEnumerable <string> GetKeys() { Dictionary <string, FileItemValue>?list = await ListLoader.GetData().ConfigureAwait(false); if (list != null) { foreach (string v in list.Keys) { yield return(v); } } }
public async IAsyncEnumerable <Package <TValue>?> GetValues() { Dictionary <string, FileItemValue>?list = await ListLoader.GetData().ConfigureAwait(false); if (list != null) { foreach (FileItemValue v in list.Values) { yield return(await Load(v).ConfigureAwait(false)); } } }
public async Task <bool> HasKey(string id) { Dictionary <string, FileItemValue>?list = await ListLoader.GetData().ConfigureAwait(false); return(list == null ? false : list.ContainsKey(id)); }
public async Task <Package <TValue>?> GetValue(string id) { Dictionary <string, FileItemValue>?list = await ListLoader.GetData().ConfigureAwait(false); return(list == null ? null : (list.TryGetValue(id, out FileItemValue? item) ? await Load(item).ConfigureAwait(false) : null)); }