nft-faucet/NftFaucetRadzen/Models/ScopedAppState.cs
2022-08-28 10:35:46 -05:00

22 lines
1.0 KiB
C#

using NftFaucetRadzen.Plugins;
using NftFaucetRadzen.Plugins.NetworkPlugins;
using NftFaucetRadzen.Plugins.ProviderPlugins;
namespace NftFaucetRadzen.Models;
public class ScopedAppState
{
public StateStorage Storage { get; private set; } = new();
public INetwork SelectedNetwork => Storage?.Networks?.FirstOrDefault(x => x.Id == Storage?.SelectedNetworks?.FirstOrDefault());
public IProvider SelectedProvider => Storage?.Providers?.FirstOrDefault(x => x.Id == Storage?.SelectedProviders?.FirstOrDefault());
public IContract SelectedContract => Storage?.Contracts?.FirstOrDefault(x => x.Id == Storage?.SelectedContracts?.FirstOrDefault());
public IToken SelectedToken => Storage?.Tokens?.FirstOrDefault(x => x.Id == Storage?.SelectedTokens?.FirstOrDefault());
public ITokenUploadLocation SelectedUploadLocation => Storage?.UploadLocations?.FirstOrDefault(x => x.Id == Storage?.SelectedUploadLocations?.FirstOrDefault());
public void Reset()
{
Storage = new StateStorage();
}
}