private async Task GetbGridAssets() { var tenantId = User.Claims.Where(c => c.Type == "http://schemas.microsoft.com/identity/claims/tenantid").FirstOrDefault().Value; if (!_cache.TryGetValue(tenantId + "_bGridAssets", out List <bGridAsset> cachedAssets)) { _bGridAssets = await BuildingActionHelper.ExecuteGetAction <List <bGridAsset> >("api/assets", _tenantConfig.bGridConfig); var cacheEntryOptionsShort = new MemoryCacheEntryOptions().SetSlidingExpiration(TimeSpan.FromSeconds(_roomsConfig.Value.CacheTime / 5)); _cache.Set(tenantId + "_bGridAssets", _bGridAssets, cacheEntryOptionsShort); } else { _bGridAssets = cachedAssets; } }
private async Task <List <bGridTemperature> > GetbGridTemperatures() { var tenantId = User.Claims.Where(c => c.Type == "http://schemas.microsoft.com/identity/claims/tenantid").FirstOrDefault().Value; if (!_cache.TryGetValue(tenantId + "_bGridTemperatures", out List <bGridTemperature> cachedRoomTemperatures)) { var roomTemperatures = await BuildingActionHelper.ExecuteGetAction <List <bGridTemperature> >("api/locations/recent/temperature", _tenantConfig.bGridConfig); var cacheEntryOptionsShort = new MemoryCacheEntryOptions().SetSlidingExpiration(TimeSpan.FromSeconds(_roomsConfig.Value.CacheTime)); _cache.Set(tenantId + "_bGridTemperatures", roomTemperatures, cacheEntryOptionsShort); return(roomTemperatures); } else { return(cachedRoomTemperatures); } }
private async Task <List <bGridAsset> > GetAssets() { var bGridAssets = await BuildingActionHelper.ExecuteGetAction <List <bGridAsset> >("api/assets", _bGridConfig); return(bGridAssets); }
private async Task <TenantConfig> ReadConfig(IOptions <RoomsConfig> roomsConfig) { //var tenantId = User.Claims.Where(c => c.Type == "http://schemas.microsoft.com/identity/claims/tenantid").FirstOrDefault(); if (!_cache.TryGetValue(_tenantId + "_tenantConfig", out TenantConfig cachedConfig)) { TenantConfig tenantConfig = new TenantConfig(); if (roomsConfig.Value == null) { return(cachedConfig); } var blobName = "dev-" + _tenantId + ".json"; switch (roomsConfig.Value.FileLocation) { case "LocalFile": var json = System.IO.File.ReadAllText(roomsConfig.Value.URI); tenantConfig = JsonConvert.DeserializeObject <TenantConfig>(json); break; case "AzureStorageFile": using (var webClient = new WebClient()) { var jsonWC = webClient.DownloadString(roomsConfig.Value.URI); tenantConfig = JsonConvert.DeserializeObject <TenantConfig>(jsonWC); } break; case "AzureStorageContainerAndTenantIdSAS": var blobContainer = new CloudBlobContainer(new Uri(roomsConfig.Value.URI)); CloudBlockBlob blob = blobContainer.GetBlockBlobReference(blobName); if (blob.ExistsAsync().Result) { var jsonTidSAS = blob.DownloadTextAsync().Result; tenantConfig = JsonConvert.DeserializeObject <TenantConfig>(jsonTidSAS); } else { return(tenantConfig); } break; case "AzureStorageContainerAndTenantIdMI": var jsonTidMI = await ReadConfigBlob(blobName); if (jsonTidMI != null) { tenantConfig = JsonConvert.DeserializeObject <TenantConfig>(jsonTidMI); } else { return(tenantConfig); } break; default: break; } if (tenantConfig.bGridConfig.bGridUser != "") { var bGridlocations = await BuildingActionHelper.ExecuteGetAction <List <bGridLocation> >("api/locations", tenantConfig.bGridConfig); if (bGridlocations != null) { foreach (var room in tenantConfig.Rooms) { if (room.Nodes.Count > 0) { var bGridLocation = room.Nodes.First().Id; room.X = Convert.ToInt32(bGridlocations.Where(b => b.id.ToString() == bGridLocation).First().x); room.Y = Convert.ToInt32(bGridlocations.Where(b => b.id.ToString() == bGridLocation).First().y); } } } } var cacheEntryOptions = new MemoryCacheEntryOptions().SetSlidingExpiration(TimeSpan.FromSeconds(_roomsConfig.Value.CacheTime)); _cache.Set(_tenantId + "_tenantConfig", tenantConfig, cacheEntryOptions); return(tenantConfig); } else { return(cachedConfig); } }