/// <summary> /// Конструктор. /// </summary> /// <param name="source">Источник.</param> /// <param name="query">Запрос.</param> /// <param name="sortPosts">Сортировать посты.</param> public FilteredPostCollection(IPostCollectionViewModel source, IPostCollectionSearchQuery query, bool sortPosts = true) { if (source == null) throw new ArgumentNullException(nameof(source)); if (query == null) throw new ArgumentNullException(nameof(query)); Source = source; Query = query; MergeAndSortPosts = sortPosts; Source.PostsUpdated += SourceOnPostsUpdated; SetPosts(); }
private void SetFilter(string filter) { if (string.IsNullOrWhiteSpace(filter)) { FilteredPosts = ViewModel; } else { FilteredPosts = ViewModel.FilterPosts(new TextPostCollectionSearchQuery(filter), false); } }
/// <summary> /// Конструктор. /// </summary> /// <param name="postCollection">Коллекция постов.</param> /// <param name="post">Пост, с которого был совершён переход.</param> public ShowFullThreadEventArgs(IPostCollectionViewModel postCollection, IPostViewModel post) { PostCollection = postCollection; Post = post; }
/// <summary> /// Конструктор. /// </summary> /// <param name="postData">Данные поста.</param> /// <param name="parent">Родительская модель.</param> /// <param name="omitPosts">Пропущено постов.</param> public PostViewModel(PostTree postData, IPostCollectionViewModel parent, int omitPosts) : base(postData, parent) { this.omitPosts = omitPosts; }
/// <summary> /// Конструктор. /// </summary> /// <param name="postData">Данные поста.</param> /// <param name="parent">Родительская модель.</param> public PostViewModel(PostTree postData, IPostCollectionViewModel parent) : base(postData, parent) { }
/// <summary> /// Конструктор. /// </summary> /// <param name="postData">Данные поста.</param> /// <param name="parent">Родительская модель.</param> protected PostViewModelBase(PostTree postData, IPostCollectionViewModel parent) { PostData = postData; Parent = parent; }