Esempio n. 1
0
        private async void Model_AddedNew(object sender, Csla.Core.AddedNewEventArgs <FileReference> 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;
        }
Esempio n. 2
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>();
        }
Esempio n. 3
0
        private void ChoosePhoto()
        {
            Model.AddedNew += (async(o, e) =>
            {
                var newItem = e.NewObject;
                var rootFolder = FileSystem.Current.LocalStorage;
                var fileName = await GenerateUniqueFileNameFor(FileSystem.Current.LocalStorage);

                var path = await DependencyService.Get <IPhotoPicker>().GetCopiedFilePath(rootFolder.Path, fileName);
                if (path == null)
                {
                    Model.Remove(newItem);
                    return;
                }
                newItem.FileName = path;
                var photoVM = new PhotoViewModel(newItem);
                await photoVM.InitializeAsync();
                PhotoViewModels.Add(photoVM);
            });
            BeginAddNew();
        }