private void btnBuy_Clicked(object sender, EventArgs e)
        {
            Logger.Clicked("btnBuy");
            if (!App.IsInternetAvailable)
            {
                App.ShowProgress("internet bağlantınızı kontrol ediniz", ProgressType.Warning, ProgressTime.Normal);
            }
            else if (string.IsNullOrEmpty(txtOwnerName.Value) || string.IsNullOrEmpty(txtCardNumber.Value) || string.IsNullOrEmpty(txtExpirationMonth.Value) || string.IsNullOrEmpty(txtExpirationYear.Value) || string.IsNullOrEmpty(txtCVC.Value) ||
                     (cbPersonBill.IsChecked == true && (txtBillTCKN.Value == "0" || string.IsNullOrEmpty(txtBillFirstName.Value) || string.IsNullOrEmpty(txtBillLastName.Value))) ||
                     (cbFactoryBill.IsChecked == true && (string.IsNullOrEmpty(txtBillFactoryName.Value) || string.IsNullOrEmpty(txtBillTaxId.Value) || string.IsNullOrEmpty(txtBillTaxOfficeName.Value))))
            {
                App.ShowProgress("boş bıraktığınız alan(lar) var", ProgressType.Warning, ProgressTime.Normal);
            }
            else if (txtCardNumber.Length != 16)
            {
                App.ShowProgress("kart numarası 16 haneden oluşmalıdır", ProgressType.Warning, ProgressTime.Normal);
            }
            else if (cbAcceptRules.IsChecked != true)
            {
                App.ShowProgress("kuralları okuyup, kabul ettiğinizi belirtmelisiniz", ProgressType.Warning, ProgressTime.Normal);
            }
            else
            {
                var ticket = Database.TempData.Ticket;
                if (cbUse3DSecure.IsChecked == true)
                {
                    NavigationService.Navigate(new Uri("/Pages/Buying3DSecurePage.xaml", UriKind.RelativeOrAbsolute));
                }
                else
                {
                    btnBuy.IsActivated = false;
                    App.AddBackPressedEvent(BackPressed);
                    BuyingRequests.BuyingRequest.OnCompleted = (response) =>
                    {
                        var actionResult = response.Result;
                        btnBuy.IsActivated = true;
                        App.RemoveBackPressedEvent(BackPressed);
                        if (Database.TempData.Ticket.Bill.Type == BillType.Person)
                        {
                            Database.AddPassenger(new Passenger()
                            {
                                TCKN      = Database.TempData.Ticket.Bill.PersonTCKN,
                                FirstName = Database.TempData.Ticket.Bill.PersonFirstName,
                                LastName  = Database.TempData.Ticket.Bill.PersonLastName,
                                Address   = Database.TempData.Ticket.Bill.Address
                            });
                        }
                        if (response.Status == ResponseStatus.Successful)
                        {
                            Database.FillSavedPNR();
                            Database.AddPassenger(Database.TempData.Ticket.Passengers.ToList());

                            Database.TempData.Ticket.PNR.Code           = actionResult.PNR;
                            Database.TempData.Ticket.PNR.ExpirationDate = actionResult.ExpirationDate;
                            Database.SavedData.Tickets.Add(Database.TempData.Ticket);

                            Functions.UpdateTicket(Database.TempData.Ticket.PNR, NavigationService);
                            App.ClearBackHistory();
                        }
                        else if (response.Status == ResponseStatus.InvalidTCKN)
                        {
                            App.ShowProgress("belirttiğiniz yolcuların bilgilerini kontrol ediniz", ProgressType.Warning, ProgressTime.Normal);
                        }
                        else
                        {
                            App.ShowProgress(response.Message, ProgressType.Error, ProgressTime.Normal);
                        }
                    };
                    BuyingRequests.GetBuying(ticket);
                }
            }
        }
        public Buying3DSecurePage()
        {
            InitializeComponent();

            if (!App.IsInternetAvailable)
            {
                App.ShowProgress("internet bağlantınızı kontrol ediniz", ProgressType.Warning, ProgressTime.Normal);
            }
            else
            {
                App.AddBackPressedEvent(BackPressed);
                App.ShowProgress("onay sayfası yükleniyor...");
                BuyingRequests.OnPageLoaded = () =>
                {
                    App.HideProgress();
                };

                BuyingRequests.On3DSecureBuyingCompleted = (response) =>
                {
                    var actionResult = response.Result;
                    App.RemoveBackPressedEvent(BackPressed);
                    if (response.Status == ResponseStatus.Successful)
                    {
                        Database.AddPassenger(Database.TempData.Ticket.Passengers.ToList());

                        App.ShowProgress("biletiniz başarıyla alınmıştır, yönlendiriliyorsunuz...", ProgressType.Success, ProgressTime.Normal);
                        Database.TempData.Ticket.PNR.Code           = actionResult.PNR;
                        Database.TempData.Ticket.PNR.Parameter      = Database.TempData.Ticket.Passengers[0].LastName;
                        Database.TempData.Ticket.PNR.ExpirationDate = actionResult.ExpirationDate;
                        Database.SavedData.Tickets.Add(Database.TempData.Ticket);
                        Database.FillSavedPNR();
                        var timer = new DispatcherTimer();
                        timer.Interval = TimeSpan.FromMilliseconds(2000);
                        timer.Tick    += (x, r) =>
                        {
                            timer.Stop();
                            NavigationService.Navigate(new Uri("/Pages/TicketAction/DetailsPage.xaml", UriKind.RelativeOrAbsolute));
                            App.ClearBackHistory();
                        };
                        timer.Start();
                    }
                    else if (response.Status == ResponseStatus.InvalidTCKN)
                    {
                        App.ShowProgress("belirttiğiniz yolcuların bilgilerini kontrol ediniz", ProgressType.Warning, ProgressTime.Normal);
                        if (NavigationService.CanGoBack)
                        {
                            NavigationService.GoBack();
                        }
                    }
                    else
                    {
                        App.ShowProgress(response.Message, ProgressType.Plain, ProgressTime.Infinite, new List <string>()
                        {
                            "Yeniden düzenle", "Vazgeç"
                        });
                        Header.HeaderConfirmed = (buttonId) =>
                        {
                            if (buttonId == 0)
                            {
                                if (NavigationService.CanGoBack)
                                {
                                    NavigationService.GoBack();
                                }
                            }
                            else
                            {
                                NavigationService.Navigate(new Uri("/Pages/MainPage.xaml", UriKind.RelativeOrAbsolute));
                                App.ClearBackHistory();
                            }
                        };
                    }
                };
                BuyingRequests.Get3DSecureBuying(Database.TempData.Ticket, this.webBrowserGrid);
            }
        }