protected async Task <ReferenceImagesModel> CameraCommand() { ReferenceImagesModel model = new ReferenceImagesModel(); try { MediaFile _mediaFile; if (!CrossMedia.Current.IsCameraAvailable || !CrossMedia.Current.IsTakePhotoSupported) { await App.Current.MainPage.DisplayAlert("No Camera", ":( No camera available.", "OK"); return(null); } _mediaFile = await CrossMedia.Current.TakePhotoAsync(new Plugin.Media.Abstractions.StoreCameraMediaOptions { Directory = "Profile Photo", SaveToAlbum = true, PhotoSize = PhotoSize.Medium, MaxWidthHeight = 2000, DefaultCamera = CameraDevice.Rear }); if (_mediaFile == null) { return(null); } //await App.Current.MainPage.DisplayAlert("File Location", file.Path, "OK"); using (var memoryStream = new MemoryStream()) { _mediaFile.GetStream().CopyTo(memoryStream); myfile = memoryStream.ToArray(); _mediaFile.Dispose(); } model.ImageBytes = myfile; model.ReferenceImages = ImageSource.FromStream(() => new MemoryStream(myfile)); return(model); //CameraPicker = ImageSource.FromStream(() => // { // var stream = _mediaFile.GetStream(); // _mediaFile.Dispose(); // return stream; // }); } catch (Exception ex) { return(null); } }
//#region IsCustomerFlow //private bool _isCustomerFlow; //public bool IsCustomerFlow //{ // get { return _isCustomerFlow; } // set { SetProperty(ref _isCustomerFlow, value); } //} //#endregion #region Gallery/Camera command protected async Task <ReferenceImagesModel> GalleryCommand() { ReferenceImagesModel model = new ReferenceImagesModel(); try { MediaFile _mediaFile; if (!CrossMedia.Current.IsPickPhotoSupported) { await App.Current.MainPage.DisplayAlert("Photos Not Supported", ":( Permission not granted to photos.", "OK"); return(null); } _mediaFile = await Plugin.Media.CrossMedia.Current.PickPhotoAsync(new Plugin.Media.Abstractions.PickMediaOptions { PhotoSize = Plugin.Media.Abstractions.PhotoSize.Medium, }); if (_mediaFile == null) { return(null); } using (var memoryStream = new MemoryStream()) { _mediaFile.GetStream().CopyTo(memoryStream); myfile = memoryStream.ToArray(); _mediaFile.Dispose(); } model.ImageBytes = myfile; model.ReferenceImages = ImageSource.FromStream(() => new MemoryStream(myfile)); return(model);// //ImagePicker = ImageSource.FromStream(() => //{ // var stream = _mediaFile.GetStream(); // _mediaFile.Dispose(); // return stream; //}); } catch (Exception ex) { return(null); } }