public List <SensorData> GetSensorsTree(User user) { if (!_queueManager.IsUserRegistered(user)) { _queueManager.AddUserSession(user); } List <SensorData> result = new List <SensorData>(); var productsList = _productManager.Products; //Show available products only if (!UserRoleHelper.IsAllProductsTreeAllowed(user)) { productsList = productsList.Where(p => ProductRoleHelper.IsAvailable(p.Key, user.ProductsRoles)).ToList(); } //foreach (var product in productsList) //{ //result.AddRange(); //var sensorsList = _productManager.GetProductSensors(product.Name); //foreach (var sensor in sensorsList) //{ // var cachedVal = _valuesCache.GetValue(product.Name, sensor.Path); // if (cachedVal != null) // { // result.Add(cachedVal); // continue; // } // var lastVal = _database.GetLastSensorValue(product.Name, sensor.Path); // if (lastVal != null) // { // result.Add(_converter.Convert(lastVal, product.Name)); // } //} //} result.AddRange(_valuesCache.GetValues(productsList.Select(p => p.Name).ToList())); return(result); }