private static void ApplyMessageFilters(RepositoryFilterOptions filter) { var historyRepository = new History.RegistryHistoryRepository(); var filters = new IMessageFilter[] { new IndexMessageFilter(historyRepository), new GoBackMessageFilter(historyRepository) }; foreach (var messageFilter in filters) { messageFilter.Filter(filter); } }
private static IMessage GetMessage(RepositoryFilterOptions options) { // default should be listing all repositories IMessage message = new ListRepositoriesMessage(); ApplyMessageFilters(options); if (options is ListOptions) { if (options.HasFileFilter) { message = new ListRepositoryFilesMessage(options); } else { message = new ListRepositoriesMessage(options); } } if (options is ChangeDirectoryOptions) { message = new ChangeToDirectoryMessage(options); } if (options is GetDirectoryOptions) { message = new GetDirectoryMessage(options); } if (options is OpenDirectoryOptions) { if (options.HasFileFilter) { message = new OpenFileMessage(options); } else { message = new OpenDirectoryMessage(options); } } return(message); }