private void SearchRankingAlarmLog(string path, AlarmLogParameter param) { var files = GetLogFiles(path, param.BeginDate, param.EndDate); var result = new List<object>(); int sumCount = 0; foreach (var file in files) { try { if (File.Exists(file) == false) continue; var xml = XElement.Load(file); var fileSearchResult = from item in xml.Elements() where IsDate(item.Element("Date").Value) let date = DateTime.Parse(item.Element("Date").Value) where IsInDateTime(date, param.BeginDate, param.EndDate) let log = item.Element("AlarmLogInfo").ToObject<Manager.AlarmLogInfo>() where log.RankingData == true where log.AutoRunning == param.AutoRunning where ConstainInFilter(param.filters, log.Alarm.Alarm.AlarmNo) where IsMatchAlarmStatus(log.Alarm.Alarm.Status, param) where IsMatchAlarmType(log.Alarm.Alarm.Type, param) select new { Date = date, AlarmNo = log.Alarm.Alarm.AlarmNo, AlarmName = log.Alarm.Alarm.AlarmName, Status = log.Alarm.Alarm.Status, Type = log.Alarm.Alarm.Type } into alarm group alarm by alarm.AlarmNo into alarmGroup let firstAlarm = alarmGroup.ElementAt(0) let alarmCount = alarmGroup.Count() select new RankingAlarmLog { Date = firstAlarm.Date, AlarmNo = firstAlarm.AlarmNo, AlarmName = firstAlarm.AlarmName, Status = GetStringErrorStatus(firstAlarm.Status), Type = GetStringErrorType(firstAlarm.Type), Count = alarmCount }; result.AddRange(fileSearchResult.OrderByDescending(x => x.Count)); foreach (var item in fileSearchResult) { sumCount += item.Count; } } catch (Exception e) { Trace.WriteLine(e.ToString()); continue; } } Result = new { AlarmCount = sumCount, LogList = result }; }
private void SearchAlarmLog(string path, AlarmLogParameter param) { var files = GetLogFiles(path, param.BeginDate, param.EndDate); var result = new List<object>(); foreach (var file in files) { try { if (File.Exists(file) == false) continue; var xml = XElement.Load(file); var fileSearchResult = from item in xml.Elements() where IsDate(item.Element("Date").Value) let date = DateTime.Parse(item.Element("Date").Value) where IsInDateTime(date, param.BeginDate, param.EndDate) let log = item.Element("AlarmLogInfo").ToObject<Manager.AlarmLogInfo>() where log.RankingData == true where log.AutoRunning == param.AutoRunning where ConstainInFilter(param.filters, log.Alarm.Alarm.AlarmNo) where IsMatchAlarmStatus(log.Alarm.Alarm.Status, param) where IsMatchAlarmType(log.Alarm.Alarm.Type, param) orderby date select new GeneralAlarmLog { Date = date, AlarmNo = log.Alarm.Alarm.AlarmNo, AlarmName = log.Alarm.Alarm.AlarmName, Status = GetStringErrorStatus(log.Alarm.Alarm.Status), Type = GetStringErrorType(log.Alarm.Alarm.Type) }; result.AddRange(fileSearchResult); } catch (Exception e) { Trace.WriteLine(e.ToString()); continue; } } Result = new { AlarmCount = result.Count(), LogList = result }; }
private bool IsMatchAlarmType(int alarmType, AlarmLogParameter param) { if (alarmType == ConfigClasses.GlobalConst.ALARM_TYPE_MACHINE && param.Machine == true) return true; else if (alarmType == ConfigClasses.GlobalConst.ALARM_TYPE_MATERIAL && param.Material == true) return true; else if (alarmType == ConfigClasses.GlobalConst.ALARM_TYPE_HUMAN && param.Human == true) return true; else if (alarmType == ConfigClasses.GlobalConst.ALARM_TYPE_METHOD && param.Method == true) return true; else return false; }
private bool ParsingAlarmSearchParameters(object param, out AlarmLogParameter result) { result = new AlarmLogParameter(); if (param == null) { string msg = Utility.UtilityClass.GetStringResource(this, "ThereIsNoData", "There is no data."); Manager.MessageWindowManager.Instance.Show(EquipmentInstance, "UserSelectet", msg); } if ((param is object[]) == false) { Manager.LogManager.Instance.WriteSystemLog("SearchCommandHandler's param is not object[]."); return false; } var parameters = param as object[]; try { result.BeginDate = (parameters[0] as LogSearchingDateTime).ToDateTime(); result.EndDate = (parameters[1] as LogSearchingDateTime).ToDateTime(); result.Error = (bool)parameters[2]; result.Warning = (bool)parameters[3]; result.Ranking = (bool)parameters[4]; result.AutoRunning = (bool)parameters[5]; result.Machine = (bool)parameters[6]; result.Material = (bool)parameters[7]; result.Human = (bool)parameters[8]; result.Method = (bool)parameters[9]; string filterString = (string)parameters[10]; bool oneDay = (bool)parameters[11]; if (oneDay) { DateTime beginDate = result.BeginDate; result.BeginDate = new DateTime(beginDate.Year, beginDate.Month, beginDate.Day, 22, 00, 00); DateTime endDate = beginDate.AddDays(1); result.EndDate = endDate; } if (string.IsNullOrEmpty(filterString) == false) { List<int> filters = new List<int>(); foreach (var item in filterString.Split(new char[] { ',' })) { int alarmNo; if (string.IsNullOrEmpty(item) == false && int.TryParse(item, out alarmNo)) { filters.Add(alarmNo); } } result.filters = filters.ToArray(); } return true; } catch (Exception e) { Manager.LogManager.Instance.WriteSystemLog(e.ToString()); return false; } }
private bool IsMatchAlarmStatus(int alarmStatus, AlarmLogParameter param) { if (alarmStatus == ConfigClasses.GlobalConst.ALARM) { if (param.Error == true) return true; else return false; } else if (alarmStatus == ConfigClasses.GlobalConst.WARNING) { if (param.Warning == true) return true; else return false; } else return false; }