public GuestEdit(List <guestDetails> guestDetailsList, guestDetails Object)
        {
            //Passing values value on page load to fields and pickers
            InitializeComponent();

            //Setting limits for datetime.
            DateTime date = new DateTime(1900, 1, 1);

            DateOfBirth.MaximumDate = DateTime.Today;
            DateOfBirth.MinimumDate = date;

            //setting guest details retrieved from guestifo page
            guestdetails        = guestDetailsList;
            guestCodeFromSearch = Object.guestCode;
            Visitperhotel       = Object.noOfVisitsHotel;
            Totalvisit          = Object.noOfVisits;
            RevenueTotal        = Object.revenueTotal;
            RevenueRoom         = Object.revenueRoom;
            RevenueFnb          = Object.reveneuFB;
            RevenueOther        = Object.revenueOther;

            //countryFromSearch = Object.country;
            if (Object.passportIdNumber == "")
            {
                hideUntilSearched.IsVisible = false;
                viewUntilSearched.IsVisible = true;
            }
            else
            {
                hideUntilSearched.IsVisible = true;
                viewUntilSearched.IsVisible = false;
            }

            pageLoading();

            guestDetailsAvailableOnLoad((Object.guestNumber).ToString(), Object.identificationMethod, Object.passportIdNumber, Object.salutation, Object.guestFirstName, Object.guestLastName, Object.gender, Object.email, Object.contactNumber, Object.houseNumber, Object.street, Object.city, Object.country, Object.nationality, Object.language, Object.guestCode, Object.dateOfBirth, Object.dateOfExpiry);

            //Getting results after passport successfully scanned
            MessagingCenter.Subscribe <Messages.BlinkIDResults>(this, Messages.BlinkIDResultsMessage, async(sender) =>
            {
                pageLoading();
                try
                {
                    //Values from passport
                    foreach (var result in sender.Results)
                    {
                        //Seperating values from array
                        result.TryGetValue("SecondaryId", out fname);
                        result.TryGetValue("PrimaryId", out lname);
                        result.TryGetValue("Nationality", out nationality);
                        result.TryGetValue("Sex", out gender);
                        result.TryGetValue("DocumentNumber", out PassportNumber);
                        result.TryGetValue("DateOfExpiry", out dateOfExpiry);
                        result.TryGetValue("DateOfBirth", out dateOfBirthPass);

                        PassportNumber = Regex.Replace(PassportNumber, "[^A-Za-z0-9 _]", "");
                        //List of identification methods from dictionary
                        var nameToAlpha2FromAlpha3 = CountryDictionary.listAlpha3To();
                        //Getting Key Value from Dictoinary by passing the THREE Letter code
                        nationality = nameToAlpha2FromAlpha3.FirstOrDefault(x => x.Key == nationality).Value;
                        //string guestNumberPassport = guestNumber.Text;
                    }

                    new APILogger().Logger($"PP Scan Result : FName {fname},LName {lname},Nationality {nationality},Sex {gender},DocumentNumber {PassportNumber},DateOfExpiry {dateOfExpiry},DateOfBirth {dateOfBirthPass}");

                    await existingGuestDetailsFromDatabses(2, PassportNumber);
                    Device.BeginInvokeOnMainThread(() =>
                    {
                        GuestFisrtName.Text = fname;
                        GuestLastName.Text  = lname;
                        guestIdentificationDetailsPicker("2");
                        guestNationalityDetailsPicker(nationality);
                        guestContryDetailsPicker(nationality);
                        guestLanguageDetailsPicker("E");
                        PassportExpiry.Date = FormatChanges.PassScanDateFormat(dateOfExpiry);
                        guestGenderDetailsPicker(serviceDataValidation.guestEditGenderValidation(gender));
                        DateOfBirth.Date = FormatChanges.PassScanDateFormat(dateOfBirthPass);
                        stopPageLoading();
                    });
                }
                catch (Exception)
                {
                    Device.BeginInvokeOnMainThread(() =>
                    {
                        stopPageLoading();
                        guestEntryDetails(guestNumber.Text, PassportNumber, fname, lname, "", "", "", "", "");
                        guestIdentificationDetailsPicker("2");
                        guestNationalityDetailsPicker(nationality);
                        guestContryDetailsPicker(nationality);
                        guestLanguageDetailsPicker("E");
                        guestSalutationPicker("");
                        guestGenderDetailsPicker(serviceDataValidation.guestEditGenderValidation(gender));
                        PassportExpiry.Date = FormatChanges.PassScanDateFormat(dateOfExpiry);
                        DateOfBirth.Date    = FormatChanges.PassScanDateFormat(dateOfBirthPass);
                        Visitperhotel       = "00";
                        Totalvisit          = "00";
                        RevenueTotal        = "0.00";
                        RevenueRoom         = "0.00";
                        RevenueFnb          = "0.00";
                        RevenueOther        = "0.00";
                        stopPageLoading();
                        DisplayAlert(Constants._headerMessage, Constants._noDetails, Constants._buttonOkay);
                    });
                }
                //MessagingCenter.Unsubscribe<Messages.BlinkIDResults>(this, Messages.BlinkIDResultsMessage);
            });
        }
Пример #2
0
 //Guest Selected
 async void SelectedGuest(object sender, ItemTappedEventArgs e)
 {
     GuestListView.SelectedItem = Color.Transparent;             //use the color of your background of the listView
     guestDetails guestDetailsObject = (guestDetails)e.Item;
     await Navigation.PushAsync(new GuestEdit(guestdetails, guestDetailsObject));
 }