Пример #1
0
        private void Execute_ChangePage(IPageViewModel viewModel)
        {
            if (!PageViewModelsCollection.Contains(viewModel))
                PageViewModelsCollection.Add(viewModel);

            CurrentPageViewModel = PageViewModelsCollection.FirstOrDefault(vm => vm == viewModel);
        }
        private void ChangeViewModel(IPageViewModel viewModel)
        {
            if (!PageViewModels.Contains(viewModel))
                PageViewModels.Add(viewModel);

            CurrentPageViewModel = PageViewModels
                .FirstOrDefault(vm => vm == viewModel);
        }
        public ApplicationViewModel()
        {
            // Add available pages
            PageViewModels.Add(new ChangePriceModel());
            PageViewModels.Add(new DeleteProductModel());
            PageViewModels.Add(new NewProductModel());

            // set startup page
            _currentPageViewModel = _pageViewModels[2];
        }
Пример #4
0
        /// <summary>
        ///     AdminViewModel constructor takes a UnitOfWork to give to each of its user controls view models  and add them to a
        ///     list.
        /// </summary>
        public AdminViewModel(IAdmin admin, IAutocomplete autocomplete)
        {
            // Add available pages
            PageViewModels.Add(new AdminNewStoreModel(admin));
            PageViewModels.Add(new AdminDeleteProductModel());
            PageViewModels.Add(new AdminDeleteStoreModel(admin, autocomplete, new CreateMsgBox()));

            // set startup page
            MainWindowTekst = "Pristjek220 - Administration - Tilføj Forretning";
            _currentPageViewModel = _pageViewModels[0];
        }
Пример #5
0
        public bool Navigate(IPageViewModel pageViewModel)
        {
            string viewModel = pageViewModel.GetType().Name;
            string pageName = viewModel.Substring(0, viewModel.IndexOf("ViewModel", StringComparison.Ordinal));

            var type = Assembly.GetExecutingAssembly().GetTypes().SingleOrDefault(a => a.Name.Equals(pageName));
            if (type == null) return false;

            var src = Activator.CreateInstance(type, pageViewModel);
            return frame.Navigate(src);
        }
        /// <summary>
        ///     StoremanagerViewModel constructor takes a UnitOfWork to give to each of its user controls view models and add them
        ///     to a list.
        /// </summary>
        public StoremanagerViewModel(IStoremanager storemanager, IAutocomplete autocomplete)
        {
            // Add available pages
            _storemanager = storemanager;
            PageViewModels.Add(new ChangePriceModel(storemanager, autocomplete, new CreateMsgBox()));
            PageViewModels.Add(new DeleteProductModel(storemanager, autocomplete, new CreateMsgBox()));
            PageViewModels.Add(new NewProductModel(storemanager, autocomplete, new CreateMsgBox()));

            // set startup page
            MainWindowTekst = $"Pristjek220 - {_storemanager.Store.StoreName} - Tilføj Produkt";
            _currentPageViewModel = _pageViewModels[2];
        }
Пример #7
0
        protected virtual void OnPopViewModel(IPageViewModel viewModel, bool animated)
        {
            if (PageReferences.LastOrDefault()?.Model != viewModel)
            {
                throw new Exception(String.Format("The viewModel is not the last in the stack: {0}", viewModel));
            }

            var pageReference = PageReferences.LastOrDefault();

            PageReferences.RemoveAt(PageReferences.Count - 1);
            if (this.Navigation.NavigationStack.LastOrDefault() == pageReference.View)
            {
                PopAsync();
            }
        }
        public IObservable<Unit> PushPage(IPageViewModel page, string contract = null, 
            bool resetStack = false, bool animate = true)
        {
            Ensure.ArgumentNotNull(page, nameof(page));

            return this
                ._view
                .PushPage(page, contract, resetStack, animate)
                .Do(
                    _ =>
                    {
                        AddToStackAndTick(this._pageStack, page, resetStack);
                        _logger.Debug("Added page '{0}' (contract '{1}') to stack.", page.Title, contract);
                    });
        }
Пример #9
0
        private void ChangeViewModel(State state, object obj = null)
        {
            if (!PageViewModels.Keys.Contains(state))
            {
                throw new ArgumentException();
            }

            if (state.Equals(State.DisplayScreen))
            {
                CurrentPageViewModel = new DisplayScreenViewModel(obj as Bitmap);
                return;
            }

            CurrentPageViewModel = PageViewModels[state];
        }
        private void ChangeViewModel(IPageViewModel viewModel)
        {
            if (!PageViewModels.Contains(viewModel))
            {
                PageViewModels.Add(viewModel);
            }

            CurrentPageViewModel = PageViewModels
                                   .FirstOrDefault(vm => vm == viewModel);
            if (CurrentPageViewModel is HomeViewModel)
            {
                HomeViewModel hvm = CurrentPageViewModel as HomeViewModel;
                hvm.UpdateProjectTotals();
            }
        }
Пример #11
0
        public MainWindowViewModel()
        {
            PageViewModels.Add(new EnteringPageViewModel());
            PageViewModels.Add(new CurrentWeatherViewModel(CurrentWeatherConst.Location));
            PageViewModels.Add(new ViewDitailsViewModel(/*DetailsPage.rain, DetailsPage.wind, DetailsPage.clouds, DetailsPage.weather, DetailsPage.main*/));

            CurrentPageViewModel = PageViewModels[0];

            Mediator.Subscribe("GoToCityEnteringScreen", GoToCityEnteringScreen);
            Mediator.Subscribe("GoToDetailsScreen", GoToDetailsScreen);
            Mediator.Subscribe("GoToDetails2Screen", GoToDetails2Screen);
            Mediator.Subscribe("GetCityWeatherScreen", GetCityWeatherScreen);
            Mediator.Subscribe("OnClickedBackScreen", OnClickedBackScreen);
            Mediator.Subscribe("OnClickedBack2Screen", OnClickedBack2Screen);
        }
Пример #12
0
 private void ChangeView(IPageViewModel viewModel)
 {
     if (viewModel is ProductsViewModel)
     {
         CurrentAddView = AddViews[4];
     }
     if (viewModel is ProductSizesViewModel)
     {
         CurrentAddView = AddViews[3];
     }
     if (viewModel is ProductImagesViewModel)
     {
         CurrentAddView = AddViews[2];
     }
 }
Пример #13
0
        public void CreateAccount()
        {
            IsCheckedCreateAccount = !IsCheckedCreateAccount;

            if (IsCheckedCreateAccount)
            {
                CreateAccountVM      = new CreateAccountViewModel();
                CurrentPageViewModel = CreateAccountVM;
            }
            else
            {
                CreateAccountVM      = null;
                CurrentPageViewModel = null;
            }
        }
Пример #14
0
        /// <summary>
        /// Pushes a page onto the modal stack.
        /// </summary>
        /// <param name="modal">A page view model.</param>
        /// <param name="contract">A page contract.</param>
        /// <returns>An observable that signals the completion of this action.</returns>
        public IObservable <Unit> PushModal(IPageViewModel modal, string contract = null)
        {
            if (modal == null)
            {
                throw new NullReferenceException("The modal you tried to push is null.");
            }

            return(_viewShell
                   .PushModal(modal, contract, false)
                   .Do(
                       _ =>
            {
                AddToStackAndTick(_modalPageStack, modal, false);
            }));
        }
Пример #15
0
        /// <summary>
        /// Pushes the <see cref="IPageViewModel" /> onto the stack.
        /// </summary>
        /// <param name="modal">The modal.</param>
        /// <param name="contract">The contract.</param>
        /// <returns>An observable that signals when the push is complete.</returns>
        public IObservable <Unit> PushModal(IPageViewModel modal, string contract = null)
        {
            if (modal == null)
            {
                throw new ArgumentNullException(nameof(modal));
            }

            return(_view
                   .PushModal(modal, contract)
                   .Do(_ =>
            {
                AddToStackAndTick(_modalStack, modal, false);
                _logger.Debug("Added modal '{modal.Id}' (contract '{contract}') to stack.");
            }));
        }
Пример #16
0
        /// <summary>
        /// Pushes the <see cref="IPageViewModel" /> onto the stack.
        /// </summary>
        /// <param name="page">The page.</param>
        /// <param name="contract">The contract.</param>
        /// <param name="resetStack">if set to <c>true</c> [reset stack].</param>
        /// <param name="animate">if set to <c>true</c> [animate].</param>
        /// <returns>An observable that signals when the push is complete.</returns>
        public IObservable <Unit> PushPage(IPageViewModel page, string contract = null, bool resetStack = false, bool animate = true)
        {
            if (page == null)
            {
                throw new ArgumentNullException(nameof(page));
            }

            return(_view
                   .PushPage(page, contract, resetStack, animate)
                   .Do(_ =>
            {
                AddToStackAndTick(_pageStack, page, resetStack);
                _logger.Debug($"Added page '{page.Id}' (contract '{contract}') to stack.");
            }));
        }
Пример #17
0
        public MainWindowViewModel()
        {
            // Add available pages and set page
            PageViewModels.Add(new LoginVM());
            PageViewModels.Add(new UserControl1ViewModel());
            PageViewModels.Add(new UserControl2ViewModel());

            CurrentPageViewModel = PageViewModels[0];

            Mediator.Subscribe("GoTo1Screen", OnGo1Screen);
            Mediator.Subscribe("GoTo2Screen", OnGo2Screen);

            ChangeViewModel(PageViewModels[0]);
            //OnPropertyChanged(nameof());
        }
        public MainWindowViewModel(ShowAllFlightsViewModel showAllFlightsViewModel, OverviewViewModel overviewViewModel, ShowAllRoutesViewModel showAllRoutesViewModel, ShowAllAirplanesViewModel showAllAirplanesViewModel, ShowAllAirportsViewModel showAllAirportsViewModel, ShowAllPassengersViewModel showAllPassengersViewModel, ShowAllTicketsViewModel showAllTicketsViewModel, TicketsByFlightViewModel ticketsByFlightViewModel, ShowAllCarriersViewModel showAllCarriersViewModel)
        {
            CurrentInstance             = this;
            _overviewViewModel          = overviewViewModel;
            _showAllAirplanesViewModel  = showAllAirplanesViewModel;
            _showAllAirportsViewModel   = showAllAirportsViewModel;
            _showAllFlightsViewModel    = showAllFlightsViewModel;
            _showAllPassengersViewModel = showAllPassengersViewModel;
            _showAllRoutesViewModel     = showAllRoutesViewModel;
            _showAllTicketsViewModel    = showAllTicketsViewModel;
            _showAllCarriersViewModel   = showAllCarriersViewModel;
            _ticketsByFlightViewModel   = ticketsByFlightViewModel;

            _currentPageViewModel = overviewViewModel;
        }
Пример #19
0
        private void NavigateToCrumb(Breadcrumb crumb)
        {
            IPageViewModel currentPage = m_pageService.CurrentPage;

            if (crumb.AssociatedPage == currentPage)
            {
                return;
            }

            while (crumb.AssociatedPage != currentPage)
            {
                m_pageService.CloseCurrentPage();

                currentPage = m_pageService.CurrentPage;
            }
        }
Пример #20
0
 public IObservable <Unit> PushPage(IPageViewModel page, string contract = null, bool resetStack = false, bool animate = true)
 {
     if (this._CurrentPageStack.Value == null)
     {
         throw new InvalidOperationException("Can't push a page onto a modal with no navigation stack.");
     }
     return
         (View
          .PushPage(page, contract, resetStack, animate)
          .Do(
              _ =>
     {
         AddToStackAndTick(this._CurrentPageStack, page, resetStack);
         this.Log().Debug("Added page '{0}' (contract '{1}') to stack.", page.Title, contract);
     }));
 }
Пример #21
0
        /// <summary>
        /// Changement de fenêtre.
        /// </summary>
        /// <param name="viewModel">La vue à afficher.</param>
        private void ChangeViewModel(IPageViewModel viewModel)
        {
            if (!this.PageViewModels.Contains(viewModel))
            {
                // Si la vue n'existe pas encore dans la liste, on l'ajoute
                this.PageViewModels.Add(viewModel);
            }

            // Changement de fenêtre si valide
            this.CurrentPageViewModel = PageViewModels.FirstOrDefault(vm => vm == viewModel);
            if (this.CurrentPageViewModel != null)
            {
                // Actualisation du titre
                this.CustomWindowTitle = CurrentPageViewModel.Title;
            }
        }
Пример #22
0
        /// <summary>
        /// Constructor for creating new session entries.
        /// </summary>
        /// <param name="app"></param>
        public SessionViewModel(ApplicationViewModel app)
        {
            _appViewModel = app;
            _previousPage = app.CurrentPageViewModel;
            _session      = new SessionModel();
            Operation     = "Create";

            LoadSessions();
            int nextId = AllSessions.Count == 0 ? 1 : AllSessions.Last <SessionModel>().SessionId + 1;

            _session.SessionId   = nextId;
            _session.VideoList   = new ObservableCollection <VideoModel>();
            _session.Calibration = new CalibrationModel();

            _appViewModel.SessionsViewModel.CurrentSession = _session;
        }
Пример #23
0
        public void ForgotPassword()
        {
            IsCheckedForgotPassword = !IsCheckedForgotPassword;

            if (IsCheckedForgotPassword)
            {
                ForgotPasswordVM     = new ForgotPasswordViewModel();
                CurrentPageViewModel = ForgotPasswordVM;
            }

            else
            {
                ForgotPasswordVM     = null;
                CurrentPageViewModel = null;
            }
        }
Пример #24
0
        /// <summary>
        /// Pushes a page onto the modal stack.
        /// </summary>
        /// <param name="modal">A page view model.</param>
        /// <param name="contract">A page contract.</param>
        /// <returns>An observable that signals the completion of this action.</returns>
        public IObservable <Unit> PushModal(IPageViewModel modal, string contract = null)
        {
            if (modal == null)
            {
                throw new NullReferenceException("The modal you tried to push is null.");
            }

            return(_viewShell
                   .PushModal(modal, contract, false)
                   .Do(
                       _ =>
            {
                AddToStackAndTick(_modalPageStack, modal, false);
                this.Log().Debug("Added modal '{0}' (contract '{1}') to stack.", modal.Title, contract);
            }));
        }
Пример #25
0
        private void AddNewViewModelAndRemoveSelectedViewModel(IPageViewModel newViewModel, string path = null)
        {
            var SelectedViewModelCount = vmObject.ViewModels.IndexOf(vmObject.SelectedViewModel);

            vmObject.ViewModels.Remove(vmObject.SelectedViewModel);
            vmObject.ViewModels.Insert(SelectedViewModelCount, newViewModel);

            vmObject.SelectedViewModel = vmObject.ViewModels[SelectedViewModelCount];
            if (path != null)
            {
                OpenFileForDataCreation(path);
            }
            else
            {
                OpenFileForDataCreation();
            }
        }
Пример #26
0
 private void ChangeViewModel(IPageViewModel viewModel)
 {
     if (!PageViewModels.Contains(viewModel))
     {
         PageViewModels.Add(viewModel);
     }
     if (CurrentPageViewModel.Name.Equals("Home"))
     {
         ((HomeViewModel)CurrentPageViewModel).OnExit();
     }
     CurrentPageViewModel = PageViewModels.FirstOrDefault(vm => vm == viewModel);
     CurrentPageViewModel.OnEntry();
     if (CurrentPageViewModel.Name.Equals("Logout"))
     {
         HandleLogout();
     }
 }
Пример #27
0
        public async Task SetNewRootAsync(IPageViewModel newRoot, bool animated)
        {
            selfHandlingAppear = true;
            bool wasVisible = newRoot == Pages.LastOrDefault();

            if (!wasVisible)
            {
                await(lastDisappearing());
            }
            setNewRoot(newRoot, animated);

            if (!wasVisible)
            {
                await(lastAppearing());
            }
            selfHandlingAppear = false;
        }
Пример #28
0
        private void ChangeViewModel(IPageViewModel viewModel)
        {
            if (!PageViewModels.Contains(viewModel))
            {
                PageViewModels.Add(viewModel);
            }

            if (viewModel is NewProjectViewModel)
            {
                CurrentPageViewModel = new NewProjectViewModel();
            }
            else
            {
                CurrentPageViewModel = PageViewModels
                                       .FirstOrDefault(vm => vm == viewModel);
            }
        }
Пример #29
0
        public ViewStackServiceTests()
        {
            _viewShell   = Substitute.For <IViewShell>();
            _page        = Substitute.For <IPageViewModel>();
            _pagePopped  = new Subject <IPageViewModel>();
            _modalPopped = new Subject <Unit>();
            _viewShell.PagePopped.Returns(_pagePopped);
            _viewShell.ModalPopped.Returns(_modalPopped);

            _viewShell
            .When(x => x.PopPage(Arg.Any <bool>()))
            .Do(_ => _pagePopped.OnNext(_page));

            _viewShell
            .When(x => x.PopModal())
            .Do(_ => _modalPopped.OnNext(Unit.Default));
        }
Пример #30
0
        private void UpdateBreadcrumb()
        {
            IEnumerable <IPageViewModel> pageHistory = m_pageService.PageHistory.Reverse();
            IPageViewModel lastPage = pageHistory.Last();

            Breadcrumbs.Clear();
            foreach (IPageViewModel page in pageHistory)
            {
                Breadcrumb crumb = new Breadcrumb()
                {
                    Text           = page.Title,
                    AssociatedPage = page,
                    IsLastCrumb    = lastPage == page
                };

                Breadcrumbs.Add(crumb);
            }
        }
        public StatsAnalysisManagerViewModel(INavigation navigation)
            : base(navigation, "Статистический анализ")
        {
            _informationItems = new IInformationItem[]
            {
                new InformationItem("Cтатистический анализ", "Статистика — отрасль знаний, наука, в которой излагаются общие вопросы сбора, измерения, мониторинга и анализа массовых статистических (количественных или качественных) данных; изучение количественной стороны массовых общественных явлений в числовой форме."),
                new InformationItem("Что делать дальше?", "Выберите тематику, необходимую для дальнейших исследований."),
                new InformationItem("Долго искать необходимую тему?", "Воспользуйтесь кнопкой поиска.")
            };

            var hypTestingVm = new HypothesisTestingManagerViewModel(navigation);

            Navigation.Add(() => new HypothesisTestingView(hypTestingVm));

            var corRegAnalysisVm = new CorRegAnalysisViewModel();

            Navigation.Add(() => new CorRegAnalysisView(corRegAnalysisVm));

            var timeSerAnalysisVm = new TimeSeriesAnalysisViewModel();

            Navigation.Add(() => new TimeSeriesAnalysisView(timeSerAnalysisVm));

            var forecastingTimeSerVm = new ForecastingTimeSeriesViewModel();

            Navigation.Add(() => new ForecastingTimeSeriesView(forecastingTimeSerVm));

            _pagesViewModels = new IPageViewModel[]
            {
                hypTestingVm, corRegAnalysisVm, timeSerAnalysisVm
            };

            _navigationItems = new INavigationItem[]
            {
                new NavigationItem(hypTestingVm.Title, typeof(HypothesisTestingView), MaterialDesignThemes.Wpf.PackIconKind.FormatListChecks),
                new NavigationItem(corRegAnalysisVm.Title, typeof(CorRegAnalysisView), MaterialDesignThemes.Wpf.PackIconKind.ChartArc),
                new NavigationItem(timeSerAnalysisVm.Title, typeof(TimeSeriesAnalysisView), MaterialDesignThemes.Wpf.PackIconKind.ChartLine),
                new NavigationItem(forecastingTimeSerVm.Title, typeof(ForecastingTimeSeriesView), MaterialDesignThemes.Wpf.PackIconKind.ChartTimeline)
            };

            _informationLinks = new ILink[]
            {
                new Link("Википедия", "https://ru.wikipedia.org/wiki/%D0%A1%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA%D0%B0", MaterialDesignThemes.Wpf.PackIconKind.Wikipedia)
            };
        }
Пример #32
0
        public async Task NavigateToAsync(IPageViewModel viewmodel, NavigatorSettings settings)
        {
            Device.BeginInvokeOnMainThread(async() =>
            {
                viewmodel.Navigator = this;

                var view            = Build.View <Page>(viewmodel);
                view.BindingContext = viewmodel;

                if (settings.IsModal)
                {
                    await mainPage.Navigation.PushModalAsync(view, settings.UsePlatformAnimation);
                }
                else
                {
                    await mainPage.PushAsync(view, settings.UsePlatformAnimation);
                }
            });
        }
Пример #33
0
        public MainViewModel()
        {
            // Add available pages and set page
            PageViewModels.Add(new HomeViewModel());
            PageViewModels.Add(new AvailNewsViewModel());
            PageViewModels.Add(new PDFViewModel());
            PageViewModels.Add(new FactoryViewModel());
            PageViewModels.Add(new TableViewModel());
            PageViewModels.Add(new SettingsModel());

            CurrentPageViewModel = PageViewModels[0];

            Mediator.Subscribe("GoTo1Screen", OnGo1Screen);
            Mediator.Subscribe("GoTo2Screen", OnGo2Screen);
            Mediator.Subscribe("GoTo3Screen", OnGo3Screen);
            Mediator.Subscribe("GoTo4Screen", OnGo4Screen);
            Mediator.Subscribe("GoTo5Screen", OnGo5Screen);
            Mediator.Subscribe("GoTo6Screen", OnGo6Screen);
        }
        protected void PopulateGetHelpWithQuestion(IPageViewModel viewModel)
        {
            var getHelpSessionKey = string.Format(GetHelpSubmittedForPageKey, viewModel.PageId);
            var getHelpSubmitted  = _sessionService.Get <bool>(getHelpSessionKey);

            viewModel.GetHelpQuerySubmitted = getHelpSubmitted;

            var getHelpQuestionKey     = string.Format(GetHelpQuestionKey, viewModel.PageId);
            var getHelpQuestion        = _sessionService.Get(getHelpQuestionKey);
            var getHelpErrorMessageKey = string.Format(GetHelpErrorMessageKey, viewModel.PageId);
            var getHelpErrorMessage    = _sessionService.Get(getHelpErrorMessageKey);

            if (!string.IsNullOrWhiteSpace(getHelpErrorMessage))
            {
                viewModel.GetHelpErrorMessage   = getHelpErrorMessage;
                viewModel.GetHelpQuerySubmitted = false;
                viewModel.GetHelpQuestion       = getHelpQuestion;
            }
        }
Пример #35
0
        /// <inheritdoc />
        public IObservable <Unit> PushPage(
            IPageViewModel pageViewModel,
            string contract,
            bool resetStack,
            bool animate = true)
        {
            UIViewController viewController = null;

            return(Observable.Start(
                       () =>
            {
                var page = LocatePageFor(pageViewModel, contract);
                SetPageTitle(page, pageViewModel.Id);
                _navigationPages.Push(page);
                viewController = page;
                return page;
            },
                       CurrentThreadScheduler.Instance)
                   .ObserveOn(CurrentThreadScheduler.Instance)
                   .SelectMany(page =>
            {
                return Observable.Create <Unit>(
                    observer =>
                {
                    CATransaction.Begin();
                    CATransaction.CompletionBlock = () =>
                    {
                        observer.OnNext(Unit.Default);
                        observer.OnCompleted();
                    };

                    if (resetStack)
                    {
                        SetViewControllers(null, false);
                    }

                    PushViewController(viewController, animate);
                    CATransaction.Commit();
                    return Disposable.Empty;
                });
            }));
        }
Пример #36
0
        /// <summary>
        /// Pushes the page.
        /// </summary>
        /// <param name="pageViewModel">The page view model.</param>
        /// <param name="contract">The contract.</param>
        /// <param name="resetStack">if set to <c>true</c> [reset stack].</param>
        /// <param name="animate">if set to <c>true</c> [animate].</param>
        /// <returns></returns>
        public IObservable <Unit> PushPage(IPageViewModel pageViewModel, string contract, bool resetStack, bool animate)
        {
            return(Observable
                   .Start(
                       () =>
            {
                var page = LocatePageFor(pageViewModel, contract);
                SetPageTitle(page, pageViewModel.Id);
                return page;
            },
                       CurrentThreadScheduler.Instance)
                   .ObserveOn(CurrentThreadScheduler.Instance)
                   .SelectMany(
                       page =>
            {
                if (resetStack)
                {
                    if (Navigation.NavigationStack.Count == 0)
                    {
                        return Navigation
                        .PushAsync(page, false)
                        .ToObservable();
                    }
                    else
                    {
                        // XF does not allow us to pop to a new root page. Instead, we need to inject the new root page and then pop to it.
                        Navigation
                        .InsertPageBefore(page, Navigation.NavigationStack[0]);

                        return Navigation
                        .PopToRootAsync(false)
                        .ToObservable();
                    }
                }
                else
                {
                    return Navigation
                    .PushAsync(page, animate)
                    .ToObservable();
                }
            }));
        }
        protected virtual void PopulateOpenGraph(ResultExecutingContext filterContext, IPageViewModel<SitePage> model)
        {
            var siteUrl = SiteDefinition.Current.SiteUrl.ToString();
            siteUrl = siteUrl.TrimEnd('/');

            // When in preview mode, this is also run for some of the block, they have no CurrentPage
            if (model.CurrentPage == null)
                return;

            OpenGraphModel openGraph = new OpenGraphModel();
            openGraph.Url = siteUrl + _urlResolver.GetUrl(model.CurrentPage.ContentLink);
            openGraph.ContentType = "article";

            // The list view model works best
            var listItem = model.CurrentPage as IHasListViewContentItem;
            if (listItem != null)
            {
                var listItemModel = listItem.GetListViewContentItem();
                openGraph.Description = listItemModel.Intro;
                openGraph.Title = listItemModel.Title;
                if (listItemModel.ImageUrl != null)
                {
                    openGraph.ImageUrl = siteUrl +
                                         _urlResolver.GetUrl(new UrlBuilder(listItemModel.ImageUrl), ContextMode.Default)
                                         + "?preset=ogpage";
                }
            }
            else
            {
                openGraph.Title = model.CurrentPage.MetaTitle;
                openGraph.Description = model.CurrentPage.MetaDescription;
                // See if there is an image we can use
                var imageUrlProp = model.CurrentPage.GetPropertyValue<Url>("ListViewImage");
                if (imageUrlProp != null)
                {
                    var imageUrl = _urlResolver.GetUrl(new UrlBuilder(imageUrlProp), ContextMode.Default);
                    openGraph.ImageUrl = siteUrl + imageUrl + "?preset=ogpage";
                }
            }
            openGraph.Description = HtmlHelpers.ScrubHtml(openGraph.Description);

            filterContext.Controller.ViewBag.OpenGraph = openGraph;
        }
Пример #38
0
 public Task DisplayPage(IPageViewModel pageViewModel)  
 {
     return TaskEx.Run(() => ViewNavigationService.CurrentPage = pageViewModel);
 }
        /// <summary>
        /// Loads all pages to main container
        /// </summary>
        public void LoadPages()
        {
            try
            {
                // Adds view model site's to each container
                GeneratePatchViewModels.Add(new GeneratePatchViewModel());
                GeneratePatchViewModels.Add(new GeneratePatchFolderViewModel());
                LayPatchViewModels.Add(new LayPatchViewModel());
                LayPatchViewModels.Add(new LayPatchFolderViewModel());
                RollbackViewModels.Add(new RollbackChangesViewModel());
                RollbackViewModels.Add(new RollbackChangesFolderViewModel());                
                HelpViewModels.Add(new HelpViewModel());

                PageViewModels.AddRange(_generatePatchViewModels);
                PageViewModels.AddRange(_layPatchViewModels);
                PageViewModels.AddRange(_rollbackViewModels);
                PageViewModels.AddRange(_helpViewModels);
            }
            catch (ArgumentNullException ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                // Set starting page
                CurrentPageViewModel = GeneratePatchViewModels[0];
            }
        }
        private void ChangeViewModel(IPageViewModel viewModel)
        {
            log.Info("Changing to view model: " + viewModel.Name);

            if (!PageViewModels.Contains(viewModel))
                PageViewModels.Add(viewModel);

            CurrentPageViewModel = PageViewModels.FirstOrDefault(vm => vm == viewModel);
        }
 public ChangePageMessage(IPageViewModel aModel)
 {
     ViewModel = aModel;
 }
Пример #42
0
 private void HandleChangeViewModelCommand(object parameter)
 {
     var newCurrentViewModel = parameter as IPageViewModel;
     this.CurrentViewModel = newCurrentViewModel;
 }
 /// <summary>
 /// Updates the view model
 /// </summary>
 /// <param name="viewModel">
 /// The view model.
 /// </param>
 /// <returns>
 /// boolean if failed or suceeded
 /// </returns>
 public bool Update(IPageViewModel viewModel)
 {
     this.pageService.Update(viewModel.Page);
     return true;
 }
Пример #44
0
 private void ChangeCurrentPageViewModel(IPageViewModel pvm)
 {
     CurrentPageViewModel = pvm;
 }
Пример #45
0
 public Task DisplayPage(IPageViewModel pageViewModel)
 {
     return TaskEx.Run(() => CurrentPage = pageViewModel);
 }
Пример #46
0
 public void InjectPage(string pageKey, IPageViewModel viewModel)
 {
     pages.Add(pageKey, viewModel);
 }
Пример #47
0
 public MainViewModel()
 {
     AppDelegate.Instance.MW = new MainWindowViewModel();
     CurrentPageViewModel = AppDelegate.Instance.MW;
     titleText = _currentPageViewModel.Name;
     RaisePropertyChanged("Preloader");
     RaisePropertyChanged("CurrentPageViewModel");
 }
Пример #48
0
 public StartPage(IPageViewModel viewModel)
 {
     Debug.WriteLine(GetType().Name + " created.");
     InitializeComponent();
     DataContext = viewModel;
 }
        private void ChangeViewModel(IPageViewModel viewModel)
        {
            if (!PageViewModels.Contains(viewModel))
                PageViewModels.Add(viewModel);

            CurrentPageViewModel = PageViewModels.FirstOrDefault(vm => vm == viewModel);
            CurrentPageTitle = CurrentPageViewModel != null ? CurrentPageViewModel.TitleName : "";
        }
 public bool Add(IPageViewModel viewModel)
 {
     this.pageService.Add(viewModel.Page);
     return true;
 }