/// <summary> /// Конструктор. /// </summary> /// <param name="link">Ссылка.</param> /// <param name="favorites">Избранные треды.</param> public FavoriteMainTileViewModel(BoardLinkBase link, ThreadLinkCollection favorites) { if (link == null) throw new ArgumentNullException(nameof(link)); this.link = link; TileData = new FavoriteThreadTileViewModel(link); var upd = (IThreadTileUpdater) TileData; var si = upd?.UpdateData(favorites); if (si != null) { UpdateId = new ThreadListUpdateId() { LinkHash = ServiceLocator.Current.GetServiceOrThrow<ILinkHashService>().GetLinkHash(link), SortDate = si.AddedDate, Link = link }; } else { UpdateId = new ThreadListUpdateId() { LinkHash = ServiceLocator.Current.GetServiceOrThrow<ILinkHashService>().GetLinkHash(link), SortDate = DateTime.MinValue, Link = link }; } }
/// <summary> /// Конструктор. /// </summary> /// <param name="link">Ссылка.</param> /// <param name="favorites">Избранные доски.</param> public FavoriteBoardMainTileViewModel(BoardLinkBase link, BoardLinkCollection favorites) { if (link == null) throw new ArgumentNullException(nameof(link)); this.link = link; string name = ServiceLocator.Current.GetServiceOrThrow<ILinkTransformService>().GetBoardShortName(link); var hash = ServiceLocator.Current.GetServiceOrThrow<ILinkHashService>().GetLinkHash(link); if (favorites?.BoardInfo != null) { if (favorites.BoardInfo.ContainsKey(hash)) { var bi = favorites.BoardInfo[hash]; name = bi.DisplayName; } } TileData = new BoardListBoardDataViewModel(link, name, "Избранные", true, false); UpdateId = new ThreadListUpdateId() { LinkHash = hash, SortDate = DateTime.MinValue, Link = link }; }