コード例 #1
0
        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
                };
        }
コード例 #2
0
        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
                };
        }
コード例 #3
0
 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;
 }
コード例 #4
0
        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;
            }
        }
コード例 #5
0
 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;
 }