private void findDeletedTopics(TopicToken original, TopicToken @new) { var deletedTopics = original.All().Where(x => @new.Find(x.Id) == null) .Select(x => new DeleteTopic(x)); _deltas.AddRange(deletedTopics); }
private void findNewAndDeletedFolders(TopicToken original, TopicToken @new) { var oldFolders = original.All().Select(x => x.Folder).Distinct().ToList(); var newFolders = @new.All().Select(x => x.Folder).Distinct().ToList(); var deletedFolders = oldFolders.Where(x => !newFolders.Contains(x)).Select(x => new DeleteFolder(x)); _deltas.AddRange(deletedFolders); var addedFolders = newFolders.Where(x => !oldFolders.Contains(x)).Select(x => new CreateFolder(x)); _deltas.AddRange(addedFolders); }
public DeltaCollector(TopicToken original, TopicToken @new) { @new.DeterminePaths(original.Folder); findDeletedTopics(original, @new); findNewAndDeletedFolders(original, @new); @new.All().Each(x => { var topicDeltas = x.DetermineDeltas(original); _deltas.AddRange(topicDeltas); }); }