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