private async void UploadPhoto(Plugin.Media.Abstractions.MediaFile mediaFile) { if (mediaFile != null) { await Task.Run(() => { _model.SetActivityResource(false, true); }); if (await _media.UploadPhotoAsync(mediaFile)) { if (!string.IsNullOrEmpty(_media.FileName)) { var profileImage = _metaPivotService.AddMeta(_media.FileName, MetaConstants.PROFILE_PHOTO.ToCapital(), MetaConstants.PROFILE_PHOTO, MetaConstants.PROFILE_PHOTO); var response = await _metaPivotService.SaveMetaAsync(profileImage); if (response != null && response.Contains(HttpConstants.SUCCESS)) { _model.User.ProfileImage = _media.FileName; App.CurrentUser.UserInfo = _model.User; _model.ProfileImagePath = _model.User.ProfileImage; _model.SetActivityResource(showMessage: true, message: TextResources.ChangeProfilePhoto + " " + TextResources.Change + " " + TextResources.Success); return; } } } } _model.SetActivityResource(showError: true, errorMessage: _media.Message); }
private async void ChangeProfilePhoto(object sender, EventArgs args) { var result = await DisplayActionSheet(TextResources.ChooseOption, TextResources.Cancel, null, new string[] { TextResources.PickFromGallery, TextResources.TakeFromCamera }); if (!string.IsNullOrEmpty(result) && result?.ToLower() != "cancel") { if (!await _devicePermissionServices.RequestReadStoragePermission()) { _model.SetActivityResource(showError: true, errorMessage: TextResources.MessagePermissionReadStorageRequired); } else { _media.Refresh(); if (result == TextResources.PickFromGallery) { UploadPhoto(await _media.PickPhotoAsync()); } else if (result == TextResources.TakeFromCamera) { if (!await _devicePermissionServices.RequestCameraPermission()) { _model.SetActivityResource(showError: true, errorMessage: TextResources.MessagePermissionCameraRequired); } else if (!await _devicePermissionServices.RequestWriteStoragePermission()) { _model.SetActivityResource(showError: true, errorMessage: TextResources.MessagePermissionCameraRequired); } else { UploadPhoto(await _media.TakePhotoAsync()); } } } } }