public HttpResponseMessage ModifyGroupChenJiang([FromUri] int groupId, [FromBody] SensorGroupChenJiang model) { using (var db = new SecureCloud_Entities()) { try { var group = (from s in db.T_DIM_GROUP where s.GROUP_ID == groupId select s ).FirstOrDefault(); if (group == null) { return(Request.CreateResponse(HttpStatusCode.BadRequest, StringHelper.GetMessageString("传感器组不存在"))); } var sensorIds = model.SensorList.Select(s => s.SensorId); var sensors = db.T_DIM_SENSOR.Where(s => sensorIds.Contains(s.SENSOR_ID)).ToList(); StringBuilder sb = new StringBuilder(); group.GROUP_NAME = model.GroupName; // 修改前的传感器列表 var sensorExists = from s in db.T_DIM_SENSOR_GROUP_CHENJIANG where s.GROUP_ID == groupId select s; // 修改前 组信息 var gsexist = (from s in db.T_DIM_SENSOR from sg in sensorExists from d in db.T_DIM_REMOTE_DTU where s.SENSOR_ID == sg.SENSOR_ID && d.ID == s.DTU_ID select new SensorGroup { GroupId = groupId, DtuId = s.DTU_ID.Value, DtuCode = d.REMOTE_DTU_NUMBER, DacInterval = d.REMOTE_DTU_GRANULARITY.Value }).Distinct(); // 删除旧的配置 foreach (var sensorExist in sensorExists) { db.T_DIM_SENSOR_GROUP_CHENJIANG.Remove(sensorExist); } // 修改后的传感器列表 var sensorModels = model.SensorList; // 插入新的配置 foreach (var sensor in sensorModels) { sb.AppendFormat( "位置-{0}_长度-{2}_是否基准点-{1};", sensors.Where(s => s.SENSOR_ID == sensor.SensorId) .Select(s => s.SENSOR_LOCATION_DESCRIPTION) .FirstOrDefault(), sensor.IsDatum, sensor.Len); var sensorGroupCeXie = new T_DIM_SENSOR_GROUP_CHENJIANG(); sensorGroupCeXie.GROUP_ID = groupId; sensorGroupCeXie.SENSOR_ID = sensor.SensorId; sensorGroupCeXie.isJIZHUNDIAN = sensor.IsDatum; sensorGroupCeXie.LENGTH = sensor.Len; var entry = db.Entry(sensorGroupCeXie); entry.State = System.Data.EntityState.Added; } #region 日志 this.Request.Properties["ActionParameter"] = JsonConvert.SerializeObject(model); this.Request.Properties["ActionParameterShow"] = string.Format("组:{0},传感器:{1}", model.GroupName, sb); #endregion db.SaveChanges(); // 修改后的组信息 var gs = (from s in db.T_DIM_SENSOR from sg in sensorIds from d in db.T_DIM_REMOTE_DTU where s.SENSOR_ID == sg && d.ID == s.DTU_ID select new SensorGroup { GroupId = groupId, DtuId = s.DTU_ID.Value, DtuCode = d.REMOTE_DTU_NUMBER, DacInterval = d.REMOTE_DTU_GRANULARITY.Value }).Distinct(); try { SendMsg2ET(gs.ToList(), gsexist.ToList()); } catch (Exception ex) { log.Error(ex); } return(Request.CreateResponse(HttpStatusCode.Accepted, StringHelper.GetMessageString("测斜传感器组修改成功"))); } catch (NullReferenceException e) { return(Request.CreateResponse( HttpStatusCode.BadRequest, StringHelper.GetMessageString("测斜传感器组修改失败:参数无效"))); } catch (Exception e) { return(Request.CreateResponse(HttpStatusCode.BadRequest, StringHelper.GetMessageString("测斜传感器组修改失败"))); } } }
public HttpResponseMessage AddGroupsChenJiang([FromBody] SensorGroupChenJiang model) { using (var db = new SecureCloud_Entities()) { try { var group = new T_DIM_GROUP(); group.GROUP_NAME = model.GroupName; group.GROUP_TYPE_ID = 2; var entry = db.Entry(group); entry.State = System.Data.EntityState.Added; var sensorIds = model.SensorList.Select(s => s.SensorId); var sensors = db.T_DIM_SENSOR.Where(s => sensorIds.Contains(s.SENSOR_ID)).ToList(); StringBuilder sb = new StringBuilder(); foreach (var p in model.SensorList) { sb.AppendFormat( "位置-{0}_长度-{2}_是否基准点-{1};", sensors.Where(s => s.SENSOR_ID == p.SensorId) .Select(s => s.SENSOR_LOCATION_DESCRIPTION) .FirstOrDefault(), p.IsDatum, p.Len); var sensorGroupChenJiang = new T_DIM_SENSOR_GROUP_CHENJIANG(); sensorGroupChenJiang.GROUP_ID = group.GROUP_ID; sensorGroupChenJiang.SENSOR_ID = p.SensorId; sensorGroupChenJiang.isJIZHUNDIAN = p.IsDatum; sensorGroupChenJiang.LENGTH = p.Len; var test = db.Entry(sensorGroupChenJiang); test.State = System.Data.EntityState.Added; } #region 日志 this.Request.Properties["ActionParameter"] = JsonConvert.SerializeObject(model); this.Request.Properties["ActionParameterShow"] = string.Format("组:{0},传感器:{1}", model.GroupName, sb); #endregion db.SaveChanges(); int gid = group.GROUP_ID; // 增加的组信息 var gs = (from s in db.T_DIM_SENSOR from sg in sensorIds from d in db.T_DIM_REMOTE_DTU where s.SENSOR_ID == sg && d.ID == s.DTU_ID select new SensorGroup { GroupId = gid, DtuId = s.DTU_ID.Value, DtuCode = d.REMOTE_DTU_NUMBER, DacInterval = d.REMOTE_DTU_GRANULARITY.Value }) .Distinct(); try { SendMsg2ET(gs.ToList()); } catch (Exception ex) { log.Error(ex); } return(Request.CreateResponse(HttpStatusCode.Accepted, StringHelper.GetMessageString("测斜传感器组新增成功"))); } catch (NullReferenceException e) { return(Request.CreateResponse( HttpStatusCode.BadRequest, StringHelper.GetMessageString("测斜传感器组新增失败:参数无效"))); } catch (Exception e) { return(Request.CreateResponse(HttpStatusCode.BadRequest, StringHelper.GetMessageString("测斜传感器组新增失败"))); } } }