コード例 #1
0
        //Save image button triggered
        async void ImageSaveButton(object sender, EventArgs e)
        {
            try
            {
                string base64String, base64String2;

                //Getting image from signaturepad as a stream
                var inputStream = await padView.GetImageStreamAsync(SignatureImageFormat.Png);

                //Getting Stream as a Memorystream
                var signatureMemoryStream = inputStream as MemoryStream;

                if (signatureMemoryStream == null)
                {
                    signatureMemoryStream = new MemoryStream();
                    inputStream.CopyTo(signatureMemoryStream);
                }

                //Adding memorystream into a byte array
                var byteArray = signatureMemoryStream.ToArray();

                //Converting byte array into Base64 string
                base64String = Convert.ToBase64String(byteArray);

                if (base64String != Constants.addSignatureImage)
                {
                    Constants._notAvailableSignatureAdded = true;

                    //Converting base 64 string into bytes
                    byte[] data = Convert.FromBase64String(base64String);

                    //Adding image new image source to constant
                    //Constants._guestSignatureBase64 = ImageSource.FromStream(() => new MemoryStream(data));

                    var obj = guestsignature.FirstOrDefault(x => x.guestNumber == signature);
                    obj.base64String         = base64String;
                    obj.guestSignatureBase64 = ImageSource.FromStream(() => new MemoryStream(data));
                    obj.cellColor            = "Purple";
                    obj.guestNameColor       = "White";
                    obj.imageAvailability    = "";

                    APIPostService.UploadImageHttpPost(data, Constants._hotel_code, Constants._reservation_id, signature.ToString());

                    //Passing message (New Signature added)
                    MessagingCenter.Send <Signature, List <guestSignature> >(this, Constants._signatureAddedMessage, guestsignature);

                    await DisplayAlert(Constants._headerMessage, Constants._signatureSaved, Constants._buttonOkay);

                    //close current content page
                    await Navigation.PopModalAsync();
                }
                else
                {
                    await DisplayAlert(Constants._headerMessage, Constants._signatureValidation, Constants._buttonOkay);
                }
            }
            catch (Exception)
            {
                await DisplayAlert(Constants._headerMessage, Constants._signatureValidation, Constants._buttonOkay);
            }
        }
コード例 #2
0
        //Checking button clicked
        async void reservationCheckin(object sender, EventArgs e)

        {
            //Asssigned Room Inspected
            if (Constants._roomStatus == Constants._inspectedRoom)
            {
                string result = "";
                //get sigatures with image availability
                var signatureAddedGuests = guestsignature.Where(x => x.imageAvailability == "").ToList();
                pageLoading();
                string IntiailGuestDetail = "F";
                //Loop All available images
                foreach (guestSignature sigAddedGuestDetails in signatureAddedGuests)
                {
                    if (sigAddedGuestDetails.base64String != "")
                    {
                        //Data source
                        var postServiceManager = new PostServiceManager();

                        //Add details to Payload
                        StatusChangeCheckin statusChangedCheckin = new StatusChangeCheckin(Constants._reservation_id, Constants._hotel_code, sigAddedGuestDetails.guestNumber.ToString(), sigAddedGuestDetails.base64String, IntiailGuestDetail, "Checkin App");

                        result = await postServiceManager.StatusChangecheckinAsync(statusChangedCheckin);
                    }

                    Constants._base64Code = "";
                    IntiailGuestDetail    = "T";
                }

                //save signature if already saved signature
                if (signatureAddedGuests.Count < 1)
                {
                    var postServiceManager = new PostServiceManager();

                    string resSigns = await checkInManager.GetGuestSignature("1");

                    var outputSign         = JObject.Parse(resSigns);
                    var retrivedSignBase64 = Convert.ToString(outputSign["d"]["XIMAGE"]);

                    if (retrivedSignBase64 != null)
                    {
                        IntiailGuestDetail = "F";
                        StatusChangeCheckin statusChangedCheckin = new StatusChangeCheckin(Constants._reservation_id, Constants._hotel_code, "1", retrivedSignBase64, IntiailGuestDetail, "Checkin App");
                        result = await postServiceManager.StatusChangecheckinAsync(statusChangedCheckin);
                    }
                    IntiailGuestDetail = "T";
                }


                //await DisplayAlert(Constants._headerMessage, result, Constants._buttonOkay);

                if (result == "Checked-In Successfully!")
                {
                    Constants._reservationStatus          = Constants._reservationStatusCheckedIn;
                    Constants._notAvailableSignatureAdded = false;

                    //Save usage time to API
                    var apires = await APIPostService.SaveTimeTrackToAPI();

                    Debug.WriteLine("API Res " + apires);

                    await DisplayAlert(Constants._headerMessage, result, Constants._buttonOkay);

                    //Checked in
                    MessagingCenter.Send <RegistrationCard, string>(this, Constants._reservationStatusCheckedIn, Constants._reservationStatus);
                }
                else
                {
                    await DisplayAlert(Constants._headerMessage, result, Constants._buttonOkay);
                }

                stopPageLoading();
            }
            else
            {
                await DisplayAlert(Constants._headerMessage, Constants._checkinInspectedValidation, Constants._buttonOkay);
            }
        }