예제 #1
0
        private async Task LoadGameSystems()
        {
            _presentation.ShowLoadingAnimation();

            try
            {
                var apiClient = _session.ActiveApiClient;

                var systems = await apiClient.GetGameSystemSummariesAsync(CancellationToken.None);

                _gameSystems = systems.Where(i => i.GameFileExtensions.Count > 0).OrderBy(i => i.DisplayName).ToList();

                SelectGameSystem.Options = _gameSystems.Select(i => new SelectListItem
                {
                    Text  = i.DisplayName,
                    Value = i.Name
                }).ToList();

                if (_gameSystems.Count > 0)
                {
                    SelectGameSystem.SelectedValue = _gameSystems[0].Name;
                }

                BtnSubmit.Visibility = Visibility.Visible;
                _presentation.HideLoadingAnimation();
            }
            catch (Exception ex)
            {
                _presentation.HideLoadingAnimation();
                _presentation.ShowDefaultErrorMessage();

                BtnSubmit.Visibility = Visibility.Collapsed;
            }
        }
예제 #2
0
        /// <summary>
        /// Navigates to home page.
        /// </summary>
        /// <returns>DispatcherOperation.</returns>
        public async Task NavigateToHomePage()
        {
            _presentationManager.ShowLoadingAnimation();

            try
            {
                var userId = _sessionFactory().CurrentUser.Id;

                var userConfig = await _config.GetUserTheaterConfiguration(userId);

                var homePages = _presentationManager.HomePages.ToList();

                var homePage = homePages.FirstOrDefault(i => string.Equals(i.Name, userConfig.HomePage)) ??
                               homePages.FirstOrDefault(i => string.Equals(i.Name, "Default")) ??
                               homePages.First();

                var rootItem = await _apiClient.GetRootFolderAsync(userId);

                await Navigate(homePage.GetHomePage(rootItem));
            }
            finally
            {
                _presentationManager.HideLoadingAnimation();
            }
        }
예제 #3
0
        /// <summary>
        /// Navigates to home page.
        /// </summary>
        /// <returns>DispatcherOperation.</returns>
        public Task NavigateToHomePage()
        {
            var task = new TaskCompletionSource <bool>();

            App.Instance.ApplicationWindow.Dispatcher.InvokeAsync(async() =>
            {
                _presentationManager.ShowLoadingAnimation();
                try
                {
                    var userId = _sessionFactory().CurrentUser.Id;

                    var userConfig = _config.GetUserTheaterConfiguration(userId);

                    var homePages = _presentationManager.HomePages.ToList();

                    var homePage = homePages.FirstOrDefault(i => string.Equals(i.Name, userConfig.HomePage)) ??
                                   homePages.FirstOrDefault(i => string.Equals(i.Name, "Default")) ??
                                   homePages.First();

                    var rootItem = await _apiClient.GetRootFolderAsync(userId);

                    await Navigate(homePage.GetHomePage(rootItem));

                    //Clear history on home page navigate so that backspace on home page can lead to system options
                    ClearHistory();
                }
                finally
                {
                    _presentationManager.HideLoadingAnimation();
                    task.TrySetResult(true);
                }
            });

            return(task.Task);
        }
예제 #4
0
        protected override async Task <IEnumerable <TabItem> > GetSections()
        {
            _presentationManager.ShowLoadingAnimation();

            try
            {
                var item = ItemViewModel;

                var criticReviews = await GetCriticReviews(item.Item);

                return(GetMenuList(item.Item, criticReviews));
            }
            finally
            {
                _presentationManager.HideLoadingAnimation();
            }
        }
예제 #5
0
        protected override async Task <IEnumerable <TabItem> > GetSections()
        {
            _presentationManager.ShowLoadingAnimation();

            try
            {
                var item = ItemViewModel;

                var themeMediaTask    = GetThemeMedia(item.Item);
                var criticReviewsTask = GetCriticReviews(item.Item);

                await Task.WhenAll(themeMediaTask, criticReviewsTask);

                return(GetMenuList(item.Item, themeMediaTask.Result, criticReviewsTask.Result));
            }
            finally
            {
                _presentationManager.HideLoadingAnimation();
            }
        }
        private async Task ReloadItems(bool isInitialLoad)
        {
            if (HasIndexOptions && CurrentIndexOption == null)
            {
                return;
            }

            if (ShowLoadingAnimation)
            {
                _presentationManager.ShowLoadingAnimation();
            }

            try
            {
                var result = await _getItemsDelegate(this);

                var items = result.Items;

                int?selectedIndex = null;

                if (isInitialLoad && AutoSelectFirstItem)
                {
                    selectedIndex = 0;
                }

                MedianPrimaryImageAspectRatio = result.Items.MedianPrimaryImageAspectRatio();

                _listItems.Clear();

                var imageTypes = GetPreferredImageTypes();

                var childWidth         = Convert.ToInt32(ImageDisplayWidth);
                var imageDisplayHeight = Convert.ToInt32(GetImageDisplayHeight());

                var viewModels = items.Select(
                    i =>
                {
                    var vm = new ItemViewModel(_apiClient, _imageManager, _playbackManager,
                                               _presentationManager, _logger, _serverEvents)
                    {
                        DownloadPrimaryImageAtExactSize = DownloadImageAtExactSize ?? IsCloseToMedianPrimaryImageAspectRatio(i),
                        ImageHeight = imageDisplayHeight,
                        ImageWidth  = childWidth,
                        Item        = i,
                        ViewType    = ViewType,
                        DisplayName = DisplayNameGenerator == null ? i.Name : DisplayNameGenerator(i),
                        DownloadImagesAtExactSize = DownloadImageAtExactSize ?? true,
                        PreferredImageTypes       = imageTypes,
                        ListType  = ListType,
                        ShowTitle = ShowTitle
                    };

                    var stretch = ImageStretch;

                    if (!stretch.HasValue && imageTypes.Length > 0)
                    {
                        var exact = imageTypes[0] == ImageType.Primary ? vm.DownloadPrimaryImageAtExactSize : vm.DownloadImagesAtExactSize;
                        stretch   = exact ? Stretch.UniformToFill : Stretch.Uniform;
                    }

                    if (stretch.HasValue)
                    {
                        vm.ImageStretch = stretch.Value;
                    }

                    return(vm);
                }
                    ).ToList();

                _listItems.AddRange(viewModels);

                ItemCount = items.Length;

                UpdateContainerSizes();

                if (selectedIndex.HasValue)
                {
                    ListCollectionView.MoveCurrentToPosition(selectedIndex.Value);
                }
            }
            catch (Exception)
            {
                _presentationManager.ShowDefaultErrorMessage();
            }
            finally
            {
                if (ShowLoadingAnimation)
                {
                    _presentationManager.HideLoadingAnimation();
                }
            }
        }