Beispiel #1
0
        //public object GetIPPieData(int? switchId, string startIP, string endIP, string rangeName)
        //{
        //    object result = new
        //    {
        //        OccupySumData = GetOccupyData(switchId, startIP, endIP, rangeName, null),
        //        OnlineSumData = GetOnlineData(switchId, startIP, endIP, rangeName, null),
        //    };
        //    return result;
        //}

        /// <summary>
        /// 拼接告警折线图的数据
        /// </summary>
        /// <param name="switchId"></param>
        /// <param name="startIP"></param>
        /// <param name="endIP"></param>
        /// <param name="rangeName"></param>
        /// <returns></returns>
        //public object GetAlartLineData(int? switchId, string startIP, string endIP, string rangeName)
        //{
        //    int[] alarmsIds = GetAlarmIdInConfition(switchId, startIP, endIP, rangeName).ToArray();
        //    object result = new
        //    {
        //        AlartMonthData = GetAlarmCountData(30, 5, alarmsIds),
        //        AlartTwoMonthData = GetAlarmCountData(60, 10, alarmsIds),
        //        AlartSixMonthData = GetAlarmCountData(180, 30, alarmsIds)
        //    };
        //    return result;
        //}

        /// <summary>
        /// 拿告警数据条件里所需要的 AlarmIds
        /// </summary>
        /// <param name="switchId">交换机Id</param>
        /// <param name="startIP">起始IP</param>
        /// <param name="endIP">终止IP</param>
        /// <param name="rangeName">网段名称</param>
        /// <returns></returns>
        //private List<int> GetAlarmIdInConfition(int? switchId, string startIP, string endIP, string rangeName)
        //{
        //    List<int> alarmIds = new List<int>();
        //    List<AlarmModel> alarmList = new AlarmBusiness().GetList(switchId, rangeName, startIP, endIP).ToList();
        //    foreach (var item in alarmList)
        //    {
        //        alarmIds.Add(item.Id);
        //    }
        //    return alarmIds;
        //}


        /// <summary>
        /// 拿到告警图表要求的数据机构(折线图)
        /// </summary>
        /// <param name="Days">总天数</param>
        /// <param name="partDay">时间节点天数</param>
        /// <returns></returns>
        public ChartDataModel GetAlarmCountData(int Days, int partDay, int[] alarmIds)
        {
            ChartDataModel chartAlarmMonth = new ChartDataModel()
            {
                Titles = new List <string>(), Datas = new List <int>()
            };

            if (alarmIds.Length > 0)
            {
                Dictionary <DateTime, int> log = new AlarmBusiness().GetLogDataForStatistics(DateTime.Now.AddDays((-1) * Days), DateTime.Now, alarmIds, partDay, Days);
                foreach (var item in log)
                {
                    chartAlarmMonth.Titles.Add(item.Key.ToString("yyyy-MM-dd"));
                    chartAlarmMonth.Datas.Add(item.Value);
                }
            }
            else
            {
                for (int i = Days / partDay; i > 0; i--)
                {
                    chartAlarmMonth.Titles.Add(DateTime.Now.AddDays((-1) * i * partDay + partDay).ToString("yyyy-MM-dd"));
                    chartAlarmMonth.Datas.Add(0);
                }
            }
            return(chartAlarmMonth);
        }
Beispiel #2
0
        /// <summary>
        /// 只有天数和分隔天数的时候,返回总告警
        /// </summary>
        /// <param name="Days"></param>
        /// <param name="partDay"></param>
        /// <returns></returns>
        public ChartDataModel GetAlarmCountData(int Days, int partDay, int?orgainId)
        {
            ChartDataModel chartAlarmMonth = new ChartDataModel()
            {
                Titles = new List <string>(), Datas = new List <int>()
            };
            Dictionary <DateTime, int> log = new Dictionary <DateTime, int>();

            if (orgainId == null)
            {
                log = new AlarmBusiness().GetLogDataForStatistics(DateTime.Now.AddDays((-1) * Days), DateTime.Now, null, partDay, Days);
            }
            else
            {
                int[] alarmIds = new AlarmBusiness().GetList(orgainId.Value).Select(n => n.Id).ToArray();
                log = new AlarmBusiness().GetLogDataForStatistics(DateTime.Now.AddDays((-1) * Days), DateTime.Now, alarmIds, partDay, Days);
            }

            foreach (var item in log)
            {
                chartAlarmMonth.Titles.Add(item.Key.ToString("yyyy-MM-dd"));
                chartAlarmMonth.Datas.Add(item.Value);
            }

            return(chartAlarmMonth);
        }
Beispiel #3
0
        public ChartDataModel GetAlarmData(int?organId)
        {
            var            list   = new AlarmBusiness().GetView();
            ChartDataModel result = new ChartDataModel(); //{ Titles = new List<string>(), Datas = new List<int>() };

            if (organId == null)                          //SysAdmin
            {
                var alarmcount  = list.Count();
                var normalcount = new LineBusiness().GetNormalLine(list.Select(n => n.LineId).ToArray()).Count();
                result.Titles = new List <string> {
                    "报警线路", "正常线路"
                };
                result.Datas = new List <int> {
                    alarmcount, normalcount
                };
            }
            else
            {
                //IEnumerable<AlarmModel> resultlist = list?.Where(n => n.OrganId == organId);
            }
            return(result);
        }