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 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}"); }