private async System.Threading.Tasks.Task deleteImage(MaintenanceImage image)
        {
            bool success = true;

            if (!_suspendSave)
            {
                success = await runTask(async() =>
                {
                    await DataService.DeleteItemAsync("maintenanceRequestImages", image.MaintenanceRequestImage.MaintenanceRequestImageIdValue);
                }, "Are you sure you want to delete this image?");
            }
            if (success)
            {
                DeletedImages.Add(image.MaintenanceRequestImage);
                this.Request.MaintenanceRequestImages.Remove(image.MaintenanceRequestImage);
                this.Images.Remove(image);
            }
        }
        private async void takePicture()
        {
            MediaFile photo;

            try
            {
                photo = await Plugin.Media.CrossMedia.Current.TakePhotoAsync(new Plugin.Media.Abstractions.StoreCameraMediaOptions()
                {
                    PhotoSize = Plugin.Media.Abstractions.PhotoSize.Small,
                });
            }
            catch (Exception ex)
            {
                if (ex.InnerException != null)
                {
                    ex = ex.InnerException;
                }
                ExceptionHelper.ShowException(ex);
                return;
            }

            if (photo != null)
            {
                var stream     = photo.GetStreamWithImageRotatedForExternalStorage();
                var maintImage = new MaintenanceRequestImage();
                var ms         = new MemoryStream();
                stream.CopyTo(ms);
                var bytes = ms.ToArray();
                maintImage.ImageType = "image/jpeg";
                if (!_suspendSave)
                {
                    var fileToSend = new FileToSend();
                    fileToSend.FileName    = DateTime.Now.ToString("yyyyMMddhhmmss") + ".jpg";
                    fileToSend.Bytes       = bytes;
                    fileToSend.ContentType = maintImage.ImageType;
                    var loadingDialog = Acr.UserDialogs.UserDialogs.Instance.Loading("Loading");
                    try
                    {
                        var results = await DataService.SendFiles <List <MaintenanceRequestImage> >($"maintenanceRequestImage/{this.Request.MaintenanceRequestIdValue}",
                                                                                                    new List <FileToSend>() { fileToSend }, true);

                        maintImage.MaintenanceRequestImageIdValue = results[0].MaintenanceRequestImageIdValue;
                        loadingDialog.Hide();
                    }
                    catch (Exception ex)
                    {
                        loadingDialog.Hide();
                        if (ex.InnerException != null)
                        {
                            ex = ex.InnerException;
                        }
                        ExceptionHelper.ShowException(ex);
                    }
                }
                this.Request.MaintenanceRequestImages.Add(maintImage);
                var newImage = new MaintenanceImage()
                {
                    MaintenanceRequestImage = maintImage,
                    ImageBytes = bytes
                };
                this.NewImages.Add(newImage);
                this.Images.Add(newImage);
            }
        }
 public MaintenanceRequestImageViewModel(MaintenanceImage image)
 {
     this.Image = image;
 }