/// <summary> /// /// </summary> /// <param name="operationEvents"></param> /// <returns></returns> public static IEnumerable <OperationEvent> FilteredOperationEvents( this IEnumerable <OperationEvent> operationEvents) { var filteredOperations = operationEvents .Where(opEvent => !(opEvent.EventType == EventType.Edit && opEvent.FileType == FileType.Directory)) .OrderBy(opEvent => opEvent.RaisedTime).ToList(); if (filteredOperations.Count() <= 1) { return(filteredOperations); } var rootFolder = new FolderViewModel(filteredOperations.GetRootPath()); foreach (var opEvent in filteredOperations) { if (opEvent.FileType == FileType.Directory) { rootFolder.AddFolderToRootFolder(opEvent); } else { rootFolder.AddFileToRootFolder(opEvent); } } return(rootFolder.GetOperationEventsFromRootFolderViewModel().OrderBy(opEvent => opEvent.RaisedTime)); }