Esempio n. 1
0
        private IEnumerable <CalculArenhInfo> GetCalculInfos(IEnumerable <LogEntry> logEntries)
        {
            CalculArenhInfo calculArenhInfo = null;

            foreach (var logEntry in logEntries)
            {
                if (IsDebutTraitementEntry(logEntry))
                {
                    var regexResult = _debutTraitementRegex.Match(logEntry.Message);
                    calculArenhInfo = new CalculArenhInfo(int.Parse(regexResult.Groups[TraitementIdGroupName].Value), logEntry.GetThread());
                }
                else if (calculArenhInfo != null && IsStartCalculEntry(logEntry))
                {
                    var regexResult = _startCalculRegex.Match(logEntry.Message);
                    calculArenhInfo.SetInfos(regexResult.Groups[GroupIdGroupName].Value,
                                             regexResult.Groups[ProfilIdGroupName].Value,
                                             regexResult.Groups[UserGroupName].Value,
                                             logEntry.DateTime);
                }
                else if (calculArenhInfo != null && IsLancemenGenerationModeleLisseEntry(logEntry))
                {
                    calculArenhInfo.DebutCalculArenh = logEntry.DateTime;
                }
                else if (calculArenhInfo != null && IsAppelMethodEntry(logEntry))
                {
                    calculArenhInfo.FinCalculArenh = logEntry.DateTime;
                    yield return(calculArenhInfo);

                    calculArenhInfo = null;
                }
            }

            if (calculArenhInfo != null)
            {
                yield return(calculArenhInfo);
            }
        }
Esempio n. 2
0
 public string AnalyseLogs(IEnumerable <LogEntry> logEntries)
 => CalculArenhInfo.GetHeaderCsv() + "\r\n" + string.Join("\r\n", GetCalculInfos(logEntries).Where(i => i.IsValidPricingNome).Select(i => i.ToCsvLine()));