public VideoClipsGroupsDataAdapter(SimpleDB.SimpleDB db, VideoClipsGroupsM model, VideoClipsM vc, MediaItemsM mi)
     : base("VideoClipsGroups", db)
 {
     _model       = model;
     _videoClipsM = vc;
     _mediaItemsM = mi;
 }
 public VideoClipsDataAdapter(SimpleDB.SimpleDB db, VideoClipsM model, MediaItemsM mi, KeywordsM k, PeopleM p)
     : base("VideoClips", db)
 {
     _model       = model;
     _mediaItemsM = mi;
     _keywordsM   = k;
     _peopleM     = p;
 }
 public SegmentsDataAdapter(SimpleDB.SimpleDB db, SegmentsM model, MediaItemsM mi, PeopleM p, KeywordsM k)
     : base("Segments", db)
 {
     _model       = model;
     _mediaItemsM = mi;
     _peopleM     = p;
     _keywordsM   = k;
 }
Beispiel #4
0
 public MediaItemsDataAdapter(SimpleDB.SimpleDB db, MediaItemsM model, FoldersM f, PeopleM p, KeywordsM k, GeoNamesM g)
     : base("MediaItems", db)
 {
     _model     = model;
     _foldersM  = f;
     _peopleM   = p;
     _keywordsM = k;
     _geoNamesM = g;
 }
        public MediaItemsVM(Core core, AppCore coreVM, MediaItemsM model)
        {
            _core   = core;
            _coreVM = coreVM;
            Model   = model;

            #region Commands
            RotateCommand = new(
                Rotate,
                () => _core.ThumbnailsGridsM.Current?.FilteredItems.Count(
                    x => x.IsSelected && x.MediaType == MediaType.Image) > 0);

            RenameCommand = new(
                Rename,
                () => Model.Current != null);

            DeleteCommand = new(
                Delete,
                () => _core.ThumbnailsGridsM.Current?.SelectedItems.Count > 0 || _coreVM.AppInfo.AppMode == AppMode.Viewer);

            EditCommand = new(
                () => Model.IsEditModeOn = true,
                () => _core.ThumbnailsGridsM.Current?.FilteredItems.Count > 0);

            SaveEditCommand = new(
                SaveEdit,
                () => Model.IsEditModeOn && Model.ModifiedItems.Count > 0);

            CancelEditCommand = new(
                CancelEdit,
                () => Model.IsEditModeOn);

            CommentCommand = new(
                Comment,
                () => Model.Current != null);

            ReloadMetadataCommand = new(
                () => ReloadMetadata(_core.ThumbnailsGridsM.Current.GetSelectedOrAll()),
                () => _core.ThumbnailsGridsM.Current?.FilteredItems.Count > 0);

            ReloadMetadataInFolderCommand = new(
                ReloadMetadataInFolder,
                x => x != null);
            #endregion
        }
        private async void Delete()
        {
            // TODO remove App.WMain
            var currentThumbsGrid = _core.ThumbnailsGridsM.Current;
            var items             = _coreVM.AppInfo.AppMode == AppMode.Viewer
        ? new() { Model.Current }
        : currentThumbsGrid.FilteredItems.Where(x => x.IsSelected).ToList();
            var count = items.Count;

            if (!MessageDialog.Show("Delete Confirmation",
                                    $"Do you really want to delete {count} item{(count > 1 ? "s" : string.Empty)}?", true))
            {
                return;
            }

            Model.Current = MediaItemsM.GetNewCurrent(currentThumbsGrid != null
          ? currentThumbsGrid.LoadedItems
          : App.WMain.MediaViewer.MediaItems,
                                                      items);

            Model.Delete(items, AppCore.FileOperationDelete);
            await _coreVM.ThumbnailsGridsVM.ThumbsGridReloadItems();

            if (_coreVM.MainTabsVM.Selected is SegmentMatchingControl smc)
            {
                _ = smc.SortAndReload();
            }

            if (_coreVM.AppInfo.AppMode == AppMode.Viewer)
            {
                _ = App.WMain.MediaViewer.MediaItems.Remove(items[0]);
                if (Model.Current != null)
                {
                    App.WMain.MediaViewer.SetMediaItemSource(Model.Current);
                }
                else
                {
                    WindowCommands.SwitchToBrowser();
                }
            }
        }