private async void OnAcceptClick(object sender, System.EventArgs e) { if (LstMediaItems.CheckedItems == null || LstMediaItems.CheckedItems.Count < 1) { new CustomMessageDialog( AppMessages.MinimalPictureSelection_Title, AppMessages.MinimalPictureSelection, App.AppInformation, MessageDialogButtons.Ok).ShowDialog(); return; } ProgressService.SetProgressIndicator(true, ProgressMessages.PrepareUploads); SetControlState(false); // Set upload directory only once for speed improvement and if not exists, create dir var uploadDir = AppService.GetUploadDirectoryPath(true); foreach (var checkedItem in LstMediaItems.CheckedItems) { var item = (BaseMediaViewModel <Picture>)checkedItem; if (item == null) { continue; } try { string fileName = Path.GetFileName(item.Name); if (fileName != null) { string newFilePath = Path.Combine(uploadDir, fileName); using (var fs = new FileStream(newFilePath, FileMode.Create)) { await item.BaseObject.GetImage().CopyToAsync(fs); await fs.FlushAsync(); fs.Close(); } var uploadTransfer = new TransferObjectModel(SdkService.MegaSdk, App.CloudDrive.CurrentRootNode, MTransferType.TYPE_UPLOAD, newFilePath); TransfersService.MegaTransfers.Add(uploadTransfer); uploadTransfer.StartTransfer(); } } catch (Exception) { new CustomMessageDialog( AppMessages.PrepareImageForUploadFailed_Title, String.Format(AppMessages.PrepareImageForUploadFailed, item.Name), App.AppInformation, MessageDialogButtons.Ok).ShowDialog(); } } ProgressService.SetProgressIndicator(false); SetControlState(true); App.CloudDrive.NoFolderUpAction = true; }
public static void CaptureCameraImage(FolderViewModel currentFolder) { try { var cameraCaptureTask = new CameraCaptureTask(); cameraCaptureTask.Completed += async(sender, result) => { if (result == null || result.TaskResult != TaskResult.OK) { return; } try { string fileName = Path.GetFileName(result.OriginalFileName); if (fileName != null) { string newFilePath = Path.Combine(AppService.GetUploadDirectoryPath(), fileName); using (var fs = new FileStream(newFilePath, FileMode.Create)) { await result.ChosenPhoto.CopyToAsync(fs); await fs.FlushAsync(); fs.Close(); } var uploadTransfer = new TransferObjectModel(currentFolder.MegaSdk, currentFolder.FolderRootNode, TransferType.Upload, newFilePath); App.MegaTransfers.Insert(0, uploadTransfer); uploadTransfer.StartTransfer(); } NavigateService.NavigateTo(typeof(TransferPage), NavigationParameter.Normal); } catch (Exception) { new CustomMessageDialog( AppMessages.PhotoUploadError_Title, AppMessages.PhotoUploadError, App.AppInformation, MessageDialogButtons.Ok).ShowDialog(); } }; cameraCaptureTask.Show(); } catch (Exception e) { new CustomMessageDialog( AppMessages.CapturePhotoFailed_Title, String.Format(AppMessages.CapturePhotoFailed, e.Message), App.AppInformation, MessageDialogButtons.Ok).ShowDialog(); } }
private async void OnUploadClick(object sender, System.EventArgs e) { string fileName = String.Format("WP_Selfie_{0}{1:D2}{2:D2}{3}{4}.jpg", DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, DateTime.Now.Hour, DateTime.Now.Minute); try { string newFilePath = Path.Combine(AppService.GetUploadDirectoryPath(true), fileName); using (var fs = new FileStream(newFilePath, FileMode.Create)) { await fs.WriteAsync(_previewSelfieViewModel.Selfie.ConvertToBytes().ToArray(), 0, _previewSelfieViewModel.Selfie.ConvertToBytes().Count()); await fs.FlushAsync(); fs.Close(); } var uploadTransfer = new TransferObjectModel(SdkService.MegaSdk, App.CloudDrive.CurrentRootNode, MTransferType.TYPE_UPLOAD, newFilePath); TransfersService.MegaTransfers.Add(uploadTransfer); uploadTransfer.StartTransfer(); App.CloudDrive.NoFolderUpAction = true; // Remove the `PhotoCameraPage` from the back stack and go back NavigationService.RemoveBackEntry(); if (NavigateService.CanGoBack()) { NavigateService.GoBack(); } else { NavigateService.NavigateTo(typeof(MainPage), NavigationParameter.Normal); } } catch (Exception) { new CustomMessageDialog( AppMessages.UploadSelfieFailed_Title, AppMessages.UploadSelfieFailed, App.AppInformation, MessageDialogButtons.Ok).ShowDialog(); } }
private async void OnUploadClick(object sender, System.EventArgs e) { string fileName = String.Format("WP_Selfie_{0}{1:D2}{2:D2}{3}{4}.jpg", DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, DateTime.Now.Hour, DateTime.Now.Minute); try { string newFilePath = Path.Combine(AppService.GetUploadDirectoryPath(true), fileName); using (var fs = new FileStream(newFilePath, FileMode.Create)) { await fs.WriteAsync(_previewSelfieViewModel.Selfie.ConvertToBytes().ToArray(), 0, _previewSelfieViewModel.Selfie.ConvertToBytes().Count()); await fs.FlushAsync(); fs.Close(); } var uploadTransfer = new TransferObjectModel(App.MegaSdk, App.CloudDrive.CurrentRootNode, TransferType.Upload, newFilePath); App.MegaTransfers.Insert(0, uploadTransfer); uploadTransfer.StartTransfer(); App.CloudDrive.NoFolderUpAction = true; this.Dispatcher.BeginInvoke(() => NavigateService.NavigateTo(typeof(TransferPage), NavigationParameter.SelfieSelected)); } catch (Exception) { new CustomMessageDialog( AppMessages.UploadSelfieFailed_Title, AppMessages.UploadSelfieFailed, App.AppInformation, MessageDialogButtons.Ok).ShowDialog(); } }
private async void ContinueFileOpenPicker(FileOpenPickerContinuationEventArgs args) { try { if (args == null || (args.ContinuationData["Operation"] as string) != "SelectedFiles" || args.Files == null || args.Files.Count <= 0) { ResetFilePicker(); return; } if (!App.CloudDrive.IsUserOnline()) { return; } ProgressService.SetProgressIndicator(true, ProgressMessages.PrepareUploads); // Set upload directory only once for speed improvement and if not exists, create dir var uploadDir = AppService.GetUploadDirectoryPath(true); // Get picked files only once for speed improvement and to try avoid ArgumentException in the loop IReadOnlyList <StorageFile> pickedFiles = args.Files; foreach (StorageFile file in pickedFiles) { if (file == null) { continue; // To avoid null references } try { string newFilePath = Path.Combine(uploadDir, file.Name); using (var fs = new FileStream(newFilePath, FileMode.Create)) { var stream = await file.OpenStreamForReadAsync(); await stream.CopyToAsync(fs); await fs.FlushAsync(); fs.Close(); } var uploadTransfer = new TransferObjectModel( SdkService.MegaSdk, _cameraUploadsPageViewModel.CameraUploads.FolderRootNode, MTransferType.TYPE_UPLOAD, newFilePath); TransfersService.MegaTransfers.Add(uploadTransfer); uploadTransfer.StartTransfer(); } catch (Exception) { new CustomMessageDialog( AppMessages.PrepareFileForUploadFailed_Title, String.Format(AppMessages.PrepareFileForUploadFailed, file.Name), App.AppInformation, MessageDialogButtons.Ok).ShowDialog(); } } } catch (Exception) { new CustomMessageDialog( AppMessages.AM_PrepareFilesForUploadFailed_Title, String.Format(AppMessages.AM_PrepareFilesForUploadFailed), App.AppInformation, MessageDialogButtons.Ok).ShowDialog(); } finally { ResetFilePicker(); ProgressService.SetProgressIndicator(false); } }