public IActionResult GetJson() { Console.WriteLine(@"GetJson Called."); var store = DreamData.GetStore(); if (DreamData.GetItem <List <BridgeData> >("bridges") != null) { var bridges = store.GetItem <List <BridgeData> >("bridges"); var newBridges = HueBridge.FindBridges(); var nb = new List <BridgeData>(); var update = false; if (bridges.Count > 0) { foreach (var b in bridges) { if (b.Key != null && b.User != null) { var hb = new HueBridge(b); b.SetLights(hb.GetLights()); b.SetGroups(hb.ListGroups().Result); update = true; } nb.Add(b); } } foreach (var bb in newBridges) { var exists = false; foreach (var b in bridges) { if (bb.BridgeId == b.Id) { exists = true; } } if (!exists) { Console.WriteLine($@"Adding new bridge at {bb.IpAddress}."); nb.Add(new BridgeData(bb.IpAddress, bb.BridgeId)); update = true; } } if (update) { bridges = nb; store.ReplaceItem("bridges", bridges, true); } } if (store.GetItem("dsIp") == "0.0.0.0") { var dc = new DreamClient(); dc.FindDevices().ConfigureAwait(true); dc.Dispose(); } store.Dispose(); return(Content(DreamData.GetStoreSerialized(), "application/json")); }