/// <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;
 }