Пример #1
0
        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("测斜传感器组修改失败")));
                }
            }
        }
Пример #2
0
        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("测斜传感器组新增失败")));
                }
            }
        }