Пример #1
0
        public async Task <IPictureGridViewModel> LoadAPictureGridViewModel(string folderPath, List <string> searchPatterns)
        {
            // Check if folder is already opened.
            //todo: think about if user opens the same folder but with different search patterns
            var pictureGridViewModel = PictureGridViewModels.ToList().Find(picGrid =>
                                                                           ((PictureGridViewModel)picGrid).AbsolutePath == folderPath);

            if (pictureGridViewModel == null)
            {
                var pictureFileNames = await _fileService.GetFileNamesFromDirectoryAsync(folderPath, searchPatterns);

                pictureGridViewModel = _pictureGridViewModelCreator();
                PictureGridViewModels.Add(pictureGridViewModel);
                if (pictureFileNames.Count > 0)
                {
                    pictureGridViewModel.Load(pictureFileNames);
                }
                else
                {
                    pictureGridViewModel.LoadEmptyFolder(folderPath);
                }
            }

            return(pictureGridViewModel);
        }
Пример #2
0
        public IPictureGridViewModel LoadAPictureGridViewModel(List <string> pictureFileNames)
        {
            // Check if folder is already opened.
            var pictureGridViewModel = PictureGridViewModels.ToList().Find(picGrid =>
                                                                           ((PictureGridViewModel)picGrid).AbsolutePath == pictureFileNames.First().ToParentFolderPath());

            if (pictureGridViewModel == null)
            {
                pictureGridViewModel = _pictureGridViewModelCreator();
                PictureGridViewModels.Add(pictureGridViewModel);
                pictureGridViewModel.Load(pictureFileNames);
            }
            else
            {
                // Remove any duplicates.
                pictureFileNames.RemoveAll(fileName => PictureGridViewModels.ToList()
                                           .Exists(gridViewModel => gridViewModel.Pictures.ToList()
                                                   .Exists(pic => pic.FullFileName == fileName)));

                if (pictureFileNames.Count > 0)
                {
                    pictureGridViewModel.Load(pictureFileNames);
                }
                else
                {
                    pictureGridViewModel = SelectedPictureGridViewModel;
                }
            }

            return(pictureGridViewModel);
        }
Пример #3
0
        private void OnMovingPicturesEvent(MovingPicturesPayload payload)
        {
            var oldFolderPath           = payload.Pictures.Select(pic => pic.FolderPath).First();
            var oldPictureGridViewModel = PictureGridViewModels.First(viewModel =>
                                                                      viewModel.AbsolutePath == oldFolderPath);

            var newPictureGridViewModel = PictureGridViewModels.FirstOrDefault(viewModel =>
                                                                               viewModel.AbsolutePath == payload.NewFolderPath);

            payload.Pictures.ForEach(pic =>
            {
                if (_pictureRepository.TryMove(pic, payload.NewFolderPath).Success.Value)
                {
                    oldPictureGridViewModel.Pictures.Remove(pic);

                    if (newPictureGridViewModel != null)
                    {
                        pic.FullFileName = $"{payload.NewFolderPath}\\{pic.FileName}";
                        newPictureGridViewModel.Pictures.Add(pic);
                    }
                }
            });
        }
Пример #4
0
 private void OnCloseFolderCommand(IPictureGridViewModel tab)
 {
     PictureGridViewModels.Remove(tab);
 }