public ActionResult AddTemperatureAlarmRule(TemperatureAlarmRuleAddModel model)
 {
     if (ModelState.IsValid)
     {
         model.CreateUserID = base.UserIDForLog;
         var result = TemperatureAlarmRuleBLL.AddTemperatureAlarmRule(model);
         base.DoLog(OperationTypeEnum.Add, result, "Name:" + model.Name);
         return(Json(result));
     }
     else
     {
         return(PartialView("_AddTemperatureAlarmRule", model));
     }
 }
        public ActionResult AddTemperatureAlarmRule()
        {
            var model = new TemperatureAlarmRuleAddModel();

            model.StartTime = "00:00:00";
            model.EndTime   = "23:59:59";
            //得到温度传感器
            var list = TemperatureAlarmRuleBLL.GetTemperatureSensors();

            model.TemperatureAlarmRuleDetails = new List <TemperatureAlarmRuleDetailModel>(list.Count);
            list.ForEach(item =>
            {
                model.TemperatureAlarmRuleDetails.Add(new TemperatureAlarmRuleDetailModel()
                {
                    SensorCode = item.SensorCode,
                    SensorName = item.SensorName
                });
            });
            return(PartialView("_AddTemperatureAlarmRule", model));
        }
예제 #3
0
        //        public static OperationResult AddTemperatureAlarmRule(TemperatureAlarmRuleAddModel model)
        //        {
        //            //规则基础数据1+时段数据1+明细数据n
        //            int count = 2 + model.TemperatureAlarmRuleDetails.Count;
        //            string[] sqls = new string[count];
        //            SqlParameter[][] paras = new SqlParameter[count][];

        //            #region 新增温度报警规则
        //            sqls[0] = @"INSERT INTO dbo.TemperatureAlarmRules
        //        ( Name ,
        //          AffiliatedStrucID ,
        //          CreateUserID,
        //          Description
        //        )
        //VALUES  ( @Name , -- Name - nvarchar(50)
        //          @AffiliatedStrucID , -- AffiliatedStrucID - int
        //          @CreateUserID ,-- CreateUserID - int
        //          @Description
        //        );SELECT SCOPE_IDENTITY();";


        //            paras[0] = new SqlParameter[4];
        //            paras[0][0] = new SqlParameter()
        //            {
        //                ParameterName = "@Name",
        //                SqlDbType = SqlDbType.NVarChar,
        //                Value = model.Name
        //            };
        //            paras[0][1] = new SqlParameter()
        //            {
        //                ParameterName = "@AffiliatedStrucID",
        //                SqlDbType = SqlDbType.Int,
        //                Value = model.AffiliatedStrucID
        //            };
        //            paras[0][2] = new SqlParameter()
        //            {
        //                ParameterName = "@CreateUserID",
        //                SqlDbType = SqlDbType.Int,
        //                Value = model.CreateUserID
        //            };

        //            if (string.IsNullOrWhiteSpace(model.Description))
        //            {
        //                paras[0][3].Value = DBNull.Value;
        //            }
        //            else
        //            {
        //                paras[0][3].Value = model.Description;
        //            }
        //            #endregion

        //            #region 新增报警规则时段数据
        //            sqls[1] = @"INSERT INTO dbo.TemperatureAlarmRuleTimePeriods
        //        ( TemperatureAlarmRuleID ,
        //          StartTime ,
        //          EndTime
        //        )
        //VALUES  ( @TemperatureAlarmRuleID , -- TemperatureAlarmRuleID - int
        //          @StartTime , -- StartTime - time
        //          @EndTime  -- EndTime - time
        //        ) ";
        //            paras[1] = new SqlParameter[3];
        //            paras[0][0] = new SqlParameter()
        //            {
        //                ParameterName = "@TemperatureAlarmRuleID",
        //                SqlDbType = SqlDbType.Int,
        //            };
        //            paras[0][1] = new SqlParameter()
        //            {
        //                ParameterName = "@StartTime",
        //                SqlDbType = SqlDbType.Time,
        //                Value = model.StartTime
        //            };
        //            paras[0][2] = new SqlParameter()
        //            {
        //                ParameterName = "@EndTime",
        //                SqlDbType = SqlDbType.Time,
        //                Value = model.EndTime
        //            };


        //            #endregion

        //            #region 新增报警规则的明细
        //            for (int i = 0; i < model.TemperatureAlarmRuleDetails.Count; i++)
        //            {
        //                var item = model.TemperatureAlarmRuleDetails[i];
        //                int index = i + 2;//开始是第三条语句
        //                sqls[index] = @"INSERT INTO dbo.TemperatureAlarmRuleDetails
        //        ( TemperatureAlarmRuleID ,
        //          SensorCode ,
        //          InstallationPosition ,
        //          LowestTemperature ,
        //          HighestTemperature
        //        )
        //VALUES  ( @TemperatureAlarmRuleID , -- TemperatureAlarmRuleID - int
        //          @SensorCode , -- SensorCode - int
        //          @InstallationPosition, -- InstallationPosition - nvarchar(50)
        //          @LowestTemperature , -- LowestTemperature - float
        //          @HighestTemperature  -- HighestTemperature - float
        //        )";
        //                paras[index] = new SqlParameter[5];
        //                paras[index][0] = new SqlParameter { ParameterName = "@TemperatureAlarmRuleID", SqlDbType = SqlDbType.Int };


        //                paras[index][1] = new SqlParameter()
        //                {
        //                    ParameterName = "@SensorCode",
        //                    SqlDbType = SqlDbType.Int,
        //                    Value = item.SensorCode
        //                };
        //                paras[index][2] = new SqlParameter()
        //                {
        //                    ParameterName = "@InstallationPosition",
        //                    SqlDbType = SqlDbType.NVarChar,
        //                    Value = item.InstallationPosition
        //                };
        //                paras[index][3] = new SqlParameter()
        //                {
        //                    ParameterName = "@LowestTemperature",
        //                    SqlDbType = SqlDbType.Float,
        //                    Value = item.LowestTemperature
        //                };
        //                paras[index][4] = new SqlParameter()
        //                {
        //                    ParameterName = "@HighestTemperature",
        //                    SqlDbType = SqlDbType.Float,
        //                    Value = item.HighestTemperature
        //                };
        //            }
        //            #endregion


        //            bool result = MSSQLHelper.ExecuteIdentityIncludeTransaction(CommandType.Text, sqls, paras) != 0;
        //            return new OperationResult()
        //            {
        //                Success = result,
        //                Message = result ? PromptInformation.OperationSuccess : PromptInformation.DBError
        //            };
        //        }


        public static OperationResult AddTemperatureAlarmRule(TemperatureAlarmRuleAddModel model)
        {
            //获取有效的报警配置详细数据,安装位置为空的表示没设置
            var effectiveDetails = (from item in model.TemperatureAlarmRuleDetails where !string.IsNullOrWhiteSpace(item.InstallationPosition) select item).ToList();
            //规则基础数据1+时段数据1+有效明细数据n
            int count = 2 + effectiveDetails.Count;

            string[]         sqls  = new string[count];
            SqlParameter[][] paras = new SqlParameter[count][];

            #region 新增温度报警规则
            sqls[0] = @"INSERT INTO dbo.TemperatureAlarmRules
        ( Name ,
          AffiliatedStrucID ,
          CreateUserID,
          Description
        )
VALUES  ( @Name , 
          @AffiliatedStrucID ,
          @CreateUserID ,
          @Description
        );SELECT SCOPE_IDENTITY();";


            paras[0]    = new SqlParameter[4];
            paras[0][0] = new SqlParameter()
            {
                ParameterName = "@Name",
                SqlDbType     = SqlDbType.NVarChar,
                Value         = model.Name.Trim()
            };
            paras[0][1] = new SqlParameter()
            {
                ParameterName = "@AffiliatedStrucID",
                SqlDbType     = SqlDbType.Int,
                Value         = model.AffiliatedStrucID
            };
            paras[0][2] = new SqlParameter()
            {
                ParameterName = "@CreateUserID",
                SqlDbType     = SqlDbType.Int,
                Value         = model.CreateUserID
            };

            paras[0][3] = new SqlParameter()
            {
                ParameterName = "@Description",
                SqlDbType     = SqlDbType.NVarChar,
                Value         = string.IsNullOrWhiteSpace(model.Description) ? (object)DBNull.Value : model.Description
            };
            #endregion

            #region 新增报警规则时段数据
            sqls[1]     = @"INSERT INTO dbo.TemperatureAlarmRuleTimePeriods
        ( TemperatureAlarmRuleID ,
          StartTime ,
          EndTime
        )
VALUES  ( @TemperatureAlarmRuleID , -- TemperatureAlarmRuleID - int
          @StartTime , -- StartTime - time
          @EndTime  -- EndTime - time
        ) ";
            paras[1]    = new SqlParameter[3];
            paras[1][0] = new SqlParameter()
            {
                ParameterName = "@TemperatureAlarmRuleID",
                SqlDbType     = SqlDbType.Int,
            };
            paras[1][1] = new SqlParameter()
            {
                ParameterName = "@StartTime",
                SqlDbType     = SqlDbType.Time,
                Value         = model.StartTime
            };
            paras[1][2] = new SqlParameter()
            {
                ParameterName = "@EndTime",
                SqlDbType     = SqlDbType.Time,
                Value         = model.EndTime
            };


            #endregion

            #region 新增报警规则的明细
            for (int i = 0; i < effectiveDetails.Count; i++)
            {
                var item  = effectiveDetails[i];
                int index = i + 2;//开始是第三条语句
                sqls[index]     = @"INSERT INTO dbo.TemperatureAlarmRuleDetails
        ( TemperatureAlarmRuleID ,
          SensorCode ,
          InstallationPosition ,
          LowestTemperature ,
          HighestTemperature,
          Enabled
        )
VALUES  ( @TemperatureAlarmRuleID , -- TemperatureAlarmRuleID - int
          @SensorCode , -- SensorCode - int
          @InstallationPosition, -- InstallationPosition - nvarchar(50)
          @LowestTemperature , -- LowestTemperature - float
          @HighestTemperature,  -- HighestTemperature - float
          @Enabled
        )";
                paras[index]    = new SqlParameter[6];
                paras[index][0] = new SqlParameter {
                    ParameterName = "@TemperatureAlarmRuleID", SqlDbType = SqlDbType.Int
                };


                paras[index][1] = new SqlParameter()
                {
                    ParameterName = "@SensorCode",
                    SqlDbType     = SqlDbType.Int,
                    Value         = item.SensorCode
                };
                paras[index][2] = new SqlParameter()
                {
                    ParameterName = "@InstallationPosition",
                    SqlDbType     = SqlDbType.NVarChar,
                    Value         = item.InstallationPosition.Trim()
                };
                paras[index][3] = new SqlParameter()
                {
                    ParameterName = "@LowestTemperature",
                    SqlDbType     = SqlDbType.Float,
                    Value         = item.LowestTemperature
                };
                paras[index][4] = new SqlParameter()
                {
                    ParameterName = "@HighestTemperature",
                    SqlDbType     = SqlDbType.Float,
                    Value         = item.HighestTemperature
                };
                paras[index][5] = new SqlParameter()
                {
                    ParameterName = "@Enabled",
                    SqlDbType     = SqlDbType.Bit,
                    Value         = item.Enabled
                };
            }
            #endregion


            bool result = MSSQLHelper.ExecuteIdentityIncludeTransaction(CommandType.Text, sqls, paras) != 0;
            return(new OperationResult()
            {
                Success = result,
                Message = result ? PromptInformation.OperationSuccess : PromptInformation.DBError
            });
        }