Ejemplo n.º 1
0
        /// <summary>
        /// Saves the feedback data.
        /// </summary>
        /// <returns>The feedback POST service responce</returns>
        public static async Task <bool> SaveFeedbackData()
        {
            using (var client = new WebClient())
            {
                try
                {
                    string json     = FeedbackSerializer.GetFeedbackPOSTJson();
                    bool   responce = false;

                    client.Headers[HttpRequestHeader.ContentType] = "application/json";
                    //client.Headers.Add("Ocp-Apim-Subscription-Key", Settings.SubscriptionKey);
                    //client.Headers.Add("Ocp-Apim-Subscription-Key","d0fbb5e7bebc454e8df6ff295fa73905");

                    string apiResponce = await client.UploadStringTaskAsync(new Uri(Settings.BaseDomainURL + "Feedback/Insert"), "POST", json);//Live

                    //client.UploadStringAsync(new Uri("https://jkhapimdev.azure-api.net/api/beta/v1/" + "guestfeedback/Feedback/Insert"), "POST", json);
                    Console.WriteLine(apiResponce);

                    client.UploadStringCompleted += (object sender, UploadStringCompletedEventArgs e) =>
                    {
                        Console.WriteLine(e.Result);
                        var res = e.Result;

                        if (res.All(char.IsDigit))
                        {
                            responce = true;
                            FeedbackSerializer.ResetRatingNVCs();
                        }
                    };

                    FeedbackSerializer.ResetRatingNVCs();
                    return(responce);
                }
                catch (Exception)
                {
                    FeedbackSerializer.ResetRatingNVCs();
                    return(false);
                }
            }
        }
        /// <summary>
        /// Entries the unfocused.
        /// </summary>
        /// <param name="roomNoEntry">Room no entry.</param>
        private async void EntryUnfocused(Entry roomNoEntry)
        {
            //Reset Data
            FeedbackSerializer.ResetRatingNVCs();
            FeedbackCart.ClearSavedData();

            FeedbackCart._hotelIdentifier = Settings.HotelIdentifier;

            RemoveFormLayoutChildren();

            GenerateIndicator();

            _indicator.IsVisible = true;
            _indicator.IsRunning = true;

            string date = DateTime.Now.ToString("yyyy-MM-dd");

            Dictionary <string, ReservationDetailsModel> ReservationDetailsDictionary = await ReservationDetailsDeserializer.DeserializeReservationDetails(Settings.HotelCode, roomNoEntry.Text, date).ConfigureAwait(true);

            if (ReservationDetailsDictionary != null)
            {
                ReservationNumber = ReservationDetailsDictionary["1"].BookingId;
                MobileNumber      = ReservationDetailsDictionary["1"].Telephone;
                EmailAddress      = ReservationDetailsDictionary["1"].Email;

                FeedbackCart._resNum     = ReservationDetailsDictionary["1"].BookingId;
                FeedbackCart._country    = ReservationDetailsDictionary["1"].Country;
                FeedbackCart._arrDate    = ReservationDetailsDictionary["1"].ArrivalDate;
                FeedbackCart._depDate    = ReservationDetailsDictionary["1"].DepartureDate;
                FeedbackCart._guestPhone = ReservationDetailsDictionary["1"].Mobile;
                FeedbackCart._guestEmail = ReservationDetailsDictionary["1"].Email;

                RemoveFormLayoutChildren();

                GenerateGuestNameLabel();

                for (int i = 1; i <= ReservationDetailsDictionary.Count; i++)
                {
                    GenerateGuestNameLabels(ReservationDetailsDictionary[i.ToString()].Name, roomNoEntry.Text, ReservationDetailsDictionary[i.ToString()].GuestId, i, ReservationNumber);
                }

                if (string.IsNullOrEmpty(ReservationDetailsDictionary["1"].BookingId))
                {
                    await Application.Current.MainPage.DisplayAlert("No Reservations!", "Please check your room number.", "OK");

                    roomNoEntry.Focus();
                    roomNoEntry.Text  = "";
                    ReservationNumber = "";
                    MobileNumber      = "";
                    EmailAddress      = "";
                }

                Console.WriteLine(ReservationNumber);

                _indicator.IsVisible = false;
                _indicator.IsRunning = false;
                _formLayout.Children.Remove(_indicator);
            }
            else
            {
                roomNoEntry.Focus();
                _indicator.IsVisible = false;
                _indicator.IsRunning = false;
                _formLayout.Children.Remove(_indicator);
            }
        }