public MediaItemListViewModel(IEventAggregator eventAggregator,
                                      InteractionRequests interactionRequests,
                                                                                 //IMediaFileImageResolver imageResolver,
                                      IUserService userService, IMediaFileService mediaFileService,
                                      MediaFileItemManager mediaFileItemManager) //MediaFileDurationGetter mediaFileDurationGetter
        {
            this.EventAggregator = eventAggregator;
            //this.ImageResolver = imageResolver;
            this.UserService      = userService;
            this.MediaFileService = mediaFileService;
            //this.MediaFileDurationGetter = mediaFileDurationGetter;
            this.MediaFileItemManager = mediaFileItemManager;
            _interactionRequests      = interactionRequests;

            _worker = new DelegateBackgroundWorker();
            _worker.ProgressChangedHandler = this.ReportUploadProgress;
            _worker.RunCompletedHandler    = this.OnUploadCompleted;


            _mediaItemCollection = new ObservableCollection <BindableMediaFileItem>();
            _mediaItemCollection.CollectionChanged += MediaItemCollection_CollectionChanged;

            _addMediaItemCommand    = new DelegateCommand(AddMediaItem);
            _deleteMediaItemCommand = new DelegateCommand(DeleteMediaItem, CanDeleteMediaItem);
            _saveMediaItemsCommand  = new DelegateCommand(SaveMediaItems, CanSaveMediaItems);
            _saveXmlCommand         = new DelegateCommand(SaveXml, CanSaveXml);
            _openXmlCommand         = new DelegateCommand(OpenXml);
            _previewCommand         = new DelegateCommand <IPlayableItem>(Preview);
            _clearCommand           = new DelegateCommand(Clear, CanClear);
        }
        public DbMediaItemListViewModel(IEventAggregator eventAggregator, /*IMediaFilePathResolver filePathResolver,*/
                                        IMediaFileImageResolver imageResolver, IMediaFileService mediaFileService, MediaFileItemManager mediaFileItemManager)
        {
            this.EventAggregator = eventAggregator;
            //this.FilePathResolver = filePathResolver;
            this.ImageResolver    = imageResolver;
            this.MediaFileService = mediaFileService;
            _mediaItemCollection  = new ObservableCollection <BindableMediaFileItem>();
            _mediaFileItemManager = mediaFileItemManager;

            _deleteMediaItemCommand = new DelegateCommand(DeleteMediaItem, CanDeleteMediaItem);
            _editMediaItemCommand   = new DelegateCommand <object>(EditMediaItem, CanEditMediaItem);

            //_saveMediaItemsCommand = new DelegateCommand(SaveMediaItems, CanSaveMediaItems);

            _searchCommand = new DelegateCommand <RequestPagingItemsEventArgs>(SearchMediaItems);

            _previewCommand    = new DelegateCommand <IPlayableItem>(Preview);
            this.SearchOptions = new MediaItemSearchOptions();
        }