Ejemplo n.º 1
0
        private bool IsAutoRunning(string autoRunning, IJamLogSearchParameter parameter)
        {
            if (parameter.IsAutoRunning == false) return true;

            bool result;
            if (bool.TryParse(autoRunning, out result))
            {
                if (parameter.IsAutoRunning == result)
                    return true;
                else
                    return false;
            }
            else
                return false;
        }
Ejemplo n.º 2
0
        private bool SelectType(string str, IJamLogSearchParameter parameter)
        {
            int type = 0;
            if (int.TryParse(str, out type) == false)
                return false;

            if (type == 1 && parameter.IsMachine)
                return true;
            else if (type == 2 && parameter.IsMaterial)
                return true;
            else if (type == 3 && parameter.IsHuman)
                return true;
            else if (type == 4 && parameter.IsMethod)
                return true;
            else
                return false;
        }
Ejemplo n.º 3
0
        private bool SelectStatus(string str, IJamLogSearchParameter parameter)
        {
            int status = 0;
            if (int.TryParse(str, out status) == false)
                return false;

            if (status == 2 && parameter.IsErrorData)
                return true;
            else if (status == 1 && parameter.IsWarningData)
                return true;

            return false;
        }
Ejemplo n.º 4
0
 public IJamLogData GetJamLog(IJamLogSearchParameter parameter, string path)
 {
     return LoadAlarmLog(parameter, path);
 }
Ejemplo n.º 5
0
        private IJamLogData LoadAlarmLog(IJamLogSearchParameter parameter, string path)
        {
            LoadAlarmTypes();

            DateTime startDate;
            DateTime endDate;

            try
            {
                startDate = DateTime.Parse(parameter.StartDate);
                endDate = DateTime.Parse(parameter.EndDate);
            }
            catch
            {
                return null;
            }

            TimeSpan startTime;
            TimeSpan endTime;

            if (TimeSpan.TryParse(parameter.StartTime, out startTime) == false)
            {
                return null;
            }

            if (TimeSpan.TryParse(parameter.EndTime, out endTime) == false)
            {
                return null;
            }

            DateTime now = DateTime.Now;

            startDate = new DateTime(startDate.Year, startDate.Month, startDate.Day, startTime.Hours, startTime.Minutes, 00);
            endDate = new DateTime(endDate.Year, endDate.Month, endDate.Day, endTime.Hours, endTime.Minutes, 59);

            List<string> lines = new List<string>();
            for (DateTime date = startDate; date <= endDate; date = date.AddDays(1))
            {
                int year = date.Year;

                string filename = path + year.ToString() + @"\" + date.ToString("MM") + @"\" + date.ToString(@"yyyy-MM-dd") + ".log";

                string[] strs = DBUtility.LoadCSV(filename);
                if (strs != null)
                    lines.AddRange(strs);
            }

            int sumCount = 0;
            Func<int, int> SumCount = new Func<int, int>(
                    delegate(int value)
                    {
                        sumCount = sumCount + value;
                        return value;
                    });

            if (parameter.IsRankingData)
            {
                var query = from row2 in
                                from row in lines
                                let x = row.Split(',')
                                where x.Count() > 6 && IsInDateTime(x[0], startDate, endDate) &&
                                    SelectStatus(x[3], parameter) &&
                                    SelectType(x[4], parameter) &&
                                    IsRankingData(x[5], parameter) &&
                                    IsAutoRunning(x[6], parameter)
                                orderby x[0] descending
                                select new { AlarmCode = x[1], AlarmName = x[2], AlarmStatus = StrToStatus(x[3]), AlarmType = StrToType(x[4]), AutoRunning = x[6], Date = x[0] } into g
                                group g by g.AlarmCode into gr
                                orderby gr.Count() descending
                                select gr
                            let x2 = row2.ToList()
                            select new JamLogItem
                            {
                                Count = SumCount(row2.Count()),
                                Date = x2[0].Date,
                                AlarmCode = x2[0].AlarmCode,
                                AlarmName = x2[0].AlarmName,
                                AlarmStatus = x2[0].AlarmStatus,
                                AlarmType = x2[0].AlarmType,
                                AutoRunning = x2[0].AutoRunning
                            };

                JamLogData result = new JamLogData();
                result.Items = query.ToArray<IJamLogItem>();
                result.TotalCount = sumCount;
                return result;
            }
            else
            {
                var query = from row in lines
                            let x = row.Split(',')
                            where x.Count() > 6 && IsInDateTime(x[0], startDate, endDate) &&
                                SelectStatus(x[3], parameter) &&
                                SelectType(x[4], parameter) &&
                                IsRankingData(x[5], parameter) &&
                                IsAutoRunning(x[6], parameter)
                            select new JamLogItem { Count = SumCount(1), Date = x[0], AlarmCode = x[1], AlarmName = x[2], AlarmStatus = StrToStatus(x[3]), AlarmType = StrToType(x[4]), RankingData = x[5], AutoRunning = x[6] };

                JamLogData result = new JamLogData();
                result.Items = query.ToArray<IJamLogItem>();
                result.TotalCount = sumCount;
                return result;
            }
        }
Ejemplo n.º 6
0
        private bool IsRankingData(string rankingData, IJamLogSearchParameter parameter)
        {
            if (parameter.IsRankingData == false) return true;

            bool result;
            if (bool.TryParse(rankingData, out result))
            {
                if (parameter.IsRankingData == result)
                    return true;
                else
                    return false;
            }
            else
                return false;
        }