public IActionResult Index()
        {
            var currentUserId = this._signInManager.UserManager.GetUserId(HttpContext.User);
            // selects non approved media
            var MediaList = _mediaService.GetAllMedia().Where(m => m.IsPublic != true);

            // maps to listviewmodel
            var mediaListViewModel = new List <MediaListViewModel>();

            foreach (var med in MediaList)
            {
                var model =
                    new MediaListViewModel()
                {
                    Id                   = med.Id,
                    Photo                = med.Photo,
                    Titel                = med.Titel,
                    IsChecked            = false,
                    AddedByMediaUserName = med.MediaUser.UserName
                };

                mediaListViewModel.Add(model);
            }
            var MediaOverviewVM = new MediaOverviewViewModel()
            {
                UnApprovedMediaList = mediaListViewModel
            };


            return(View(MediaOverviewVM));
        }
Exemplo n.º 2
0
        public async Task <IActionResult> Index()
        {
            List <MediaListViewModel> XpList = new List <MediaListViewModel>();
            IEnumerable <Media>       medias = await _dbContext.medias.Include(x => x.Category).ToListAsync();

            IEnumerable <Media> sortedmedias = medias.OrderBy(x => x.Date);
            var media = new MediaEditViewModel();

            foreach (var thing in sortedmedias)
            {
                MediaListViewModel Xp = new MediaListViewModel()
                {
                    Id          = thing.Id,
                    Category    = thing.Category.Name,
                    Title       = (string)thing.Title,
                    Description = (string)thing.Description,
                    Creator     = (string)thing.Creator,
                    Date        = (DateTime)thing.Date,
                    Rating      = (int)thing.Rating,
                    PhotoUrl    = thing.PhotoUrl,
                    Watched     = thing.Watched
                };
                XpList.Add(Xp);
            }
            return(View(XpList));
        }
 public ImageViewModel(Media media)
 {
     CurrentMedia = media;
     CurrentUser = CurrentMedia.user;
     RelatedMedia = new UserMedia(CurrentUser);
     Init();
 }
Exemplo n.º 4
0
        public async Task <IActionResult> MediaList(MediaFilter filter)
        {
            filter.UserId = User.Identity.GetNameIdGuid();
            MediaListViewModel mediaList = await _mediaListViewModelService.CreateViewModel(filter);

            return(View(mediaList));
        }
Exemplo n.º 5
0
        // GET: Media/Search
        public ActionResult Search()
        {
            var model = new MediaListViewModel();

            model.Medias = MediaService.GetAll();

            return(View(model));
        }
Exemplo n.º 6
0
        public void SetCollection(MediaListCollection collection)
        {
            SetContentView(Resource.Layout.Activity_MediaLists);

            _collection = collection;

            var pagerAdapter = new FragmentlessViewPagerAdapter();

            _recyclerAdapters = new List <MediaListRecyclerAdapter>();

            var listOrder    = GetListOrder();
            var orderedLists = !listOrder.Any()
                ? _collection.Lists
                : _collection.Lists.Where(x =>
                                          listOrder.All(y => y.Key != x.Name) || listOrder.FirstOrDefault(y => y.Key == x.Name).Value)
                               .OrderBy(x => listOrder.FindIndex(y => y.Key == x.Name)).ToList();

            _currentSort          = Presenter.GetMediaListSortType(_mediaType);
            _currentSortDirection = Presenter.GetMediaListSortDirection(_mediaType);

            if (_currentSort != MediaListSortComparer.MediaListSortType.NoSort)
            {
                _collection.Lists.ForEach(list =>
                                          list.Entries.Sort(new MediaListSortComparer(_currentSort, _currentSortDirection)));
            }

            foreach (var statusList in orderedLists)
            {
                if (statusList.Entries?.Any() != true)
                {
                    continue;
                }

                var adapter = new MediaListRecyclerAdapter(this, statusList, Presenter.GetCardType(),
                                                           item => MediaListViewModel.CreateViewModel(item, _collection.User.MediaListOptions.ScoreFormat,
                                                                                                      Settings.DisplayUpcomingEpisodeTimeAsCountdown, Settings.MediaListProgressDisplay, true,
                                                                                                      Settings.ShowEpisodeAddButtonForRepeatingMedia),
                                                           Presenter.GetMediaListItemViewType(), Presenter.GetHighlightPriorityItems(),
                                                           Presenter.GetUseLongClickForEpisodeAdd());

                adapter.SetFilter(_filterModel);

                _recyclerAdapters.Add(adapter);
                var listView = LayoutInflater.Inflate(Resource.Layout.View_List, null);
                listView.FindViewById <RecyclerView>(Resource.Id.List_RecyclerView).SetAdapter(adapter);
                pagerAdapter.AddView(listView, statusList.Name);
            }

            _viewPager.Adapter = pagerAdapter;
            _tabLayout.SetupWithViewPager(_viewPager);

            SetupToolbar(_collection.User.Name);
        }
        public static MediaListViewModel CreatePopularProducts(this IRepository repository, Guid?pageId)
        {
            var viewModel = new MediaListViewModel();

            viewModel.Title = StringResource.NavBar_PopularProducts;
            viewModel.Items = repository.GetProductsByPopularity(3).Select(product => new MediaItemViewModel
            {
                Name = product.Name,
                Link = new NavigationLink {
                    PageId = product.VersionId, ActionName = "Page", ControllerName = "Main"
                },
                ImageThumbnailId = product.MainImageId
            })
                              .ToList();

            return(viewModel);
        }
        public MediaItemViewModel(MediaListViewModel listViewModel, MediaItem mediaItem)
        {
            this.listViewModel = listViewModel;
            MediaItem = mediaItem;

            RaisePropertyChanged("Title");

            // This app caches all images by loading the BitmapImage
            // when the item is created, but production apps would
            // use a more resource friendly paging mechanism or
            // just use PreviewImageUri directly.
            //
            // The reason we cache here is to avoid audio gaps 
            // between tracks on transitions when changing artwork.
            PreviewImage = new BitmapImage();
            PreviewImage.UriSource = mediaItem.PreviewImageUri;
        }
Exemplo n.º 9
0
 public MediaPlayerView()
 {
     // Inicializa los componentes
     InitializeComponent();
     // Inicializa el DataContext
     grdView.DataContext = ViewModel = new MediaListViewModel();
     FormView            = new BaseFormView(ViewModel);
     // Crea el temporizador
     _tmrTimer          = new System.Timers.Timer(TimeSpan.FromSeconds(2).TotalMilliseconds);
     _tmrTimer.Elapsed += (sender, args) => Dispatcher.Invoke(new Action(() => UpdateProgressBar()), null);
     // Asigna los manejadores de eventos
     //Unloaded += (sender, args) => StopPlay();
     ViewModel.Play += (sender, args) => EnqueFiles(args.Files);
     ViewModel.Stop += (sender, args) => StopPlay();
     // Asocia los manejadores de eventos del mediaplayer
     _mediaPlayer.MediaEnded  += (sender, args) => PlayNext();
     _mediaPlayer.MediaOpened += (sender, args) => ShowProgressBar();
 }
Exemplo n.º 10
0
        public IEnumerable <IPublishedContent> OverviewNested(MediaListViewModel model)
        {
            var viewModel = model.ViewModel;

            var overwritePicker = viewModel.GetPropertyValue("overviewOverwriterPicker", Enumerable.Empty <IPublishedContent>());
            var rootPicker      = viewModel.GetPropertyValue("overviewRootPicker", Enumerable.Empty <IPublishedContent>());

            if (rootPicker != null && rootPicker.Any())
            {
                var children = rootPicker
                               .First()
                               .Children
                               .Where(x => x.IsVisible() && x.DocumentTypeAlias.Equals("gridPage"))
                               .OrderByDescending(x => x.GetPropertyValue("date", x.CreateDate));

                var joinedList = overwritePicker.Concat(children).DistinctBy(x => x.Id);

                return(joinedList);
            }

            return(Enumerable.Empty <IPublishedContent>());
        }
Exemplo n.º 11
0
        public ActionResult GetPage(MediaListViewModel model)
        {
            ModelState.Clear();

            var result          = Enumerable.Empty <IPublishedContent>();
            var pageQueryString = Umbraco.GetQueryString("p", string.Empty);

            result = model.RenderMethod != RenderListMethod.Default ?
                     GetSearchTypeMethod(model.RenderMethod.ToString(), this, new object[] { model }) :
                     model.MediaList;

            model.MediaList = result;

            //If items per page isn't initiated, render the full result
            if (model.ItemsPerPage == 0)
            {
                model.ItemsPerPage = model.MediaList.Count();
            }

            model.Page       = model.Page <= 0 ? 1 : model.Page + 1;
            model.TotalPages = Math.Ceiling((decimal)result.Count() / model.ItemsPerPage);

            if (!string.IsNullOrEmpty(pageQueryString) && model.InitialLoad)
            {
                model.MediaList = model.MediaList.Take(model.ItemsPerPage * int.Parse(pageQueryString));
            }
            else
            {
                model.MediaList = model.MediaList.Skip(model.Skips).Take(model.ItemsPerPage);
            }

            if (model.MediaList != null && model.MediaList.Any())
            {
                return(PartialView($"Components/_{model.RenderPartialView}", model));
            }

            return(PartialView("_EmptySearchResult", model));
        }
Exemplo n.º 12
0
        public async Task <MediaListViewModel> CreateViewModel(MediaFilter filter)
        {
            var media = await _physicalMediaRepository.ListAsync(new PhysicalMediaMovieSpecification(filter));

            var discTypes = await _discTypeRepository.ListAllAsync();

            var watched = await _watchedRepository.ListAllAsync();

            var genres = await _genreRepository.ListAllAsync();

            var viewModel = new MediaListViewModel
            {
                MediaType     = filter.MediaType,
                Filter        = filter,
                Genres        = genres.ToList(),
                DiscTypes     = discTypes.ToList(),
                PhysicalMedia = media.ToList()
            };

            //foreach (var item in viewModel.Media)
            //{
            //    item.DiscType = discTypes.SingleOrDefault(d => d.DiscTypeId == item.DiscTypeId);
            //    item.WatchedList = watched.Where(w => w.ImdbId == item.ImdbId).ToList();
            //}

            if (filter.FilteredGenreId != null && filter.FilteredGenreId.Count > 0)
            {
                var mediaGenres = await _mediaGenreRepository.ListAsync(new MediaGenreSpecification(filter.FilteredGenreId));

                var extraGenres = await _extraGenreRepository.ListAsync(new ExtraGenreSpecification(filter.FilteredGenreId));

                viewModel.PhysicalMedia = viewModel.PhysicalMedia.Where(m => (mediaGenres.Select(mg => mg.MediaId)).Contains(m.MediaId) ||
                                                                        (extraGenres.Select(mg => mg.PhysicalMediaId)).Contains(m.PhysicalMediaId)).ToList();
            }

            return(viewModel);
        }
        public void Dispose()
        {
            if (disposed)
                return;

            if (MediaList != null)
            {
                MediaList.Dispose();
                MediaList = null; // Setter triggers vector unsubscribe logic
            }

            PlaybackSession.Dispose();

            disposed = true;
        }
Exemplo n.º 14
0
 public MediaPage()
 {
     InitializeComponent();
     BindingContext = model = new MediaListViewModel();
 }
Exemplo n.º 15
0
        private View GetMediaListCollectionView()
        {
            var mediaCollectionView = LayoutInflater.Inflate(Resource.Layout.Fragment_MediaLists, null);
            var pagerAdapter        = new FragmentlessViewPagerAdapter();

            _recyclerAdapters = new List <MediaListRecyclerAdapter>();

            var listOrder    = GetListOrder();
            var orderedLists = _collection.Lists
                               .Where(x => listOrder.FirstOrDefault(y => y.Key == x.Name).Value)
                               .OrderBy(x => listOrder.FindIndex(y => y.Key == x.Name)).ToList();

            _currentSort          = Presenter.GetMediaListSortType(_type);
            _currentSortDirection = Presenter.GetMediaListSortDirection(_type);

            if (_currentSort != MediaListSortComparer.MediaListSortType.NoSort)
            {
                _collection.Lists.ForEach(list =>
                                          list.Entries.Sort(new MediaListSortComparer(_currentSort, _currentSortDirection)));
            }

            foreach (var statusList in orderedLists)
            {
                if (statusList.Entries?.Any() != true)
                {
                    continue;
                }

                var adapter = new MediaListRecyclerAdapter(Activity, statusList, Presenter.GetCardType(),
                                                           item => MediaListViewModel.CreateViewModel(item, _collection.User.MediaListOptions.ScoreFormat,
                                                                                                      Presenter.GetDisplayTimeUntilAiringAsCountdown(), Presenter.GetProgressDisplayType(), false,
                                                                                                      Presenter.GetShowEpisodeAddButtonForRepeatingMedia()),
                                                           Presenter.GetMediaListItemViewType(), Presenter.GetHighlightPriorityItems(),
                                                           Presenter.GetUseLongClickForEpisodeAdd(),
                                                           async(viewModel, callback) =>
                {
                    if (viewModel.Model.Progress + 1 ==
                        (viewModel.Model.Media.Episodes ?? viewModel.Model.Media.Chapters))
                    {
                        EditMediaListItemDialog.Create(Activity, Presenter, viewModel.Model.Media, viewModel.Model,
                                                       _collection.User.MediaListOptions, true);
                    }
                    else
                    {
                        await Presenter.IncreaseMediaProgress(viewModel.Model);
                    }

                    callback?.Invoke();
                })
                {
                    LongClickAction = (viewModel, position) => EditMediaListItemDialog.Create(Activity, Presenter,
                                                                                              viewModel.Model.Media, viewModel.Model, _collection.User.MediaListOptions)
                };

                adapter.SetFilter(_filterModel);

                _recyclerAdapters.Add(adapter);
                var listView = LayoutInflater.Inflate(Resource.Layout.View_SwipeRefreshList, null);
                listView.FindViewById <RecyclerView>(Resource.Id.List_RecyclerView).SetAdapter(adapter);
                pagerAdapter.AddView(listView, statusList.Name);

                var swipeRefreshLayout = listView.FindViewById <SwipeRefreshLayout>(Resource.Id.List_SwipeRefreshLayout);

                if (Presenter.GetUseSwipeToRefreshOnMediaLists())
                {
                    swipeRefreshLayout.Enabled  = true;
                    swipeRefreshLayout.Refresh += (sender, e) =>
                    {
                        _collection = null;
                        RecreateFragment();
                        if (sender is SwipeRefreshLayout refreshLayout)
                        {
                            refreshLayout.Refreshing = false;
                        }
                    };
                }
                else
                {
                    swipeRefreshLayout.Enabled = false;
                }
            }

            var viewPagerView = mediaCollectionView.FindViewById <ViewPager>(Resource.Id.MediaLists_ViewPager);

            viewPagerView.Adapter = pagerAdapter;
            mediaCollectionView.FindViewById <TabLayout>(Resource.Id.MediaLists_Tabs).SetupWithViewPager(viewPagerView);

            return(mediaCollectionView);
        }
Exemplo n.º 16
0
 public ImageViewModel(User user)
 {
     RelatedMedia = new UserMedia(user);
     CurrentUser = user;
     Init();
 }
Exemplo n.º 17
0
 public MediaListPage()
 {
     InitializeComponent();
     BindingContext = _viewModel = App.Current.Services.GetService <MediaListViewModel>();
 }