public LogViewModel() { Filter = new LogItemFilter(); TypeItems = new List <string> { "", "Activity", "Jury Activity", "Score" }; Items = GetLogItems(Filter); EnableButtons(true); }
private List <LogItem> GetLogItems(LogItemFilter filter) { var logItems = new List <LogItem>(); foreach (var file in Directory.EnumerateFiles(FolderFactory.LogFolder, "*.xml")) { var fileInfo = new FileInfo(file); if (!fileInfo.Name.Contains("Winners")) { var logInfoArray = fileInfo.Name.Split('_'); if (logInfoArray.Length > 1) { var logDate = logInfoArray[1].Substring(0, 8); var logTime = logInfoArray[1].Substring(8, 6); var dLogDate = new DateTime(int.Parse(logDate.Substring(0, 4)), int.Parse(logDate.Substring(4, 2)), int.Parse(logDate.Substring(6, 2))); var dLogTime = new TimeSpan(int.Parse(logTime.Substring(0, 2)), int.Parse(logTime.Substring(2, 2)), int.Parse(logTime.Substring(4, 2))); logItems.Add(new LogItem { LogType = file.Contains("Jury") ? "Jury Activity" : logInfoArray[0], LogDate = dLogDate, LogTime = dLogTime, LogPath = fileInfo.Name }); } } } if (filter != null) { if (filter.From.HasValue) { logItems = logItems.Where(w => w.LogDate >= filter.From.Value).ToList(); } if (filter.Until.HasValue) { logItems = logItems.Where(w => w.LogDate <= filter.Until.Value).ToList(); } if (!string.IsNullOrEmpty(filter.Type)) { logItems = logItems.Where(w => w.LogType.ToUpper().Equals(filter.Type.ToUpper())).ToList(); } } logItems = logItems.OrderByDescending(o => o.LogDate).ThenByDescending(o => o.LogTime).ToList(); NumberOfRegistrations = $"{logItems.Count.ToString(CultureInfo.InvariantCulture)} registraties"; return(logItems); }