using System.Text.Json; using Microsoft.JSInterop; namespace FoodsharingSiegen.Server.Service { /// /// The local storage service class (a. beging, 02.04.2022) /// public class LocalStorageService { #region Private Fields /// /// The js runtime /// private readonly IJSRuntime _jsRuntime; #endregion #region Setup/Teardown /// /// Constructor /// /// public LocalStorageService(IJSRuntime jsRuntime) => _jsRuntime = jsRuntime; #endregion #region Public Method GetItem /// /// Ein Item aus dem LocalStorage laden /// /// Der Key des Items /// Typ des Item /// public async Task GetItem(string key) { var json = await _jsRuntime.InvokeAsync("localStorage.getItem", key); if (json == null) return default; return JsonSerializer.Deserialize(json); } #endregion #region Public Method RemoveItem /// /// Ein Item aus dem LocalStorage löschen /// /// Der Key des Items public async Task RemoveItem(string key) { await _jsRuntime.InvokeVoidAsync("localStorage.removeItem", key); } #endregion #region Public Method SetItem /// /// Ein Item in den LocalStorage schreiben /// /// Der Key des Items /// Das Item /// Typ des Item public async Task SetItem(string key, T value) { await _jsRuntime.InvokeVoidAsync("localStorage.setItem", key, JsonSerializer.Serialize(value)); } #endregion } }