isValidSearch method

bool isValidSearch()

Implementation

bool isValidSearch() {
  searchAdults.value = tempAdult.value;
  searchChildren.value = tempChildren.value;
  searchInfantsInSeats.value = tempInfantsInSeats.value;
  searchInfantsInLap.value = tempInfantsInLap.value;
  flightType.value = tempFlightType.value;
  tripType.value = tempTripType.value;
  if (searchAdults.value < 1) {
    CustomFlashWidget.showFlashMessage(
        title: "Invalid adults",
        message: "Please select at least one adult for searching a trip",
        type: FlashType.error);

    return false;
  }
  if (searchAdults.value <
      (searchInfantsInLap.value + searchInfantsInSeats.value)) {
    CustomFlashWidget.showFlashMessage(
        title: "Invalid infants",
        message: "Infants shouldn't exceed number of adults",
        type: FlashType.error);

    return false;
  }
  if (searchChildren.value > 0 && !(childrenAges.every((e)=> e != null))) {
    CustomFlashWidget.showFlashMessage(
        title: "Invalid ${searchChildren.value > 1? 'Children': 'Child'} Age",
        message: "Please specify a valid age (between 2 and 17) for the ${searchChildren.value > 1 ? 'children' : 'child'}.",
        type: FlashType.error);

    return false;
  }
  if (searchFromAirport.value == null || (fromAirportController.text == '')) {
    CustomFlashWidget.showFlashMessage(
      type: FlashType.error,
      title: "Invalid airport",
      message: "Please select a valid departure airport",
    );
    return false;
  }

  if (searchToAirport.value == null || (toAirportController.text == '')) {
    CustomFlashWidget.showFlashMessage(
      type: FlashType.error,
      title: "Invalid airport",
      message: "Please select a valid arrival airport",
    );
    return false;
  }
  if (searchToAirport.value?.id == searchFromAirport.value?.id) {
    CustomFlashWidget.showFlashMessage(
      type: FlashType.error,
      title: "Invalid airport",
      message: "Departure and Arrival airport cannot be the same",
    );
    return false;
  }
  if(searchFromAirport.value!=null && searchFromAirport.value?.displayName != fromAirportController.text){
     CustomFlashWidget.showFlashMessage(
      type: FlashType.error,
      title: "Invalid airport",
      message: "Please select a valid departure airport",
    );
    return false;
  }
  if(searchToAirport.value!=null && searchToAirport.value?.displayName != toAirportController.text){
    CustomFlashWidget.showFlashMessage(
      type: FlashType.error,
      title: "Invalid airport",
      message: "Please select a valid arrival airport",
    );
    return false;
  }
  if (totalPassengers == 0) {
    CustomFlashWidget.showFlashMessage(
      type: FlashType.error,
      title: "Invalid passengers",
      message: "Please select at least one passenger",
    );
    return false;
  }

  if (searchDepartureDate.isEmpty) {
    CustomFlashWidget.showFlashMessage(
      type: FlashType.error,
      title: "Invalid departure date",
      message: "Please select a valid departure date",
    );
    return false;
  }

  if (isTempRoundTrip) {
    if (searchReturnDate.isEmpty) {
      CustomFlashWidget.showFlashMessage(
        type: FlashType.error,
        title: "Invalid return date",
        message: "Please select a valid return date",
      );
      return false;
    }
  }

  if (totalPassengers > 9) {
    CustomFlashWidget.showFlashMessage(
      type: FlashType.error,
      title: "Invalid Search",
      message: "Maximum number of passengers per a booking is 9.",
    );

    return false;
  }

  currentIndex.value = 0;
  return true;
}