예제 #1
0
        public object FindFilteredOrderedAlarmsByStructCount([FromUri] int structId, [FromBody] AlarmModel_1 alarm_1)
        {
            try
            {
                int count = 0;
                // 分解告警等级
                string[]   levels    = alarm_1.FilteredLevel.Split(',');
                var        levelList = levels.Select(s => Convert.ToInt32(s)).ToList();
                AlarmModel alarm     = new AlarmModel
                {
                    FilteredDeviceType = alarm_1.FilteredDeviceType,
                    FilteredStatus     = alarm_1.FilteredStatus,
                    FilteredLevel      = levelList,
                    FilteredStartTime  = alarm_1.FilteredStartTime,
                    FilteredEndTime    = alarm_1.FilteredEndTime,
                    OrderedDevice      = alarm_1.OrderedDevice,
                    OrderedLevel       = alarm_1.OrderedLevel,
                    OrderedTime        = alarm_1.OrderedTime
                };
                int roleId = 5; // 5-"普通用户"角色(Client).
                if (Request.Properties.ContainsKey("AuthorizationInfo"))
                {
                    var info = Request.Properties["AuthorizationInfo"] as AuthorizationInfo;
                    roleId = info != null && info.RoleId != null ? (int)info.RoleId : 5;
                }

                using (SecureCloud_Entities entity = new SecureCloud_Entities())
                {
                    var objAlarm  = new Alarm();
                    var condition = objAlarm.GetFilteredOrderedConditionOfAlarm(alarm, roleId);

                    DataTable dt = objAlarm.GetFilteredOrderedAlarmsByStruct(structId, condition);
                    foreach (var dataRow in dt.AsEnumerable())
                    {
                        if (dataRow.Field <int>("StructId") == structId)
                        {
                            count++;
                        }
                    }
                    return(new AlarmCount {
                        Count = count
                    });
                }
            }
            catch (Exception e)
            {
                return(new AlarmCount {
                    Count = 0
                });
                //throw e;
            }
        }
예제 #2
0
        public StructWarn FindFilteredOrderedAlarmsByStruct([FromUri] int structId, [FromBody] AlarmModel_1 alarm_1)
        {
            try
            {
                // 分解告警等级
                string[]   levels    = alarm_1.FilteredLevel.Split(',');
                var        levelList = levels.Select(s => Convert.ToInt32(s)).ToList();
                AlarmModel alarm     = new AlarmModel
                {
                    FilteredDeviceType = alarm_1.FilteredDeviceType,
                    FilteredStatus     = alarm_1.FilteredStatus,
                    FilteredLevel      = levelList,
                    FilteredStartTime  = alarm_1.FilteredStartTime,
                    FilteredEndTime    = alarm_1.FilteredEndTime,
                    OrderedDevice      = alarm_1.OrderedDevice,
                    OrderedLevel       = alarm_1.OrderedLevel,
                    OrderedTime        = alarm_1.OrderedTime
                };
                int roleId = 5; // 5-"普通用户"角色(Client).
                if (Request.Properties.ContainsKey("AuthorizationInfo"))
                {
                    var info = Request.Properties["AuthorizationInfo"] as AuthorizationInfo;
                    roleId = info != null && info.RoleId != null ? (int)info.RoleId : 5;
                }

                using (SecureCloud_Entities entity = new SecureCloud_Entities())
                {
                    var query = from s in entity.T_DIM_STRUCTURE
                                where s.ID == structId && s.IsDelete == 0
                                select s;
                    var list = query.ToList().Select(s => new StructWarn
                    {
                        structId   = s.ID,
                        structName = s.STRUCTURE_NAME_CN,
                        warnings   = new List <Warning>()
                    }).ToList();

                    var objAlarm  = new Alarm();
                    var condition = objAlarm.GetFilteredOrderedConditionOfAlarm(alarm, roleId);

                    DataTable dt = null;
                    int       start = 0, end = 0;
                    if (this.Request.GetQueryString("amp;startRow") != null && this.Request.GetQueryString("amp;endRow") != null)
                    {
                        start = int.Parse(this.Request.GetQueryString("amp;startRow"));
                        end   = int.Parse(this.Request.GetQueryString("amp;endRow"));
                        dt    = objAlarm.GetPagedFilteredOrderedAlarmsByStruct(structId, condition, start, end);
                    }
                    else
                    {
                        dt = objAlarm.GetFilteredOrderedAlarmsByStruct(structId, condition);
                    }

                    for (int i = 0; i < list.Count; i++)
                    {
                        foreach (var dataRow in dt.AsEnumerable())
                        {
                            if (dataRow.Field <int>("StructId") == list[i].structId)
                            {
                                list[i].warnings.Add(new Warning
                                {
                                    WarningId     = dataRow.Field <int>("Id"),
                                    WarningTypeId = dataRow.Field <string>("WarningTypeId"),
                                    Source        = dataRow.Field <string>("Source"),
                                    Level         = dataRow["WarningLevel"] == DBNull.Value ? 4 : dataRow.Field <byte>("WarningLevel"),
                                    Content       = dataRow.Field <string>("Content"),
                                    Reason        = dataRow.Field <string>("Reason"),
                                    Time          = dataRow.Field <DateTime>("Time"),
                                    DealFlag      = dataRow.Field <int>("DealFlag"),
                                    Confirmor     = dataRow["Confirmor"] == DBNull.Value ? string.Empty : dataRow.Field <string>("Confirmor"),
                                    Suggestion    = dataRow["Suggestion"] == DBNull.Value ? string.Empty : dataRow.Field <string>("Suggestion"),
                                    ConfirmTime   = dataRow["ConfirmTime"] == DBNull.Value ? default(DateTime) : dataRow.Field <DateTime>("ConfirmTime")
                                });
                            }
                        }
                    }
                    return(list.FirstOrDefault());
                }
            }
            catch (Exception e)
            {
                return(new StructWarn());
                //throw e;
            }
        }