/// <summary> /// Конструктор. /// </summary> /// <param name="data">Данные.</param> /// <param name="engine">Движок.</param> public MakabaPageBannerViewModel(MakabaEntityTree data, string engine) { if (engine == null) throw new ArgumentNullException(nameof(engine)); this.data = data; if (data?.BoardBannerImage != null) { BannerImageLink = new MediaLink() { Engine = engine, IsAbsolute = false, RelativeUri = data.BoardBannerImage }; } if (data?.BoardBannerLink != null) { BannerLink = new BoardLink() { Engine = engine, Board = data.BoardBannerLink }; } AppHelpers.DispatchAction(LoadBannerName); }
private MakabaEntityTree GetEntityTree(BoardEntity2 data) { var entity = new MakabaEntityTree() { Board = data.Board, BoardBannerImage = data.BoardBannerImage, BoardBannerLink = data.BoardBannerLink, BoardName = data.BoardName, BoardSpeed = string.IsNullOrWhiteSpace(data.BoardSpeed) ? "" : $"{data.BoardSpeed} п./час", CurrentPage = data.CurrentPage.TryParseWithDefault(), CurrentThread = data.CurrentThread.TryParseWithDefault(), Icons = data.Icons != null ? data.Icons.Select(i => new MakabaIconReference() { Name = i.Name, Number = i.NumberInt, Url = i.Url }).OrderBy(i => i.Number).ToList() : null, Pages = data.Pages != null ? data.Pages.Select(s => s.TryParseWithDefault(-1)) .Where(i => i >= 0) .Distinct() .OrderBy(i => i) .ToList() : null, IsBoard = data.IsBoard.TryParseWithDefault() != 0, IsIndex = data.IsIndex.TryParseWithDefault() != 0, ThreadTags = data.Tags != null ? data.Tags.Select(t => new ThreadTagLink() { Engine = CoreConstants.Engine.Makaba, Board = data.Board, Tag = t }).Where(t => t.Tag != null).OfType<BoardLinkBase>().ToList() : null }; return entity; }