예제 #1
0
        /// <summary>
        /// Opens the selected item with the videoplayer.
        /// </summary>
        private void OpenItemWithVideoPlayer(CachedDriveItem SelectedExplorerItem)
        {
            MediaWrapper MediaWrapper = new MediaWrapper(SelectedExplorerItem, SelectedDriveId);

            // Navigate to the VideoPlayerPage
            NavigationService.Navigate <VideoPlayerPage>(MediaWrapper);
        }
예제 #2
0
        public override CommandState QueryState(CommandContext context)
        {
            if (Settings.MissingKeys())
            {
                return(CommandState.Disabled);
            }

            Item ctxItem = DataWrapper?.ExtractItem(context);

            if (ctxItem == null || !MediaWrapper.IsMediaFile(ctxItem))
            {
                return(CommandState.Hidden);
            }

            var persons = PersonGroupService.GetAllPersonItems(ctxItem.Database.Name);

            if (persons == null || !persons.Any())
            {
                return(CommandState.Hidden);
            }

            var searchResult = SearchService.GetSearchResult(ctxItem.ID.ToString(), ctxItem.Language.Name, ctxItem.Database.Name);

            if (searchResult == null)
            {
                return(CommandState.Hidden);
            }

            var faceIds      = searchResult.FacialAnalysis?.Select(a => a.FaceId).ToArray() ?? new Guid[0];
            var peopleDiffer = searchResult.People == null || searchResult.People.Length != faceIds.Length;

            return(peopleDiffer
                ? CommandState.Enabled
                : CommandState.Hidden);
        }
        public override CommandState QueryState(CommandContext context)
        {
            if (Settings.MissingKeys())
            {
                return(CommandState.Disabled);
            }

            Item ctxItem = DataWrapper?.ExtractItem(context);

            return((ctxItem != null && MediaWrapper.IsMediaFolder(ctxItem))
                ? CommandState.Enabled
                : CommandState.Hidden);
        }
예제 #4
0
        public override CommandState QueryState(CommandContext context)
        {
            if (Settings.MissingKeys())
            {
                return(CommandState.Disabled);
            }

            Item ctxItem = DataWrapper?.ExtractItem(context);

            if (ctxItem == null || !MediaWrapper.IsMediaFile(ctxItem))
            {
                return(CommandState.Hidden);
            }

            return(CommandState.Enabled);
        }
예제 #5
0
        public override CommandState QueryState(CommandContext context)
        {
            if (Settings.MissingKeys())
            {
                return(CommandState.Disabled);
            }

            Item ctxItem = DataWrapper?.ExtractItem(context);

            if (ctxItem == null || !MediaWrapper.IsMediaFile(ctxItem))
            {
                return(CommandState.Hidden);
            }

            return(SearchService
                   .GetImageAnalysis(ctxItem.ID.ToString(), ctxItem.Language.Name, ctxItem.Database.Name)
                   .HasAnyAnalysis()
                ? CommandState.Enabled
                : CommandState.Hidden);
        }
예제 #6
0
        public override CommandState QueryState(CommandContext context)
        {
            if (Settings.MissingKeys())
            {
                return(CommandState.Disabled);
            }

            Item ctxItem = DataWrapper?.ExtractItem(context);

            if (ctxItem == null || !MediaWrapper.IsMediaFile(ctxItem))
            {
                return(CommandState.Hidden);
            }

            var hasPersons = PersonGroupService.GetAllPersonItems(ctxItem.Database.Name).Any();

            if (!hasPersons)
            {
                return(CommandState.Hidden);
            }

            var faces = SearchService
                        .GetImageAnalysis(ctxItem.ID.ToString(), ctxItem.Language.Name, ctxItem.Database.Name)
                        ?.FacialAnalysis;
            var hasOneFace = faces != null && faces.Length == 1;

            if (!hasOneFace)
            {
                return(CommandState.Hidden);
            }

            //show on images that have no face item pointing to them
            var links       = Globals.LinkDatabase.GetItemReferrers(ctxItem, false);
            var hasFaceLink = links
                              .Any(a => a.GetSourceItem().TemplateID.Guid == Settings.PersonFaceTemplateId.Guid);

            return(hasFaceLink
                ? CommandState.Hidden
                : CommandState.Enabled);
        }
 private void BeginDragDataBody(FrameworkElement element)
 {
     if (element == null)
         return;
     IMedia media = element.DataContext as IMedia;
     if (media == null) return;
     MediaWrapper mediaWrapper = new MediaWrapper()
     {
         Media = media
     };
     DragDrop.DoDragDrop(element, mediaWrapper, DragDropEffects.Move);
 }