in memory storage service

This commit is contained in:
Kyle Spearrin 2019-07-03 12:31:18 -04:00
parent ea745665c8
commit 8b7ac179fa

View file

@ -0,0 +1,40 @@
using Bit.Core.Abstractions;
using Newtonsoft.Json;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace Bit.Core.Services
{
public class InMemoryStorageService : IStorageService
{
private readonly Dictionary<string, string> _dict = new Dictionary<string, string>();
public Task<T> GetAsync<T>(string key)
{
if(!_dict.ContainsKey(key))
{
return Task.FromResult(default(T));
}
return Task.FromResult(JsonConvert.DeserializeObject<T>(_dict[key]));
}
public Task SaveAsync<T>(string key, T obj)
{
if(obj == null)
{
return RemoveAsync(key);
}
_dict.Add(key, JsonConvert.SerializeObject(obj));
return Task.FromResult(0);
}
public Task RemoveAsync(string key)
{
if(_dict.ContainsKey(key))
{
_dict.Remove(key);
}
return Task.FromResult(0);
}
}
}