/// <summary>
 /// Конструктор.
 /// </summary>
 /// <param name="pageLink">Ссылка на страницу.</param>
 public BoardPageLoaderViewModel(BoardLinkBase pageLink)
 {
     if (pageLink == null) throw new ArgumentNullException(nameof(pageLink));
     PageLink = pageLink;
     update = new StdEngineOperationWrapper<IBoardPageLoaderResult>(OperationFactory) { HighPriority = true };
     update.Finished += UpdateOnFinished;
     update.ResultGot += UpdateOnResultGot;
     update.Started += UpdateOnStarted;
     PageNum = ServiceLocator.Current.GetServiceOrThrow<ILinkTransformService>().GetBoardPage(pageLink);
     AppHelpers.DispatchAction(async () =>
     {
         var t = await BoardTitleHelper.GetBoardTitle(pageLink) ?? "";
         Title = t;
         TitleWithPage = $"[{PageNum}] {t}";
     });
     var engine = ServiceLocator.Current.GetServiceOrThrow<INetworkEngines>().FindEngine(pageLink.Engine);
     if (engine != null)
     {
         CanInvokeCatalog = (engine.Capability & EngineCapability.Catalog) != 0;
     }
     else
     {
         CanInvokeCatalog = false;
     }
 }
Exemplo n.º 2
0
 /// <summary>
 /// Конструктор.
 /// </summary>
 public MainViewModel()
 {
     CheckForUpdates = new StdEngineOperationWrapper<LinkCollection>(OperationFactory);
     CheckForUpdates.Progress.Finished += (sender, e) =>
     {
         ViewModelEvents.FavoritesListRefreshed.RaiseEvent(this, null);
     };
     Groups.Add(new FavoriteMainGroupViewModel());
     Groups.Add(new FavoriteBoardMainGroupViewModel());
     Groups.Add(new VisitedMainGroupViewModel());
     AppHelpers.DispatchAction(Initialize, false, 0);
 }
Exemplo n.º 3
0
 /// <summary>
 /// Конструктор.
 /// </summary>
 /// <param name="pageParam">Параметр страницы.</param>
 public PostingViewModel(ExtendedPageParam2 pageParam)
 {
     var postingLink = pageParam?.Link;
     this.customId = pageParam?.CustomDataId;
     if (postingLink == null) throw new ArgumentNullException(nameof(postingLink));
     PostingLink = postingLink;
     if ((PostingLink.LinkKind & BoardLinkKind.Thread) == 0)
     {
         IsNewThread = true;
     }
     operation = new StdEngineOperationWrapper<Logic.IPostingResult>(OperationFactory);
     operation.Finished += OperationOnFinished;
     operation.ResultGot += OperationOnResultGot;
     Fields = new PostingFieldsViewModel(this);
     Fields.Flushed += FieldsOnFlushed;
     Fields.Initialized += FieldsOnInitialized;
     Fields.Initialize();
     AppHelpers.DispatchAction(GetQuote, false, 5);
 }