Example #1
0
        private async void OnGetImage(object sender, EventArgs e)
        {
            var settings = new ImageConstructionSettings
            {
                Padding            = 12,
                StrokeColor        = Color.FromRgb(25, 25, 25),
                BackgroundColor    = Color.FromRgb(225, 225, 225),
                DesiredSizeOrScale = 2f
            };
            var image = await padView.GetImageStreamAsync(SignatureImageFormat.Png, settings);

            if (image == null)
            {
                await DisplayAlert("Error", "A signature is required to check assets out.", "OK");

                return;
            }

            var base64_ = AppImages.StreamToBase64String(image);

            IEnumerable <PropertyPassItemDbTable> PropertyPass = PropertyPassClass.PropertyPassItem.ConvertListToDb(_PropertyPassTableID, _PropertyPassDisplayList);

            Database.PropertyPassItem.InsertAll(_connection, PropertyPass);
            var sigupdate = Database.PropertyPassTable.UpdateSignature(_connection, base64_, _PropertyPassTableID.PropertyPassID_Internal);

            if (sigupdate == "")
            {
                await DisplayAlert("Complete!", "The asset(s) have been checked out.", "OK");
            }
            else
            {
                await DisplayAlert("Error", sigupdate, "OK");
            }
            await Navigation.PopToRootAsync();
        }
Example #2
0
        private async void Save()
        {
            var settings = new ImageConstructionSettings
            {
                StrokeColor     = Xamarin.Forms.Color.Black,
                BackgroundColor = Xamarin.Forms.Color.White,
                StrokeWidth     = 1f
            };

            try
            {
                using (var bitmap = await GetImageStreamAsync(SignatureImageFormat.Png, settings))
                {
                    //var s = Convert.ToBase64String(ReadFully(bitmap));
                    if (bitmap == null)
                    {
                        var a = "";
                    }
                    else
                    {
                        var temp    = ImageHelper.ReadFully(bitmap);
                        var uiimage = ImageHelper.ToImage(temp);
                        uiimage = ImageHelper.MaxResizeImage(uiimage, 200, 100);
                        temp    = ImageHelper.ToArray(uiimage);
                        DefektacijasAkts.Paraksts = Convert.ToBase64String(temp);
                        RaisePropertyChanged(nameof(Paraksts));
                    }
                }
                App.Database.InsertDefektacijasAkts(DefektacijasAkts);
            }
            catch (Exception ex)
            {
            }
        }
        private async void OnGetImage(object sender, EventArgs e)
        {
            var settings = new ImageConstructionSettings
            {
                Padding            = 12,
                StrokeColor        = Color.FromRgb(25, 25, 25),
                BackgroundColor    = Color.FromRgb(225, 225, 225),
                DesiredSizeOrScale = 2f
            };
            var image = await SignatureView.GetImageStreamAsync(SignatureImageFormat.Png, settings);

            if (image != null)
            {
                /*
                 * DataSource.SignatureImage = new Image
                 * {
                 *  Aspect = Aspect.AspectFit,
                 *  Source = ImageSource.FromStream(() => image)
                 * };
                 */
                DataSource.SignatureStream = image;
            }

            await Navigation.PopModalAsync();
        }
Example #4
0
        private async void OnGetImage(object sender, EventArgs e)
        {
            var settings = new ImageConstructionSettings
            {
                Padding            = 12,
                StrokeColor        = Color.FromRgb(25, 25, 25),
                BackgroundColor    = Color.FromRgb(225, 225, 225),
                DesiredSizeOrScale = 2f
            };
            var image = await padView.GetImageStreamAsync(SignatureImageFormat.Png, settings);

            if (image == null)
            {
                return;
            }

            var page = new ContentPage
            {
                Title   = "Signature",
                Content = new Image
                {
                    Aspect = Aspect.AspectFit,
                    Source = ImageSource.FromStream(() => image)
                }
            };

            await Navigation.PushAsync(page);
        }
        private async Task OnGetImage()
        {
            var settings = new ImageConstructionSettings
            {
                Padding            = 12,
                StrokeColor        = Color.FromRgb(25, 25, 25),
                BackgroundColor    = Color.FromRgb(225, 225, 225),
                DesiredSizeOrScale = 2f
            };
            var image = await padView.GetImageStreamAsync(SignatureImageFormat.Png, settings);

            if (image == null)
            {
                return;
            }



            IFolder rootFolder = FileSystem.Current.LocalStorage;
            IFolder folder     = await rootFolder.CreateFolderAsync("MySubFolder",
                                                                    CreationCollisionOption.OpenIfExists);

            IFile file = await folder.CreateFileAsync("answer.png",
                                                      CreationCollisionOption.ReplaceExisting);

            using (var fooStream = await file.OpenAsync(FileAccess.ReadAndWrite))
            {
                await image.CopyToAsync(fooStream);
            }



            //var page = new ContentPage
            //{
            //    Title = "Signature",
            //    Content = new Image
            //    {
            //        Aspect = Aspect.AspectFit,
            //        Source = ImageSource.FromStream(() => image)
            //    }
            //};

            //await Navigation.PushAsync(page);
        }
        private async void OnShowImage(object sender, EventArgs e)
        {
            // get the file name
            var folder = FileSystem.Current.LocalStorage;
            var file   = await folder.CreateFileAsync($"signature.jpg", CreationCollisionOption.GenerateUniqueName);

            // create some settings to control the output
            var settings = new ImageConstructionSettings
            {
                BackgroundColor = Color.White,
                StrokeColor     = Color.Black,
            };

            // write the signature stream to the file stream
            using (var stream = await signaturePad.GetImageStreamAsync(SignatureImageFormat.Jpeg, settings))
                using (var fileStream = await file.OpenAsync(FileAccess.ReadAndWrite))
                {
                    // copy the bytes
                    await stream.CopyToAsync(fileStream);
                }

            // success
            await DisplayAlert("Signature Saved", "Signature file saved successfully.\nLoading preview...", "OK");

            // show the image preview
            var previewPage = new ContentPage
            {
                Title   = "View Signature",
                Content = new Image
                {
                    Source = ImageSource.FromFile(file.Path),
                    Margin = new Thickness(20)
                }
            };
            await Navigation.PushAsync(previewPage);
        }
Example #7
0
        //Method for when the signature is completed
        private async void OnSendClicked(object sender, EventArgs e)
        {
            //Accessing file system and creating file
            var folder = FileSystem.Current.LocalStorage;

            //Creating file without limitng the number of files locally
            //var file = await folder.CreateFileAsync($"signature.png",
            //CreationCollisionOption.GenerateUniqueName);
            //Better implementation. Only one sign file locally being replaced
            //Whats the file name prefix suffix?
            var file = await folder.CreateFileAsync("signature.png",
                                                    CreationCollisionOption.ReplaceExisting);

            //Creating the image of signature
            var settings = new ImageConstructionSettings
            {
                BackgroundColor = Color.White,
                StrokeColor     = Color.Black,
            };


            try
            {
                using (var stream = await signaturePad.GetImageStreamAsync(SignatureImageFormat.Png,
                                                                           settings))
                    using (var fileStream = await file.OpenAsync(FileAccess.ReadAndWrite))
                    {
                        //Trying to stop the file from being created as blank (Needs work)
                        if (!stream.Equals(null))
                        {
                            await stream.CopyToAsync(fileStream);
                        }
                    }

                //Display Thank you for signing. (Optional)
                await DisplayAlert("Thank you",
                                   "Thanks for signing, " +
                                   "Your signature has been received.",
                                   "OK");

                System.Diagnostics.Debug.WriteLine($"File Path: {file.Path}");
                //Clear the signature from pad after the file is saved.
                signaturePad.Clear();
                await Navigation.PopAsync();

                //Push to S3
                //AWS VS Toolkit. Needs research.
                //AWS Credentials - Account Number, Secret Key and one more
                //Bucket(s) name(s)
                //File Name to be stored in
                //Where in DB is it updated ?


                //Delete local device file to save storage on device
                //Is this optional ?
            }
            catch (NullReferenceException)
            {
                //Log Error here
                System.Diagnostics.Debug.WriteLine("Null Reference Exception caught");
                await DisplayAlert("Error", "Please sign.", "OK");
            }
            catch (Exception)
            {
                //Log error
                await DisplayAlert("Oops!", $"Something went wrong. Please make " +
                                   "sure to sign.", "OK");
            }
        }
Example #8
0
        //Method for when the signature is completed
        private async void OnSendClicked(object sender, EventArgs e)
        {
            activitySpinner.IsVisible = true;

            //Accessing file system and creating file
            var folder = FileSystem.Current.LocalStorage;

            var file = await folder.CreateFileAsync($"{req.RequestId}",
                                                    CreationCollisionOption.ReplaceExisting);

            //Creating the image of signature
            var settings = new ImageConstructionSettings
            {
                BackgroundColor = Color.White,
                StrokeColor     = Color.Black,
            };


            try
            {
                using (var stream = await signaturePad.GetImageStreamAsync(SignatureImageFormat.Png,
                                                                           settings))
                    using (var fileStream = await file.OpenAsync(FileAccess.ReadAndWrite))
                    {
                        //Trying to stop the file from being created as blank (Needs work)
                        if (!stream.Equals(null))
                        {
                            await stream.CopyToAsync(fileStream);
                        }
                    }


                activitySpinner.IsVisible = false;
                //Push to S3
                if (_awsServ.SaveFileToS3(file))
                {
                    //Display Thank you for signing. (Optional)
                    await DisplayAlert("Thank you",
                                       "Thanks for signing, " +
                                       "Your signature has been received.",
                                       "OK");

                    //Clear the signature from pad after the file is saved.
                    signaturePad.Clear();
                    //Popping back to the mainpage
                    await Navigation.PopToRootAsync();
                }
                else
                {
                    await DisplayAlert("Upload Failed",
                                       "Your signature has not been received. Send Again.",
                                       "OK");
                }
            }
            catch (NullReferenceException)
            {
                activitySpinner.IsVisible = false;
                //Log Error here
                System.Diagnostics.Debug.WriteLine("Null Reference Exception caught");
                await DisplayAlert("Error", "Please sign.", "OK");
            }
            catch (Exception)
            {
                activitySpinner.IsVisible = false;
                //Log error
                await DisplayAlert("Oops!",
                                   "Something went wrong. Please make sure to sign.",
                                   "OK");
            }
            activitySpinner.IsVisible = false;
        }