//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); }
/// <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); }
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); }