//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); } }
//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); } }