示例#1
0
        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);
        }
示例#2
0
        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());
                        }
                    }
                }
            }
        }