From 8b7ac179fa4b7f5258c85d2c6244f4f1d21982cf Mon Sep 17 00:00:00 2001 From: Kyle Spearrin Date: Wed, 3 Jul 2019 12:31:18 -0400 Subject: [PATCH] in memory storage service --- src/Core/Services/InMemoryStorageService.cs | 40 +++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 src/Core/Services/InMemoryStorageService.cs diff --git a/src/Core/Services/InMemoryStorageService.cs b/src/Core/Services/InMemoryStorageService.cs new file mode 100644 index 000000000..1c6ed114b --- /dev/null +++ b/src/Core/Services/InMemoryStorageService.cs @@ -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 _dict = new Dictionary(); + + public Task GetAsync(string key) + { + if(!_dict.ContainsKey(key)) + { + return Task.FromResult(default(T)); + } + return Task.FromResult(JsonConvert.DeserializeObject(_dict[key])); + } + + public Task SaveAsync(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); + } + } +}