Beispiel #1
0
        public Photos(FileReferenceList fileReferenceList)
        {
            IsAdding            = false;
            Model               = fileReferenceList;
            _choosePhotoCommand = new Command(ChoosePhoto);
            _deletePhotoCommand = new Command(async obj =>
            {
                var photoVM = (PhotoViewModel)obj;
                PhotoViewModels.Remove(photoVM);
                var fileRef = photoVM.FileReference;
                Model.Remove(fileRef);
                var documentsPath = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
                var fullPath      = Path.Combine(documentsPath, fileRef.FileName);
                if (File.Exists(fullPath))
                {
                    await Task.Run(() => File.Delete(fullPath));
                }
            });

            Model.AddedNew += async(o, e) =>
            {
                if (IsAdding)
                {
                    return;
                }

                IsAdding = true;
                var newItem = e.NewObject;
                var destinationDirectory = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
                var fileName             = GenerateUniqueFileNameFor(destinationDirectory);

                PrepareToShowModal();
                var fullFileName = await DependencyService.Get <IPhotoPicker>().GetCopiedFilePath(destinationDirectory, fileName);

                if (fullFileName == null)
                {
                    if (newItem != null)
                    {
                        Model.Remove(newItem);
                    }
                    return;
                }
                newItem.FileName = fullFileName;
                var photoVM = new PhotoViewModel(newItem);
                await photoVM.InitializeAsync();

                PhotoViewModels.Add(photoVM);
                IsAdding = false;
            };

            PhotoViewModels = new ObservableCollection <PhotoViewModel>();
        }
        protected override void OnModelChanged(FileReferenceList oldValue, FileReferenceList newValue)
        {
            if (oldValue != null)
            {
                oldValue.AddedNew -= Model_AddedNew;
            }
            if (newValue != null)
            {
                newValue.AddedNew += Model_AddedNew;
            }

            base.OnModelChanged(oldValue, newValue);
        }
Beispiel #3
0
 public Photos(FileReferenceList fileReferenceList)
 {
     Model = fileReferenceList;
     _choosePhotoCommand = new Command(ChoosePhoto);
     _deletePhotoCommand = new Command(async obj =>
     {
         var photoVM = (PhotoViewModel)obj;
         PhotoViewModels.Remove(photoVM);
         var fileRef = photoVM.FileReference;
         Model.Remove(fileRef);
         var file = await FileSystem.Current.GetFileFromPathAsync(fileRef.FileName);
         await file.DeleteAsync();
     });
     PhotoViewModels = new ObservableCollection <PhotoViewModel>();
 }
        public Photos(FileReferenceList fileReferenceList)
        {
            IsAdding            = false;
            Model               = fileReferenceList;
            _choosePhotoCommand = new Command(ChoosePhoto);
            _deletePhotoCommand = new Command(obj =>
            {
                var photoVM = (PhotoViewModel)obj;
                PhotoViewModels.Remove(photoVM);
                var fileRef = photoVM.FileReference;
                Model.Remove(fileRef);
                var documentsPath = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
                var fullPath      = Path.Combine(documentsPath, fileRef.FileName);
                if (File.Exists(fullPath))
                {
                    File.Delete(fullPath);
                }
            });

            PhotoViewModels = new ObservableCollection <PhotoViewModel>();
        }
 internal FileReferenceListWrapper(FileReferenceList source)
 {
     _innerList = source;
 }
Beispiel #6
0
 /// <summary>
 ///
 /// </summary>
 /// <returns></returns>
 protected ContentGroup()
 {
     FileReferences = new FileReferenceList(this);
 }