Пример #1
0
        /// <summary>
        /// Switches the settings page view on or off depending on the
        /// given request in <paramref name="isSettingsPageVisibleRequest"/>.
        ///
        /// Translation Service data is saved to <seealso cref="ISettingsManager"/>
        /// if settings page is switched from visible to invisible and the
        /// <paramref name="settings"/> param is non-null.
        /// </summary>
        /// <param name="isSettingsPageVisibleRequest"></param>
        /// <param name="settings"></param>
        private void SwitchSettingsPageView(bool isSettingsPageVisibleRequest,
                                            ISettingsManager settings = null)
        {
            var settingsViewModel = CurrentPage as SettingsPageViewModel;

            if (settingsViewModel != null)
            {
                // Switch to display other than Settings page
                if (settings != null)
                {
                    // Copy data from settings viewmodel to model
                    settingsViewModel.SaveOptionsToModel(settings.Options);
                }

                // Switch pages back to normal view and dispose of settings page
                SwitchCurrentPageToNewPage(mCurrentBackPage, true);
                mCurrentBackPage      = null;
                IsSettingsPageVisible = false;
            }
            else
            {
                // Switch to display Settings page
                if (settings == null)
                {
                    settings = GetService <ISettingsManager>();
                }

                // Copy data from settings Options model to viewmodel
                var settingsVM = new SettingsPageViewModel(mSettingsPageModels);
                settingsVM.LoadOptionsFromModel(settings.Options);

                mCurrentBackPage      = SwitchCurrentPageToNewPage(settingsVM, false);
                IsSettingsPageVisible = true;
            }
        }
Пример #2
0
        /// <summary>
        /// Have a look at the page and determine whether there are any data items that require persistence.
        /// </summary>
        /// <param name="page"></param>
        /// <param name="settings"></param>
        private void SavePageSettings(PageBaseViewModel page, ISettingsManager settings)
        {
            var item = page as ISaveSettings;

            if (item != null)
            {
                item.SavePageSettings(settings);
            }
        }
        public void PopulateBaseProperties(PageBaseViewModel viewModel, IPublishedContent pageContent)
        {
            if (viewModel == null || pageContent == null)
            {
                return;
            }

            // shared seo properties can go here
        }
Пример #4
0
        /// <summary>
        /// Switch the currently shown page to the page in <paramref name="newPage"/>.
        /// The page that is current at the time of the call is disposed if <paramref name="disposeOldPage"/>
        /// is true. Otherwise, the currentpage is returned and can later on be switched in back again.
        /// </summary>
        /// <param name="newPage"></param>
        /// <param name="disposeOldPage"></param>
        /// <returns></returns>
        private PageBaseViewModel SwitchCurrentPageToNewPage(PageBaseViewModel newPage, bool disposeOldPage)
        {
            PageBaseViewModel oldPage = CurrentPage;

            CurrentPage = null;

            var freeze = newPage as IDocumentCanUnload;  // Freeze states of current page

            if (freeze != null)
            {
                freeze.OnViewUnloaded();
            }

            CurrentPage = newPage;

            freeze = oldPage as IDocumentCanUnload;    // Restore states of new current page
            if (freeze != null)
            {
                freeze.OnViewLoaded();
            }

            if (oldPage != null)
            {
                SavePageSettings(oldPage, GetService <ISettingsManager>());  // Be sure to always save changed settings from old page

                if (disposeOldPage == true)
                {
                    if (oldPage is IDisposable)
                    {
                        (oldPage as IDisposable).Dispose();
                    }

                    oldPage = null;
                }
            }

            return(oldPage);
        }
Пример #5
0
 public ActionResult Index(PageBaseViewModel viewModel)
 {
     return(CurrentTemplate(viewModel));
 }