private void ReadLog(string fileName, string groupName) { var logFileModel = LogFileHelper.ParseLogFile(fileName, groupName); var readFromTime = Program.ReadFromTimes.FirstOrDefault((KeyValuePair <string, DateTime> group) => group.Key == groupName).Value; logFileModel.LogLines = logFileModel.LogLines.Where(w => w.LogDateTime > readFromTime).ToList(); if (logFileModel.LogLines.Count() > 0) { Program.ReadFromTimes.Remove(groupName); Program.ReadFromTimes.Add(groupName, logFileModel.LogLines.LastOrDefault().LogDateTime); ClearCurrentConsoleLine(); OutputToConsole(logFileModel.LogLines); var loggingToon = Program.GetLoggingToon(logFileModel.Logger); var request = new LogDataModel() { LoggerName = loggingToon.Name, CorporationId = loggingToon.CorporationId, AllianceId = loggingToon.AllianceId, LogLines = logFileModel.LogLines, Group = groupName }; Poll(request); Console.WriteLine(string.Empty); } }
public static void GetLogFileNames(List <SSO.IntelMap.Models.GroupChannelName> data) { var catcher = new List <SSO.IntelMap.Models.GroupChannelName>(); var dInfo = new DirectoryInfo(Path); data.ForEach(group => { group.Channels.ForEach(channel => { var fileInfo = dInfo.EnumerateFiles(string.Concat(channel, "*")) .OrderByDescending(o => o.LastWriteTimeUtc).FirstOrDefault(); if (fileInfo != null) { var flag1 = false; Console.WriteLine("Listening to channel " + channel); catcher.Add(group); LogFileModel model = LogFileHelper.ParseLogFile(fileInfo.FullName, group.Group); DateTime createdAt = model.CreatedAt; if (model.LogLines.Count > 0) { createdAt = Enumerable.Last <LogLine>(model.LogLines).LogDateTime; } if (!ReadFromTimes.ContainsKey(group.Group)) { flag1 = false; } else { flag1 = ReadFromTimes.FirstOrDefault().Value < createdAt; } if (flag1) { ReadFromTimes.Remove(group.Group); } if (!ReadFromTimes.ContainsKey(group.Group)) { ReadFromTimes.Add(group.Group, createdAt); } } }); }); catcher = catcher.Distinct().ToList(); catcher.ForEach(group => { HubProxy.Invoke("joinGroup", group.Group); }); Console.WriteLine(); LogFileNames = catcher; }