コード例 #1
0
        public MainWindowViewModel(IFooterNavigationViewModel footer, IContentViewModel content, ITaskService taskService)
        {
            _taskService = taskService;
            LogOutCommand = new DelegateCommand(() =>
            {
                LogOut(content);
            });

            var task = _taskService.GetOrCreateTask(Thread.CurrentPrincipal.Identity.Name);
            _taskService.PrepareWorkspaceForTask(task.Id);

            if(task == null)
                throw new ArgumentException("Task cannot be null");

            Footer = footer;
            Content = content;
            footer.NavigationHappened += OnFooterNavigation;

            if (task.CurrentDocument == null){
                footer.GoToFirstFile.Execute().Wait();
            }
            else
            {
                var path = Footer.LoadDocumentAndReturnItsPath(task.CurrentDocument.Name);
                Content.ImageVisualization.FilePath = path;
                Content.Fields.TotalFieldsNumber = task.Documents.Count;
                Content.Fields.TaskId = task.Id;
                content.Fields.OnNavigationHappened(task, true);
            }
        }
コード例 #2
0
 public MainWindowViewModel(
     IEmailNavigationViewModel emailNavigationViewModel,
     IContentViewModel contentViewModel)
 {
     EmailNavigationViewModel = emailNavigationViewModel;
     ContentViewModel         = contentViewModel;
 }
コード例 #3
0
        public WLLPage(IContentViewModel vmContext)
        {
            InitializeComponent();

            BindingContext = vmContext;

            XamlBindedScrollView.Content = CreateGridOfButtons(vmContext as WLLViewModel);
        }
コード例 #4
0
 protected async Task <bool> UpdateRegionAsync(IContentViewModel content, string regionName)
 {
     using (LoadingState.Session())
     {
         var visualizerFactory = ServiceProvider.GetRequiredService <IDisplayCoordinatorFactory>();
         var visualizer        = visualizerFactory.Create(content);
         return(await visualizer.DisplayAsync(content, new RegionArguments(this, regionName)));
     }
 }
コード例 #5
0
        public ContentView(IContentViewModel contentViewModel)
        {
            InitializeComponent();

            if (!DesignerProperties.GetIsInDesignMode(this))
            {
                DataContext = contentViewModel ?? ServiceLocator.Current.GetInstance<IContentViewModel>();
            }
        }
コード例 #6
0
 public void Load(IContentViewModel contentViewModel)
 {
     foreach (var email in _navigationDataProvider.GetEmails())
     {
         Emails.Add(
             new EmailViewModel(
                 email,
                 contentViewModel));
     }
 }
コード例 #7
0
 public AddNewProgramPageViewModel(IContentViewModel contentViewModel)
 {
     this.ContentViewModel = contentViewModel;
     this.Categories       = new CategoriesViewModel();
     this.Exercises        = new ExercisesViewModel();
     this.FitnessProgram   = new FitnessProgramViewModel();
     this.SuitableFor      = new List <string>();
     this.SuitableFor.Add("Novice");
     this.SuitableFor.Add("Intermediate");
     this.SuitableFor.Add("Advanced");
 }
コード例 #8
0
 public AddNewProgramPageViewModel(IContentViewModel contentViewModel)
 {
     this.ContentViewModel = contentViewModel;
     this.Categories = new CategoriesViewModel();
     this.Exercises = new ExercisesViewModel();
     this.FitnessProgram = new FitnessProgramViewModel();
     this.SuitableFor = new List<string>();
     this.SuitableFor.Add("Novice");
     this.SuitableFor.Add("Intermediate");
     this.SuitableFor.Add("Advanced");
 }
コード例 #9
0
        private static void LogOut(IContentViewModel content)
        {
            Thread.CurrentPrincipal = null;

            Settings.Default["IsAutoLogin"] = false;
            Settings.Default.Save();
            var view = new Login();
            Application.Current.MainWindow.Close();
            Application.Current.MainWindow = view;
            view.Show();
            content.Dispose();
        }
コード例 #10
0
ファイル: MainViewModel.cs プロジェクト: Corne/VOC
 public async Task Update(IContentViewModel value)
 {
     var current = _content;
     if (Set(ref _content, value, nameof(Content)))
     {
         if (current != null)
         {
             await current.OnClose();
         }
         await _content.OnNavigate();
     }
 }
コード例 #11
0
ファイル: MainViewModel.cs プロジェクト: pmfai25/WPFTemplate
        public async Task Update(IContentViewModel value)
        {
            var current = _content;

            if (Set(ref _content, value, nameof(Content)))
            {
                if (current != null)
                {
                    await current.OnClose();
                }
                await _content.OnNavigate();
            }
        }
コード例 #12
0
ファイル: EmailViewModel.cs プロジェクト: mattril3y/Emailzing
        public EmailViewModel(
            Email email,
            IContentViewModel contentViewModel)
        {
            Email   = email;
            Title   = email.Title;
            From    = email.From;
            Day     = email.Day;
            Content = email.Content;

            _contentViewModel = contentViewModel;

            OpenEmailCommand = new DelegateCommand(OnOpenEmailCommandExecute);
        }
コード例 #13
0
 public void AddTo <T>(IContentViewModel navigationViewModel) where T : INavigationViewModel
 {
     if (_viewModelsICanNavigateTo.ContainsKey(typeof(T)))
     {
         var existingListValue = _viewModelsICanNavigateTo[typeof(T)];
         if (!existingListValue.Contains(navigationViewModel))
         {
             existingListValue.Add(navigationViewModel);
         }
     }
     else if (!_viewModelsICanNavigateTo.ContainsKey(typeof(T)))
     {
         IList <IContentViewModel> newListValue = new List <IContentViewModel>();
         newListValue.Add(navigationViewModel);
         _viewModelsICanNavigateTo.Add(typeof(T), (List <IContentViewModel>)newListValue);
     }
 }
コード例 #14
0
        private async void OnLoadFile(string filePath)
        {
            try
            {
                ToolBar.LoadingEnabled = false;

                var file = new File(filePath);

                StatusBar.File = file;

                var cancellationSource = new CancellationTokenSource();
                var progressVM         = new FileLoadingProgressViewModel(file.Size, cancellationSource);
                Content = progressVM;

                await file.LoadAsync(cancellationSource.Token, progressVM.Progress);

                if (file.CurrentStatus != Status.Canceled)
                {
                    Content = new LoadedContentViewModel()
                    {
                        LoadedData = file.LoadedData
                    };
                }
                else
                {
                    StatusBar.File = null;
                    Content        = null;
                }
            }
            catch (Exception e)
            {
                MessageBox.Show($"Cannot open file {filePath}:\n{e.Message}");
            }
            finally
            {
                ToolBar.LoadingEnabled = true;
            }
        }
コード例 #15
0
        private async Task<bool> ViewContentAsync(IContentViewModel content)
        {
            if (content == null)
                return false;

            this.currentContent = content;
            await content.OnSelectedAsync(this.page, this.progress);
            this.IsListActive = false;
            NotifyContentCommands();
            return true;
        }
コード例 #16
0
 public void SetContentAsActive(IContentViewModel content)
 {
     this.viewModelWrapper.SetContentAsActive(content);
     this.viewModelWrapper.IsListActive = false;
     NotifyAppBarCommands();
 }
コード例 #17
0
        public Task<bool> ViewAsync(IContentViewModel content)
        {
            if (content is IListViewModel)
                return ViewListAsync(content as IListViewModel);

            return ViewContentAsync(content);
        }
コード例 #18
0
        public static IHtmlString RenderOpenGraphMetaData(this HtmlHelper helper, IContentViewModel <IContent> contentViewModel)
        {
            var metaTitle     = (contentViewModel.CurrentContent as FoundationPageData)?.MetaTitle ?? contentViewModel.CurrentContent.Name;
            var defaultLocale = EPiServer.Globalization.GlobalizationSettings.CultureLanguageCode;
            IEnumerable <string> alternateLocales = null;
            string contentType            = null;
            string imageUrl               = null;
            IEnumerable <string> category = null;
            string   brand         = null;
            string   priceAmount   = null;
            Currency priceCurrency = null;

            if (contentViewModel.CurrentContent is FoundationPageData && ((FoundationPageData)contentViewModel.CurrentContent).PageImage != null)
            {
                imageUrl = GetUrl(((FoundationPageData)contentViewModel.CurrentContent).PageImage);
            }
            else
            {
                imageUrl = GetDefaultImageUrl();
            }

            if (contentViewModel.CurrentContent is FoundationPageData pageData)
            {
                alternateLocales = pageData.ExistingLanguages.Where(culture => culture.TextInfo.CultureName != defaultLocale)
                                   .Select(culture => culture.TextInfo.CultureName.Replace('-', '_'));
            }
            else if (contentViewModel.CurrentContent is EntryContentBase entryContent)
            {
                alternateLocales = entryContent.ExistingLanguages.Where(culture => culture.TextInfo.CultureName != defaultLocale)
                                   .Select(culture => culture.TextInfo.CultureName.Replace('-', '_'));
            }

            if (contentViewModel.CurrentContent is FoundationPageData)
            {
                if (((FoundationPageData)contentViewModel.CurrentContent).MetaContentType != null)
                {
                    contentType = ((FoundationPageData)contentViewModel.CurrentContent).MetaContentType;
                }
                else
                {
                    var pageType = _contentTypeRepository.Value.Load(contentViewModel.CurrentContent.GetOriginalType());
                    contentType = pageType.DisplayName;
                }
            }

            if (contentViewModel is GenericProductViewModel model)
            {
                brand         = model.CurrentContent.Brand;
                priceAmount   = model.ListingPrice == null || model.ListingPrice.Amount == 0 ? null : model.ListingPrice.ToString().Remove(0, 1);
                priceCurrency = model.ListingPrice.Currency;
                category      = GetNodes(model.CurrentContent);
            }

            switch (contentViewModel.CurrentContent)
            {
            case HomePage homePage:
                var openGraphHomePage = new OpenGraphHomePage(metaTitle, new OpenGraphImage(imageUrl), GetUrl(homePage.ContentLink))
                {
                    Description      = homePage.PageDescription,
                    Locale           = defaultLocale.Replace('-', '_'),
                    AlternateLocales = alternateLocales,
                    ContentType      = contentType,
                    Category         = homePage.Categories?.Select(c => c.ToString()),
                    ModifiedTime     = homePage.Changed,
                    PublishedTime    = homePage.StartPublish ?? null,
                    ExpirationTime   = homePage.StopPublish ?? null
                };

                return(helper.OpenGraph(openGraphHomePage));

            case LocationItemPage locationItemPage:
                var openGraphLocationItemPage = new OpenGraphLocationItemPage(metaTitle, new OpenGraphImage(imageUrl), GetUrl(contentViewModel.CurrentContent.ContentLink))
                {
                    Description      = locationItemPage.PageDescription,
                    Locale           = defaultLocale.Replace('-', '_'),
                    AlternateLocales = alternateLocales,
                    ContentType      = contentType,
                    ModifiedTime     = locationItemPage.Changed,
                    PublishedTime    = locationItemPage.StartPublish ?? null,
                    ExpirationTime   = locationItemPage.StopPublish ?? null
                };

                var categories = new List <string>();

                if (locationItemPage.Continent != null)
                {
                    categories.Add(locationItemPage.Continent);
                }

                if (locationItemPage.Country != null)
                {
                    categories.Add(locationItemPage.Country);
                }

                openGraphLocationItemPage.Category = categories;

                var tags  = new List <string>();
                var items = ((LocationItemPage)contentViewModel.CurrentContent).Categories;
                if (items != null)
                {
                    foreach (var item in items)
                    {
                        tags.Add(_contentLoader.Value.Get <StandardCategory>(item).Name);
                    }
                }
                openGraphLocationItemPage.Tags = tags;

                return(helper.OpenGraph(openGraphLocationItemPage));

            case BlogItemPage _:
            case StandardPage _:
            case TagPage _:
                var openGraphArticle = new OpenGraphFoundationPageData(metaTitle, new OpenGraphImage(imageUrl), GetUrl(contentViewModel.CurrentContent.ContentLink))
                {
                    Description      = ((FoundationPageData)contentViewModel.CurrentContent).PageDescription,
                    Locale           = defaultLocale.Replace('-', '_'),
                    AlternateLocales = alternateLocales,
                    ContentType      = contentType,
                    ModifiedTime     = ((FoundationPageData)contentViewModel.CurrentContent).Changed,
                    PublishedTime    = ((FoundationPageData)contentViewModel.CurrentContent).StartPublish ?? null,
                    ExpirationTime   = ((FoundationPageData)contentViewModel.CurrentContent).StopPublish ?? null
                };

                return(helper.OpenGraph(openGraphArticle));

            case FoundationPageData foundationPageData:
                var openGraphFoundationPage = new OpenGraphFoundationPageData(metaTitle, new OpenGraphImage(imageUrl), GetUrl(foundationPageData.ContentLink))
                {
                    Description      = foundationPageData.PageDescription,
                    Locale           = defaultLocale.Replace('-', '_'),
                    AlternateLocales = alternateLocales,
                    Author           = foundationPageData.AuthorMetaData,
                    ContentType      = contentType,
                    Category         = foundationPageData.Categories?.Select(c => c.ToString()),
                    ModifiedTime     = foundationPageData.Changed,
                    PublishedTime    = foundationPageData.StartPublish ?? null,
                    ExpirationTime   = foundationPageData.StopPublish ?? null
                };

                return(helper.OpenGraph(openGraphFoundationPage));

            case NodeContentBase nodeContentBase:
                var openGraphCategory = new OpenGraphGenericNode(metaTitle, new OpenGraphImage(imageUrl), GetUrl(nodeContentBase.ContentLink))
                {
                    Locale           = defaultLocale.Replace('-', '_'),
                    AlternateLocales = alternateLocales,
                    PublishedTime    = nodeContentBase.StartPublish ?? null,
                    ExpirationTime   = nodeContentBase.StopPublish ?? null
                };

                return(helper.OpenGraph(openGraphCategory));

            case EntryContentBase entryContentBase:
                var entryImageUrl = entryContentBase.GetAssets <IContentImage>(_contentLoader.Value, _urlResolver.Value).FirstOrDefault();
                if (string.IsNullOrEmpty(entryImageUrl))
                {
                    entryImageUrl = GetDefaultImageUrl();
                }

                var openGraphEntry = new OpenGraphGenericProduct(
                    entryContentBase.DisplayName,
                    new OpenGraphImage(entryImageUrl),
                    GetUrl(entryContentBase.ContentLink))
                {
                    Locale           = defaultLocale.Replace('-', '_'),
                    AlternateLocales = alternateLocales,
                    Category         = category,
                    Brand            = brand,
                    PriceAmount      = priceAmount,
                    PriceCurrency    = priceCurrency
                };

                return(helper.OpenGraph(openGraphEntry));
            }

            return(new HtmlString(string.Empty));
        }
コード例 #19
0
 internal void SetContentAsActive(IContentViewModel content)
 {
     this.currentContent = content;
 }
コード例 #20
0
ファイル: ContentScope.cs プロジェクト: Corne/WPFTemplate
 public void Dispose()
 {
     //make sure to set content to null, else the object itself will not be cleaned up
     Content = null;
     scope.Dispose();
 }
コード例 #21
0
        public static IHtmlString RenderOpenGraphMetaData(this HtmlHelper helper, IContentViewModel <IContent> contentViewModel)
        {
            var metaTitle     = (contentViewModel.CurrentContent as FoundationPageData)?.MetaTitle ?? contentViewModel.CurrentContent.Name;
            var defaultLocale = EPiServer.Globalization.GlobalizationSettings.CultureLanguageCode;
            IEnumerable <string> alternateLocales = null;
            string contentType = null;
            string imageUrl    = null;

            if (contentViewModel.CurrentContent is FoundationPageData && ((FoundationPageData)contentViewModel.CurrentContent).PageImage != null)
            {
                imageUrl = GetUrl(((FoundationPageData)contentViewModel.CurrentContent).PageImage);
            }
            else
            {
                imageUrl = GetDefaultImageUrl();
            }

            if (contentViewModel.CurrentContent is FoundationPageData pageData)
            {
                alternateLocales = pageData.ExistingLanguages.Where(culture => culture.TextInfo.CultureName != defaultLocale)
                                   .Select(culture => culture.TextInfo.CultureName.Replace('-', '_'));
            }

            if (contentViewModel.CurrentContent is FoundationPageData)
            {
                if (((FoundationPageData)contentViewModel.CurrentContent).MetaContentType != null)
                {
                    contentType = ((FoundationPageData)contentViewModel.CurrentContent).MetaContentType;
                }
                else
                {
                    var pageType = _contentTypeRepository.Value.Load(contentViewModel.CurrentContent.GetOriginalType());
                    contentType = pageType.DisplayName;
                }
            }

            switch (contentViewModel.CurrentContent)
            {
            case CmsHomePage homePage:
                var openGraphHomePage = new OpenGraphHomePage(metaTitle, new OpenGraphImage(imageUrl), GetUrl(homePage.ContentLink))
                {
                    Description      = homePage.PageDescription,
                    Locale           = defaultLocale.Replace('-', '_'),
                    AlternateLocales = alternateLocales,
                    ContentType      = contentType,
                    Category         = GetCategoryNames(homePage.Categories),
                    ModifiedTime     = homePage.Changed,
                    PublishedTime    = homePage.StartPublish ?? null,
                    ExpirationTime   = homePage.StopPublish ?? null
                };

                return(helper.OpenGraph(openGraphHomePage));

            case LocationItemPage locationItemPage:
                var openGraphLocationItemPage = new OpenGraphLocationItemPage(metaTitle, new OpenGraphImage(imageUrl), GetUrl(contentViewModel.CurrentContent.ContentLink))
                {
                    Description      = locationItemPage.PageDescription,
                    Locale           = defaultLocale.Replace('-', '_'),
                    AlternateLocales = alternateLocales,
                    ContentType      = contentType,
                    ModifiedTime     = locationItemPage.Changed,
                    PublishedTime    = locationItemPage.StartPublish ?? null,
                    ExpirationTime   = locationItemPage.StopPublish ?? null
                };

                var categories = new List <string>();

                if (locationItemPage.Continent != null)
                {
                    categories.Add(locationItemPage.Continent);
                }

                if (locationItemPage.Country != null)
                {
                    categories.Add(locationItemPage.Country);
                }

                openGraphLocationItemPage.Category = categories;

                var tags  = new List <string>();
                var items = ((LocationItemPage)contentViewModel.CurrentContent).Categories;
                if (items != null)
                {
                    foreach (var item in items)
                    {
                        tags.Add(_contentLoader.Value.Get <StandardCategory>(item).Name);
                    }
                }
                openGraphLocationItemPage.Tags = tags;

                return(helper.OpenGraph(openGraphLocationItemPage));

            case BlogItemPage _:
            case StandardPage _:
            case TagPage _:
                var openGraphArticle = new OpenGraphFoundationPageData(metaTitle, new OpenGraphImage(imageUrl), GetUrl(contentViewModel.CurrentContent.ContentLink))
                {
                    Description      = ((FoundationPageData)contentViewModel.CurrentContent).PageDescription,
                    Locale           = defaultLocale.Replace('-', '_'),
                    AlternateLocales = alternateLocales,
                    ContentType      = contentType,
                    ModifiedTime     = ((FoundationPageData)contentViewModel.CurrentContent).Changed,
                    PublishedTime    = ((FoundationPageData)contentViewModel.CurrentContent).StartPublish ?? null,
                    ExpirationTime   = ((FoundationPageData)contentViewModel.CurrentContent).StopPublish ?? null
                };

                return(helper.OpenGraph(openGraphArticle));

            case FoundationPageData foundationPageData:
                var openGraphFoundationPage = new OpenGraphFoundationPageData(metaTitle, new OpenGraphImage(imageUrl), GetUrl(foundationPageData.ContentLink))
                {
                    Description      = foundationPageData.PageDescription,
                    Locale           = defaultLocale.Replace('-', '_'),
                    AlternateLocales = alternateLocales,
                    Author           = foundationPageData.AuthorMetaData,
                    ContentType      = contentType,
                    Category         = GetCategoryNames(foundationPageData.Categories),
                    ModifiedTime     = foundationPageData.Changed,
                    PublishedTime    = foundationPageData.StartPublish ?? null,
                    ExpirationTime   = foundationPageData.StopPublish ?? null
                };

                return(helper.OpenGraph(openGraphFoundationPage));
            }

            return(new HtmlString(string.Empty));
        }
コード例 #22
0
 public void SetContentAsActive(IContentViewModel content) { }
コード例 #23
0
 public ExercisePageViewModel(IContentViewModel contentViewModel)
 {
     this.ContentViewModel = contentViewModel;
 }
コード例 #24
0
ファイル: ContentScope.cs プロジェクト: pmfai25/WPFTemplate
 public void Dispose()
 {
     //make sure to set content to null, else the object itself will not be cleaned up
     Content = null;
     scope.Dispose();
 }
コード例 #25
0
 public FitnessProgramPageViewModel(IContentViewModel contentViewModel)
 {
     this.ContentViewModel = contentViewModel;
 }
コード例 #26
0
 public ExercisePageViewModel(IContentViewModel contentViewModel)
 {
     this.ContentViewModel = contentViewModel;
 }
コード例 #27
0
 public MainPageViewModel(IContentViewModel contentViewModel)
 {
     this.ContentViewModel = contentViewModel;
 }
コード例 #28
0
 public FitnessProgramPageViewModel(IContentViewModel contentViewModel)
 {
     this.ContentViewModel = contentViewModel;
 }