state service

This commit is contained in:
Kyle Spearrin 2019-04-09 17:01:55 -04:00
parent 13a2206735
commit 963b27fd71
2 changed files with 49 additions and 0 deletions

View file

@ -0,0 +1,11 @@
using System.Threading.Tasks;
namespace Bit.Core.Abstractions
{
public interface IStateService
{
Task<T> GetAsync<T>(string key);
Task RemoveAsync(string key);
Task SaveAsync<T>(string key, T obj);
}
}

View file

@ -0,0 +1,38 @@
using Bit.Core.Abstractions;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace Bit.Core.Services
{
public class StateService : IStateService
{
private readonly Dictionary<string, object> _state = new Dictionary<string, object>();
public Task<T> GetAsync<T>(string key)
{
return Task.FromResult(_state.ContainsKey(key) ? (T)_state[key] : (T)(object)null);
}
public Task SaveAsync<T>(string key, T obj)
{
if(_state.ContainsKey(key))
{
_state[key] = obj;
}
else
{
_state.Add(key, obj);
}
return Task.FromResult(0);
}
public Task RemoveAsync(string key)
{
if(_state.ContainsKey(key))
{
_state.Remove(key);
}
return Task.FromResult(0);
}
}
}