public string SensorsCurrectLineChart(string type, string roomId) { SensorsController SensorsControl = new SensorsController(); //var SensorsDataList = SensorsControl.GetSensorsData().Where(s => s.roomId.Contains(roomId)).ToList(); var SensorsDataList = SensorsControl.GetSensorsData().Where(s => s.roomId.Contains(roomId)).ToList(); string tableName = ""; var iid = type; if (type.Length > 2) { type = "true"; } switch (type) { case "TS": SensorsDataList = SensorsDataList.Where(x => x.sensorId.Contains("TS")).ToList(); ViewBag.unit = "℃"; ViewBag.unitName = "Temperature"; tableName = "TMP_SENSOR"; Debug.WriteLine("**** TMP_SENSOR" + "=>>" + SensorsDataList.ToJson().ToString()); break; case "LS": SensorsDataList = SensorsDataList.Where(x => x.sensorId.Contains("LS")).ToList(); ViewBag.unit = " lm"; ViewBag.unitName = "Luminosity"; tableName = "LIGHT_SENSOR"; Debug.WriteLine("**** LIGHT_SENSOR" + "=>>" + SensorsDataList.ToJson().ToString()); break; case "HS": SensorsDataList = SensorsDataList.Where(x => x.sensorId.Contains("HS")).ToList(); ViewBag.unit = " %"; tableName = "HUM_SENSOR"; ViewBag.unitName = "Humidity"; Debug.WriteLine("**** Humidity" + "=>>" + SensorsDataList.ToJson().ToString()); break; case "true": SensorsDataList = SensorsDataList.Where(x => x.sensorId.Contains(iid)).ToList(); switch (iid.Substring(0, 2)) { case "TS": ViewBag.unit = "℃"; ViewBag.unitName = "Temperature"; tableName = "TMP_SENSOR"; break; case "LS": ViewBag.unit = " lm"; ViewBag.unitName = "Luminosity"; tableName = "LIGHT_SENSOR"; break; case "HS": ViewBag.unit = " %"; ViewBag.unitName = "Humidity"; tableName = "HUM_SENSOR"; break; } Debug.WriteLine("****" + type + "=>>" + SensorsDataList.ToJson().ToString()); break; } List <CurrentDataModel> CurrentList = new List <CurrentDataModel>(); //only ts var start = today.AddHours(time * -1); //var start = today.AddHours(-3); var end = today; //end set time List <string> labelss = new List <string>(); List <object> datasets = new List <object>(); List <object> datas = new List <object>(); List <CurrentDataModel> searchResultOfCurrentDataList = new List <CurrentDataModel>(); var filterStartDateTime = Builders <CurrentDataModel> .Filter.Gte(x => x.latest_checking_time, start); var filterEndDateTime = Builders <CurrentDataModel> .Filter.Lte(x => x.latest_checking_time, end); foreach (SensorsListModel get in SensorsDataList) { var filterid = Builders <CurrentDataModel> .Filter.Eq(x => x.sensorId, get.sensorId); labelss.Add(get.sensorId); searchResultOfCurrentDataList = new DBManger().DataBase.GetCollection <CurrentDataModel>(tableName).Find(filterid & filterStartDateTime & filterEndDateTime).Sort(Builders <CurrentDataModel> .Sort.Descending(s => s.latest_checking_time)).ToList(); datas.Add(MangeData(searchResultOfCurrentDataList).ToArray()); } return(LineChart(SensorsDataList.Count, labelss, datas)); }