/*private void txtFromStation_ValueChanged(object sender, EventArgs e)
         * {
         *  if (txtFromStation.Value != null && App.IsInternetAvailable)
         *  {
         *      var fromValue = txtFromStation.Value as Station;
         *      var fromStation = Database.SavedData.Stations.SingleOrDefault(x => x.Name == fromValue.Name);
         *      if (fromStation != null)
         *      {
         *          App.ShowProgress("varış istasyonları yükleniyor...");
         *          StationRequest.OnToStationsCompleted = (stations) =>
         *          {
         *              if (stations != null)
         *              {
         *                  txtToStation.ItemsSource = stations.ToList();
         *                  if (Database.SavedData.BusJourney != null && Database.SavedData.BusJourney.To != null && fromValue.Name.ToString() != Database.SavedData.BusJourney.To.Name.ToString())
         *                      txtToStation.Value = Database.SavedData.BusJourney.To;
         *              }
         *              App.HideProgress();
         *          };
         *          StationRequest.GetToStations(fromStation);
         *      }
         *  }
         * }*/

        private void btnSearch_Click(object sender, EventArgs e)
        {
            Logger.Clicked("btnSearch");

            this.Focus();
            if (!App.IsInternetAvailable)
            {
                App.ShowProgress("internet bağlantınızı kontrol ediniz", ProgressType.Warning, ProgressTime.Normal);
            }
            else if (!Database.SavedData.Stations.Any())
            {
                App.ShowProgress("istasyonların yüklenmesini bekleyiniz", ProgressType.Warning, ProgressTime.Normal);
            }
            else if (txtFromStation.Value == null || txtToStation.Value == null || dpDepartureDate.Value == null)
            {
                App.ShowProgress("boş bıraktığınız alan(lar) var", ProgressType.Warning, ProgressTime.Normal);
            }
            else if (dpDepartureDate.Value < Convert.ToDateTime(DateTime.Now.ToShortDateString()))
            {
                App.ShowProgress("seçtiğiniz tarih bugünden geçmişte olamaz", ProgressType.Warning, ProgressTime.Normal);
            }
            else
            {
                App.AddBackPressedEvent(BackPressed);
                App.ShowProgress("uygun seferler aranıyor...");
                btnSearch.IsActivated          = false;
                Database.TempData.Ticket.Type  = TicketType.BusJourney;
                Database.TempData.TicketSearch = Database.SavedData.BusSearch = new TicketSearch()
                {
                    Factory = new Factory()
                    {
                        Id = 0
                    },
                    From          = txtFromStation.Value as Station,
                    To            = txtToStation.Value as Station,
                    DepartureDate = Convert.ToDateTime(dpDepartureDate.Value),
                    Passengers    = { new Passenger() },
                    Type          = Database.TempData.Ticket.Type
                };

                JourneyRequests.JourneysRequest.OnCompleted = (response) =>
                {
                    var journeys = response.Result;
                    App.RemoveBackPressedEvent(BackPressed);
                    Database.TempData.Journeys = journeys;
                    App.HideProgress();
                    if (journeys == null || journeys.Count() == 0)
                    {
                        App.ShowProgress("aradığınız kriterlere uygun sefer bulunamadı", ProgressType.Error, ProgressTime.Normal);
                    }
                    else
                    {
                        NavigationService.Navigate(new Uri("/Pages/Bus/JourneyListPage.xaml", UriKind.RelativeOrAbsolute));
                    }
                    btnSearch.IsActivated = true;
                };
                JourneyRequests.GetJourneys(Database.TempData.TicketSearch);
            }
        }
        private void btnSearch_Click(object sender, EventArgs e)
        {
            Logger.Clicked("btnSearch");
            this.Focus();
            if (!App.IsInternetAvailable)
            {
                App.ShowProgress("internet bağlantınızı kontrol ediniz", ProgressType.Warning, ProgressTime.Normal);
            }
            else if (!Database.SavedData.Airports.Any())
            {
                App.ShowProgress("havalimanlarının yüklenmesini bekleyiniz", ProgressType.Warning, ProgressTime.Normal);
            }
            else if (txtFromStation.Value == null || txtToStation.Value == null || dpDepartureDate.Value == null || (rbRoundTrip.IsChecked == true && dpReturnDate.Value == null))
            {
                App.ShowProgress("boş bıraktığınız alan(lar) var", ProgressType.Warning, ProgressTime.Normal);
            }
            else if (dpDepartureDate.Value < Convert.ToDateTime(DateTime.Now.ToShortDateString()) || (rbRoundTrip.IsChecked == true && dpReturnDate.Value < Convert.ToDateTime(DateTime.Now.ToShortDateString())))
            {
                App.ShowProgress("seçtiğiniz tarih bugünden geçmişte olamaz", ProgressType.Warning, ProgressTime.Normal);
            }
            else if (rbRoundTrip.IsChecked == true && dpDepartureDate.Value > dpReturnDate.Value)
            {
                App.ShowProgress("dönüş tarihi gidiş tarihinden önce olamaz", ProgressType.Warning, ProgressTime.Normal);
            }
            else
            {
                App.AddBackPressedEvent(BackPressed);
                Database.TempData.TicketSearch.From          = txtFromStation.Value as Station;
                Database.TempData.TicketSearch.To            = txtToStation.Value as Station;
                Database.TempData.TicketSearch.DepartureDate = Convert.ToDateTime(dpDepartureDate.Value);
                Database.TempData.TicketSearch.ReturnDate    = Convert.ToDateTime(dpReturnDate.Value);

                Database.TempData.TicketSearch.Type = Database.TempData.Ticket.Type;
                App.ShowProgress("uygun seferler aranıyor...");
                btnSearch.IsActivated = false;

                Database.SavedData.AirplaneSearch = Database.TempData.TicketSearch;

                JourneyRequests.JourneysRequest.OnCompleted = (response) =>
                {
                    var flights = response.Result;
                    App.RemoveBackPressedEvent(BackPressed);
                    Database.TempData.Journeys = flights;
                    App.HideProgress();
                    if (flights == null || flights.Count() == 0)
                    {
                        App.ShowProgress("aradığınız kriterlere uygun sefer bulunamadı", ProgressType.Error, ProgressTime.Normal);
                    }
                    else
                    {
                        NavigationService.Navigate(new Uri("/Pages/Airplane/JourneyListPage.xaml", UriKind.RelativeOrAbsolute));
                    }
                    btnSearch.IsActivated = true;
                };
                JourneyRequests.GetJourneys(Database.TempData.TicketSearch);
            }
        }
        private void NextDay_Tap(object sender, EventArgs e)
        {
            Logger.Clicked("NextDay");
            App.AddBackPressedEvent(BackPressedForDayChanging);

            if (JourneyRequests.JourneysRequest.IsCompleted)
            {
                App.ShowProgress("sonraki gün yükleniyor...");
                if (IsReturn)
                {
                    Database.TempData.TicketSearch.ReturnDate = Database.TempData.TicketSearch.ReturnDate.AddDays(+1);
                }
                else
                {
                    Database.TempData.TicketSearch.DepartureDate = Database.TempData.TicketSearch.DepartureDate.AddDays(+1);
                }
                JourneyRequests.JourneysRequest.OnCompleted += Journeys_Completed;
                JourneyRequests.GetJourneys(Database.TempData.TicketSearch);
            }
        }