Exemple #1
0
        public async Task <string> UploadUserAvatarAsync(PickedImage pickedImage, CancellationToken cancellationToken = default(CancellationToken)) =>
        await Task.Run(async() => {
            string userAvatar = string.Empty;

            string url         = BaseSingleton <GlobalSetting> .Instance.RestEndpoints.IdentityEndpoints.UploadUserAvatarEndpoint;
            string accessToken = BaseSingleton <GlobalSetting> .Instance.UserProfile.AccesToken;

            try {
                User user = await _requestProvider.PostFormDataAsync <User, PickedImage>(url, pickedImage, accessToken);

                if (user != null)
                {
                    userAvatar = user.AvatarUrl;
                    BaseSingleton <GlobalSetting> .Instance.UserProfile.AvatarUrl = user.AvatarUrl;
                    BaseSingleton <GlobalSetting> .Instance.UserProfile.SaveChanges();
                }
            }
            catch (ConnectivityException ex) {
                throw ex;
            }
            catch (ServiceAuthenticationException ex) {
                await this.LogOutAsync();
                throw ex;
            }
            catch (HttpRequestExceptionEx ex) {
                throw ex;
            }
            catch (Exception ex) {
                Debug.WriteLine($"ERROR:{ex.Message}");
                Debugger.Break();
            }
            return(userAvatar);
        }, cancellationToken);
Exemple #2
0
        public async Task <PickedImage> BuildPickedImageAsync()
        {
            await CrossMedia.Current.Initialize();

            if (!CrossMedia.Current.IsPickPhotoSupported)
            {
                return(null);
            }

            PickedImage pickedImage = null;

            using (var file = await CrossMedia.Current.PickPhotoAsync(new PickMediaOptions {
                PhotoSize = PhotoSize.Medium, CompressionQuality = 90
            })) {
                if (file == null)
                {
                    return(null);
                }

                try {
                    Stream stream = file.GetStream();

                    pickedImage = new PickedImage {
                        Name = Path.GetFileName(file.Path),
                        Body = await ParseStreamToBytesAsync(stream)
                    };
                }
                catch (Exception) {
                    pickedImage = null;
                }
            }
            return(pickedImage);
        }
        private async void libraryImageSelected(LibraryImageSelectedMessage message)
        {
            if (message.ReceiverID == _receiverID)
            {
                var result = await Task <IImage> .Factory.StartNew(() =>
                {
                    IImage image = null;
                    try
                    {
                        if (message.Path != null)
                        {
                            var path     = message.Path;
                            var file     = new MediaFile(path, () => File.OpenRead(path));
                            var rawImage = getScaledAndRotatedImage(file, Constants.MaxPixelDimensionOfImages);

                            //Initialize picked image
                            image = new PickedImage
                            {
                                Name     = Path.GetFileName(path),
                                RawImage = rawImage
                            };
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.ToString());
                    }

                    return(image);
                });

                _selectImageCompletion.TrySetResult(result);
            }
        }
Exemple #4
0
        public async Task <PickedImage> BuildPickedImageAsync(MediaFile mediaFile)
        {
            await CrossMedia.Current.Initialize();

            if (!CrossMedia.Current.IsPickPhotoSupported)
            {
                return(null);
            }

            PickedImage pickedImage = null;

            if (mediaFile == null)
            {
                return(null);
            }

            try {
                Stream stream = mediaFile.GetStream();

                pickedImage = new PickedImage {
                    Name = Path.GetFileName(mediaFile.Path),
                    Body = await ParseStreamToBytesAsync(stream)
                };
            }
            catch (Exception) {
                pickedImage = null;
            }
            return(pickedImage);
        }
        protected override void OnActivityResult(int requestCode, Result resultCode, Intent intent)
        {
            if (requestCode == PickImageId)
            {
                if ((resultCode == Result.Ok) && (intent != null))
                {
                    Android.Net.Uri  uri    = intent.Data;
                    System.IO.Stream stream = ContentResolver.OpenInputStream(uri);

                    PickedImage pi = new PickedImage();
                    pi.DecodedPath = uri.Path;
                    pi.EncodedPath = uri.EncodedPath;
                    pi.DataStream  = stream;
                    pi.FilePath    = GetRealPathFromMediaStoreImageURI(uri);

                    // Set the Stream as the completion of the Task
                    PickImageTaskCompletionSource.SetResult(pi);
                }
                else
                {
                    PickImageTaskCompletionSource.SetResult(null);
                }
            }

            base.OnActivityResult(requestCode, resultCode, intent);
        }
        public FileDTO BuidFileDTO(PickedImage pickedImage)
        {
            FileDTO file = null;

            if (pickedImage != null)
            {
                file = new FileDTO()
                {
                    Base64 = pickedImage.DataBase64,
                    Name   = string.Format("{0}.{1}", Guid.NewGuid(), ProfileMediaService.PNG_IMAGE_FORMAT)
                };
            }

            return(file);
        }
Exemple #7
0
        public Task <IImage> getImageFromMediaFile(MediaFile file)
        {
            return(Task <IImage> .Factory.StartNew(() =>
            {
                var rawImage = getScaledAndRotatedImage(file, Constants.MaxPixelDimensionOfImages);

                //Initialize picked image
                var image = new PickedImage
                {
                    Name = Path.GetFileName(file.Path),
                    RawImage = rawImage
                };

                return image;
            }));
        }
Exemple #8
0
        public Task <PickedImage> BuildPickedImageAsync(MediaFile mediaFile) =>
        Task <PickedImage> .Run(async() => {
            PickedImage pickedImage = null;

            try {
                pickedImage            = new PickedImage();
                pickedImage.DataBase64 = await ParseStreamToBase64(mediaFile.GetStream());
                pickedImage.Name       = Path.GetFileName(mediaFile.Path);
            }
            catch (Exception exc) {
                Crashes.TrackError(exc);

                pickedImage = null;
            }

            return(pickedImage);
        });
        private async void cameraImageSelected(CameraImageSelectedMessage message)
        {
            if (message.ReceiverID == _receiverID)
            {
                var result = await Task <IImage> .Factory.StartNew(() =>
                {
                    IImage image = null;
                    if (message.Image != null)
                    {
                        image = new PickedImage
                        {
                            Name     = Guid.NewGuid() + ".jpg",
                            RawImage = message.Image.GetRawBytes(Bitmap.CompressFormat.Jpeg)
                        };
                    }
                    return(image);
                });

                _selectImageCompletion.TrySetResult(result);
            }
        }
        private async void btnPickImg_Clicked(object sender, EventArgs e)
        {
            if (null != MobileGlobals.PhotoPickerProviderInst)
            {
                PickedImage pi = await MobileGlobals.PhotoPickerProviderInst.GetImageStreamAsync();

                if (pi != null)
                {
                    if (null != MobileGlobals.SmsProviderInst)
                    {
                        pduData = MobileGlobals.SmsProviderInst.GetMMSPduData(txtAddress.Text, pi.FilePath, "This is a test message! Respond to let me know if you got it and whether you see the image.");

                        if (null != pduData)
                        {
                            MobileGlobals.SmsProviderInst.SendMMSPduData(pduData);
                        }
                        else
                        {// PDU shouldn't be null
                            throw new Exception("PDU Data is NULL!");
                        }
                    }
                }
            }
        }
Exemple #11
0
        private async void AnalysePhotoAsync()
        {
            Guid busyKey = Guid.NewGuid();

            SetBusy(busyKey, true);
            PickedImage targetImage = null;

            ResetCancellationTokenSource(ref _analysePhotoCancellationTokenSource);
            CancellationTokenSource cancellationTokenSource = _analysePhotoCancellationTokenSource;

            try {
                using (var file = await _pickMediaService.TakePhotoAsync()) {
                    if (file != null)
                    {
                        List <string> results = await _visionService.AnalyzeImageForText(file);

                        if (results != null && results.Any())
                        {
                            List <string> parsedResult = results.ParseVisionResult();

                            targetImage = await _pickMediaService.BuildPickedImageAsync(file);

                            if (targetImage != null)
                            {
                                FormDataContent formDataContent = new FormDataContent {
                                    Content      = parsedResult,
                                    MediaContent = targetImage
                                };

                                List <DriveAuto> driveAutoDetails =
                                    await _driveAutoService.SearchDriveAutoByCognitiveAsync(formDataContent, cancellationTokenSource.Token);

                                if (driveAutoDetails != null)
                                {
                                    DriveAutoDetails = driveAutoDetails.ToObservableCollection();
                                    HasResult        = true;
                                }
                                else
                                {
                                    HasResult    = false;
                                    ErrorMessage = string.Empty;
                                }
                            }
                        }
                        else
                        {
                            HasResult    = false;
                            ErrorMessage = ResourceLoader.GetString(nameof(AppStrings.TryMore)).Value;
                        }
                        file.Dispose();
                    }
                }
            }
            catch (Exception ex) {
                Debug.WriteLine($"ERROR: -{ex.Message}");
                Debugger.Break();
                try {
                    HttpRequestExceptionResult httpRequestExceptionResult = JsonConvert.DeserializeObject <HttpRequestExceptionResult>(ex.Message);
                    HasResult    = false;
                    ErrorMessage = httpRequestExceptionResult.Message;
                }
                catch (Exception exc) {
                    Debug.WriteLine($"ERROR: -{exc.Message}");
                    Debugger.Break();
                    BackCommand.Execute(null);
                }
            }
            SetBusy(busyKey, false);

            if (targetImage == null)
            {
                BackCommand.Execute(null);
            }
        }