Esempio n. 1
0
        public LogReportPack CreateFromLines(string[] lines)
        {
            LogReportPack pack          = new LogReportPack();
            LogReport     parsedReport  = null;
            LogReport     currentReport = null;

            LogReportItem item = null;

            foreach (string line in lines)
            {
                if (LogReport.TryCreateFromHeader(line, out parsedReport))
                {
                    currentReport = parsedReport;
                    pack.Reports.Add(currentReport);
                    continue;
                }

                if (LogReportItem.TryCreateFromString(line, out item))
                {
                    if (null != currentReport)
                    {
                        currentReport.Items.Add(item);
                    }
                }
            }

            return(pack);
        }
Esempio n. 2
0
        public static bool TryCreateFromHeader(string header, out LogReport report)
        {
            report = null;
            Match match = Regex.Match(header, PATTERN);

            Group dateGroup = match.Groups["date"];
            Group nameGroup = match.Groups["name"];

            if (!(dateGroup.Success && nameGroup.Success))
            {
                return(false);
            }

            string dateStr = dateGroup.Value;
            string nameStr = nameGroup.Value;

            DateTime dt = DateTime.Parse(dateStr);

            report = new LogReport {
                Name = nameStr, CreationDate = dt
            };

            return(true);
        }