private static bool UpdateItemIntoDataStore(DictionaryIgnoreCase <DictionaryIgnoreCase <JToken> > store, string route, string key, JToken value) { bool found = false; if (store.ContainsKey(route) && store[route].ContainsKey(key)) { found = true; if (value == null) { store[route].Remove(key); // Bug - TODO fix this area //if (!store[key].Any()) //{ // store.Remove(route); //} } else { store[route][key] = value; } } return(found); }
private static void AddModifyItemToDataStore(DictionaryIgnoreCase <DictionaryIgnoreCase <JToken> > store, string route, string key, JToken value) { if (!store.ContainsKey(route)) { store.Add(route, new DictionaryIgnoreCase <JToken>()); } if (!store[route].ContainsKey(key)) { store[route].Add(key, value); } store[route][key] = value; }
private static List <DataStoreItem> GetValueAndRoutesFromDataStore(DictionaryIgnoreCase <DictionaryIgnoreCase <JToken> > store, string key, DataStoreType dataStoreType) { List <DataStoreItem> itemsMatching = new List <DataStoreItem>(); foreach (var keyValuePair in store) { if (keyValuePair.Value.ContainsKey(key)) { itemsMatching.Add(new DataStoreItem() { Route = keyValuePair.Key, Key = key, Value = keyValuePair.Value[key], DataStoreType = dataStoreType }); } } return(itemsMatching); }