public ActionResult Edit(SensorEditViewModel sensorEditViewModel) { if (ModelState.IsValid) { var editModel = this.Data.Sensors.All() .Where(s => s.Id == sensorEditViewModel.Id) .Select(s => new { Sensor = s, ReceiverIp = s.Room.Floor.House.ReceiverIp, }).SingleOrDefault(); if (editModel == null) { return HttpNotFound(); } editModel.Sensor.AlarmCheck = sensorEditViewModel.AlarmCheck; editModel.Sensor.MaxTempAlert = sensorEditViewModel.MaxTempAlert; editModel.Sensor.MinTempAlert = sensorEditViewModel.MinTempAlert; editModel.Sensor.AttachedPin = sensorEditViewModel.AttachedPin; SensorRCModel sensorRCModel = new SensorRCModel { ReceiverIp = editModel.ReceiverIp, Id = editModel.Sensor.ArduinoArraySensorsId, AttachedPin = sensorEditViewModel.AttachedPin, AlarmCheck = sensorEditViewModel.AlarmCheck, MinTempAlert = sensorEditViewModel.MinTempAlert, MaxTempAlert = sensorEditViewModel.MaxTempAlert, }; using (TransactionScope transaction = new TransactionScope()) { this.Data.Sensors.Update(editModel.Sensor); this.Data.SaveChanges(); this.RemoteControl.SendSensorSettings(sensorRCModel); transaction.Complete(); } return RedirectToAction("RoomDetails", "Rooms", new { RoomId = sensorEditViewModel.RoomId }); } int houseId = this.Data.Rooms.All() .Where(r => r.Id == sensorEditViewModel.RoomId) .Select(s => s.Floor.HouseId).SingleOrDefault(); var allowedPin = HelperClass.GetAllowedPins(this.Data, houseId, null); sensorEditViewModel.AllowedPins = new SelectList(allowedPin); return View(sensorEditViewModel); }
public ActionResult Edit(int? id) { if (id == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } var sensor = this.Data.Sensors.All() .Where(s => s.Id == id.Value) .Select(s => new { Id = s.Id, AlarmCheck = s.AlarmCheck, AttachedPin = s.AttachedPin, MaxTempAlert = s.MaxTempAlert, MinTempAlert = s.MinTempAlert, RoomId = s.RoomId, HouseId = s.Room.Floor.HouseId }).SingleOrDefault(); if (sensor == null) { return HttpNotFound(); } var allowedPin = HelperClass.GetAllowedPins(this.Data, sensor.HouseId, sensor.AttachedPin); SensorEditViewModel sensorEditViewModel = new SensorEditViewModel { AlarmCheck = sensor.AlarmCheck, AttachedPin = sensor.AttachedPin, Id = sensor.Id, MaxTempAlert = sensor.MaxTempAlert, MinTempAlert = sensor.MinTempAlert, RoomId = sensor.RoomId, AllowedPins = new SelectList(allowedPin, sensor.AttachedPin) }; return View(sensorEditViewModel); }