public Boolean setLTCurrentAndTurnON(String roomId, double current)//set data { DBManger dbManager = new DBManger(); List <String> count = new List <String>(); try { var devicesListcollection = dbManager.DataBase.GetCollection <MongoDevicesListModel>("DEVICES_LIST"); var Collection = dbManager.DataBase.GetCollection <MongoLig_Model>("LIGHT"); var filter = Builders <MongoDevicesListModel> .Filter.Eq("roomId", roomId) & Builders <MongoDevicesListModel> .Filter.Regex("devicesId", "LT"); var documents = devicesListcollection.Find(filter).ToList(); foreach (MongoDevicesListModel document in documents) { //Debug.WriteLine(document.devicesId); var filter2 = Builders <MongoDevicesListModel> .Filter.Eq("devicesId", document.devicesId); var update = Builders <MongoDevicesListModel> .Update.Set("set_value", current).Set("status", true); devicesListcollection.UpdateOne(filter2, update); MongoLig_Model mongo_Model = new MongoLig_Model(); mongo_Model.devicesId = document.devicesId; mongo_Model.current = current; mongo_Model.latest_checking_time = DateTime.UtcNow.AddHours(8); Collection.InsertOne(mongo_Model); } return(true); } catch (Exception e) { Debug.WriteLine(e); return(false); } }
public double GetCurrentValue(string Id) { ConnectDB conn = new ConnectDB(); var database = conn.Conn(); IMongoCollection <BsonDocument> collection; FilterDefinition <BsonDocument> filter; var dbStr = Id.Substring(0, 2) switch { "EF" => "EXH_FAN", "AC" => "AC", "LT" => "LIGHT", "HD" => "HUM", "CA" => "PI_CAM", _ => "" }; var json = new DBManger().DataBase.GetCollection <CurrentDataModel>(dbStr).Find(Builders <CurrentDataModel> .Filter.Eq("devicesId", Id)).Sort(Builders <CurrentDataModel> .Sort.Descending(s => s.latest_checking_time)).ToList(); if (json.Count() > 0 && json != null) { //Debug.WriteLine("current =="+ json.First().current+" "+ json.First().latest_checking_time); return(json.First().current); } else { //Debug.WriteLine("current ==0" ); return(0); } }
public List <Product> GetALLProduct() { DataTable dt = DBManger.ExecuteDataTable("select * from products ", System.Data.CommandType.Text); List <Product> products = Helper.DataTableToList <Product>(dt); return(products); }
public List <ScheduleModel> GetScheduleList() { var scheduleDb = new DBManger().ScheduleDatabase.GetCollection <ScheduleModel>(ScheduleCollectionName); var sort = Builders <ScheduleModel> .Sort.Descending("_id"); // Newest element top of the list return(scheduleDb.Find(schedule => true).Sort(sort).ToList()); }
public Product GetProductbyID(int id) { var list = Helper.DataTableToList <Product>( DBManger.ExecuteDataTable("select top(1) * from products where ProductID = @ID", CommandType.Text, new System.Data.SqlClient.SqlParameter("@ID", id)) ); return(list[0]); }
private void TagTreeView_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs <object> e) { DBManger dbManager = new DBManger(); selectedItem = e.NewValue as TagTreeViewItem; string query = "SELECT * FROM TAGTABLE WHERE TAGID LIKE '%" + selectedItem.TagCategory.TagId + "%'"; dbManager.Query = query; dbManager.execute(ref _TagedItemCollection); }
public string Post(object imgJson) { var json = System.Text.Json.JsonSerializer.Serialize(imgJson); var piJsonModel = JsonConvert.DeserializeObject <pi_cam_model>(json); var deviceFilter = Builders <MongoDevicesListModel> .Filter.Eq(x => x.devicesId, piJsonModel.deviceId); var PiFilter = Builders <pi_cam_model> .Filter.Eq(x => x.deviceId, piJsonModel.deviceId); var deviceList = new DBManger().DataBase.GetCollection <MongoDevicesListModel>("DEVICES_LIST").Find(deviceFilter).ToList(); //Debug.WriteLine(get.deviceId +"has "+check.Count()); try { if (deviceList.Count() != 0) {//user need added to devicesList first var piCamList = new DBManger().DataBase.GetCollection <pi_cam_model>("PI_CAM").Find(PiFilter).ToList(); if (piCamList.Count() != 0) { var up = Builders <pi_cam_model> .Update .Set(x => x.base_cam_img, piJsonModel.base_cam_img) .Set(x => x.latest_checking_time, DateTime.UtcNow.AddHours(8)); var UpdateResult = new DBManger().DataBase.GetCollection <pi_cam_model>("PI_CAM").FindOneAndUpdateAsync(u => u.deviceId == piJsonModel.deviceId, up); if (UpdateResult == null) { Debug.WriteLine("Can not Update PI CAM Result =>> " + UpdateResult); throw new System.ArgumentException("Update PI cam to db fail", "original"); } } else {//first upload data var newCamModelTodb = new pi_cam_model() { roomId = deviceList.FirstOrDefault().roomId, deviceId = piJsonModel.deviceId, latest_checking_time = DateTime.UtcNow.AddHours(8), base_cam_img = piJsonModel.base_cam_img, current = 0 }; new DBManger().DataBase.GetCollection <pi_cam_model>("PI_CAM").InsertOneAsync(newCamModelTodb); } } else // didn't add to the devicesList { throw new System.ArgumentException("Please add the device to db on UI", "original"); } }catch (Exception e) { return("{ status: false," + "msg:" + e.Message.ToString() + "}"); }; return("{ status: true," + "msg: Success, Pi cam updated}"); }
public DevicesPowerUseOutputUtil() { dbManager = new DBManger(); var collection = dbManager.DataBase.GetCollection <MongoDevicesPowerUse>("DEVICES_POWER_USE"); roomList = collection.AsQueryable <MongoDevicesPowerUse>().Select(c => c.roomId).Distinct().ToList(); foreach (var element in roomList) { //Debug.WriteLine("Count: " + element); count++; } }
public void doException(string id, string error) { var filter = Builders <MongoSensorsListModel> .Filter.Eq("sensorId", id); var up = Builders <MongoSensorsListModel> .Update.Set("Exception", error); var Updated = new DBManger().DataBase.GetCollection <MongoSensorsListModel>("SENSOR_LIST").UpdateOne(filter, up); up = Builders <Models.MongoModels.MongoSensorsListModel> .Update.Set("latest_checking_time", utcNow); Updated = new DBManger().DataBase.GetCollection <MongoSensorsListModel>("SENSOR_LIST").UpdateOne(filter, up); }
public CurrentDataModel GetSensorIDCurrent(string sensorId) { string tableName = ""; List <CurrentDataModel> List = new List <CurrentDataModel>(); CurrentDataModel query = new CurrentDataModel(); switch (sensorId.Substring(0, 2)) { case "TS": tableName = "TMP_SENSOR"; break; case "LS": tableName = "LIGHT_SENSOR"; break; case "HS": tableName = "HUM_SENSOR"; break; case "AS": tableName = ""; var filter = Builders <MongoASModel> .Filter.Eq(x => x.sensorId, sensorId); MongoASModel asquery = new MongoASModel(); asquery = new DBManger().DataBase.GetCollection <MongoASModel>("AS_SENSOR").Find(filter).Limit(1).Sort(Builders <MongoASModel> .Sort.Descending("latest_checking_time")).FirstOrDefault(); query = new CurrentDataModel { sensorId = asquery.sensorId, current = asquery.C_AVG_PM25, latest_checking_time = asquery.latest_checking_time }; break; default: tableName = ""; break; } Debug.WriteLine("^^^^^" + tableName); //db collection if (!string.IsNullOrEmpty(tableName) && tableName != "AS") { var filter = Builders <CurrentDataModel> .Filter.Eq(x => x.sensorId, sensorId); query = database.GetCollection <CurrentDataModel>(tableName).Find(filter).Limit(1).Sort(Builders <CurrentDataModel> .Sort.Descending("latest_checking_time")).FirstOrDefault(); } //IQ ueryable<CurrentDataModel> query; //query = from c in collection.AsQueryable<CurrentDataModel>() orderby c.latest_checking_time descending where c.sensorId.Contains(sensorId) select c; return(query); }
public List <String> getRoomList() { DBManger dbManager = new DBManger(); List <String> roomlist = new List <string>(); var collection = dbManager.DataBase.GetCollection <RoomsListModel>("ROOM"); var documents = collection.Find(new BsonDocument()).ToList(); foreach (var element in documents) { roomlist.Add(element.roomId); //Debug.WriteLine("Room list" + element.roomId); } return(roomlist); }
public double getAvgTemp(String roomId) { DBManger dbManager = new DBManger(); double avgTemp = 0; int sensorsCount = 0; List <String> count = new List <String>(); try { var SensorsListcollection = dbManager.DataBase.GetCollection <MongoSensorsListModel>("SENSOR_LIST"); var filter = Builders <MongoSensorsListModel> .Filter.Eq("roomId", roomId); var documents = SensorsListcollection.Find(filter).ToList(); foreach (MongoSensorsListModel document in documents) { // Debug.WriteLine(document.sensorId); if (document.sensorId.Contains("TS")) { count.Add(document.sensorId); } } foreach (String sensorId in count) { // Debug.WriteLine("Matched sensors:" + sensorId); var Tcollection = dbManager.DataBase.GetCollection <MongoTmpSensor_Model>("TMP_SENSOR"); var sort = Builders <MongoTmpSensor_Model> .Sort.Descending("latest_checking_time"); var Tfilter = Builders <MongoTmpSensor_Model> .Filter.Eq("sensorId", sensorId); var Tdocuments = Tcollection.Find(Tfilter).Sort(sort).FirstOrDefault(); if (Tdocuments != null) { Debug.WriteLine(Tdocuments.sensorId + " current " + Tdocuments.current + " record time:" + Tdocuments.latest_checking_time); avgTemp += Tdocuments.current; sensorsCount++; } } Debug.WriteLine("avg current " + avgTemp + "/" + sensorsCount + "=" + avgTemp / sensorsCount); } catch (Exception e) { Debug.WriteLine(e); } return(Math.Round(avgTemp / sensorsCount, 2)); } //get data from sensors
private void flist2_PreviewDrop(object sender, DragEventArgs e) { if (selectedItem == null) { MessageBox.Show("No selected Tag!"); } else { MessageBox.Show("" + selectedItem.TagCategory.TagId); DBManger dbManager = new DBManger(); string query = "INSERT into * FROM TAGTABLE WHERE TAGID LIKE '%" + selectedItem.TagCategory.TagId + "%'"; dbManager.Query = query; dbManager.execute(ref _TagedItemCollection); } }
public void getallcurrent() { var start = today.AddHours(-3); var end = today; var filter1 = Builders <CurrentDataModel> .Filter.Gte(x => x.latest_checking_time, start); var filter = Builders <CurrentDataModel> .Filter.Lte(x => x.latest_checking_time, end); var cursor = new DBManger().DataBase.GetCollection <CurrentDataModel>("TMP_SENSOR").Find(filter1 & filter).ToList(); /* foreach (var get in query) * { * x++; * Debug.WriteLine(x + " => " + get.latest_checking_time); * }*/ }
public ActionResult Get(string id) { List <StatusModel> Statuslist = new List <StatusModel>(); var filter = Builders <MongoDevicesListModel> .Filter.Eq("roomId", id); var getlist = new DBManger().DataBase.GetCollection <MongoDevicesListModel>("DEVICES_LIST").Find(filter).ToList(); foreach (var get in getlist) { var data = new StatusModel { deviceId = get.devicesId, status = get.status.ToString(), set_value = get.set_value }; Statuslist.Add(data); } return(Ok(Statuslist)); }
public List <CurrentDataModel> GetChartDataList(string id) { string tableName = ""; List <CurrentDataModel> List = new List <CurrentDataModel>(); IMongoCollection <CurrentDataModel> collection; //db collection tableName = id.Substring(0, 2) switch { "EF" => "EXH_FAN", "AC" => "AC", "LT" => "LIGHT", "HD" => "HUM", _ => "" }; collection = new DBManger().DataBase.GetCollection <CurrentDataModel>(tableName); IQueryable <CurrentDataModel> query; query = from c in collection.AsQueryable <CurrentDataModel>() orderby c.latest_checking_time descending where c.devicesId.Contains(id) select c; return(query.ToList()); }
public ActionResult DropDevicesData(MongoDevicesListModel postData) //post { var DeleteResult = new DBManger().DataBase.GetCollection <MongoDevicesListModel>("DEVICES_LIST").DeleteOne(de => de.devicesId == postData.devicesId & de.roomId == postData.roomId); if (DeleteResult.IsAcknowledged) { if (DeleteResult.DeletedCount != 1) { return(ReturnUrl()); throw new Exception(string.Format("Count [value:{0}] after delete is invalid", DeleteResult.DeletedCount)); } } else { return(ReturnUrl()); throw new Exception(string.Format("Delete for [_id:{0}] was not acknowledged", postData.devicesId.ToString())); } return(ReturnUrl()); }
public void SetPlan() { List <MongoDefaulttUsagePlanModel> list = new List <MongoDefaulttUsagePlanModel>(); _plan = new List <ScheduleSectionsViewModel>(); int key = 0; try { list = new DBManger().DataBase.GetCollection <MongoDefaulttUsagePlanModel>("DEFAULT_USAGE_PLAN").Find(new BsonDocument()).ToList(); foreach (var get in list) { key++; var data = new ScheduleSectionsViewModel() { key = key, label = get.name }; _plan.Add(data); } } catch (Exception e) { } //got df plan //start PERSONAL_USAGE_PLAN var PERSONAL = new DBManger().DataBase.GetCollection <MongoPersonalUsagePlanModel>("PERSONAL_USAGE_PLAN").Find(new BsonDocument()).ToList(); foreach (var get in PERSONAL) { key++; var data = new ScheduleSectionsViewModel() { key = key, label = get.name }; _plan.Add(data); } }
public ActionResult UpdateDevicesData(MongoDevicesListModel postData) { //Debug.WriteLine("postData :==>>" + postData.ToJson().ToString()); var filter = Builders <MongoDevicesListModel> .Filter.Eq(d => d.devicesId, postData.devicesId); var type = postData.GetType(); var props = type.GetProperties(); foreach (var property in props) { if (!property.Name.Equals("_id")) { if (property.GetValue(postData) != null) { UpdateDefinition <MongoDevicesListModel> up; if (property.Name == "latest_checking_time") { up = Builders <MongoDevicesListModel> .Update.Set(property.Name.ToString(), DateTime.UtcNow); } else { up = Builders <MongoDevicesListModel> .Update.Set(property.Name.ToString(), property.GetValue(postData).ToString()); } //Debug.WriteLine("error: line 303 =>> " + property.Name + ":" + property.GetValue(postData)); var UpdateResult = new DBManger().DataBase.GetCollection <MongoDevicesListModel>("DEVICES_LIST").FindOneAndUpdateAsync(u => u.devicesId == postData.devicesId, up); if (UpdateResult == null) { return(ReturnUrl()); //Debug.WriteLine("error: line 306 =>> "+ property.Name); //throw new Exception(string.Format("Count [value:{0}] after Modifi is invalid")); } //this.isUpdated = Updated.IsAcknowledged; } } } return(ReturnUrl()); }
public ActionResult turnOnOffDevice(IFormCollection postFrom) { var deviceID = postFrom["deviceID"]; var statusStr = postFrom["deviceCurrentStatus"]; //"Turning On" or "Turning Off" Boolean status = statusStr.Equals("Turning On") ? false : true; // if is turning on then turn off the device try { DateTime nowTime = DateTime.UtcNow.AddHours(8); var update = Builders <MongoDevicesListModel> .Update .Set(x => x.status, status) .Set(x => x.turn_on_time, nowTime); var UpdateResult = new DBManger().DataBase.GetCollection <MongoDevicesListModel>("DEVICES_LIST") .FindOneAndUpdateAsync(u => u.devicesId == deviceID, update); return(ReturnUrl()); } catch (Exception ex) { //Debug.WriteLine("DevicesController turnOnOffDevice error: "+ex); return(ReturnUrl()); } }
public UserLogic() { dbManager = new DBManger(); }
public DevicesPowerUseInputUtil() { dbManager = new DBManger(); currentDate = DateTime.Now.ToString("yyyy-MM-dd"); }
public string DeviceCurrectLineChart(string type, string roomId) { DevicesController DevicesControl = new DevicesController(); string tableName = ""; List <DevicesListModel> DevicesDataList = DevicesControl.GetSearchDevices().Where(d => d.roomId.Contains(roomId)).ToList(); switch (type) { case "AC": DevicesDataList = DevicesDataList.Where(x => x.devicesId.Contains("AC")).ToList(); ViewBag.unit = " C"; ViewBag.unitName = "Air Conditioner Temperature"; tableName = "AC"; break; case "LT": DevicesDataList = DevicesDataList.Where(x => x.devicesId.Contains("LT")).ToList(); ViewBag.unit = " lm"; ViewBag.unitName = "Light Luminosity"; tableName = "LIGHT"; break; case "HD": DevicesDataList = DevicesDataList.Where(x => x.devicesId.Contains("HD")).ToList(); ViewBag.unit = " %"; ViewBag.unitName = "Humidifier Humidity"; tableName = "HUM"; break; case "EF": DevicesDataList = DevicesDataList.Where(x => x.devicesId.Contains("EF")).ToList(); ViewBag.unit = " rpm"; ViewBag.unitName = "FAN Revolution(s)"; tableName = "EXH_FAN"; break; case "AS": DevicesDataList = DevicesDataList.Where(x => x.devicesId.Contains("AS")).ToList(); ViewBag.unit = " "; ViewBag.unitName = "AS"; tableName = "AS_SENSOR"; break; default: break; } List <CurrentDataModel> CurrentList = new List <CurrentDataModel>(); DateTime today = DateTime.Now; //end set time List <string> labelss = new List <string>(); List <object> datas = new List <object>(); var start = today.AddHours(time * -1); //var start = today.AddHours(-3); var end = today; //end set time 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); if (DevicesDataList.Count() > 0) { foreach (var get in DevicesDataList) { var filterId = Builders <CurrentDataModel> .Filter.Eq(x => x.devicesId, get.devicesId); labelss.Add(get.devicesId); 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(DevicesDataList.Count, labelss, datas)); }
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)); }