isValidSearch method
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;
}