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
}
}