/// <summary> /// Searches the filters. /// </summary> /// <param name="passengerPresenter">The passenger presenter.</param> /// <param name="isExcept">if set to <c>true</c> [is except].</param> /// <param name="searchType">Type of the search.</param> /// <param name="pagingPageNumber">The paging page number.</param> /// <param name="option">The option.</param> /// <param name="isAll">The is all.</param> /// <returns> /// returns search filters /// </returns> private SearchFilters SetSearchFilters(PassengerPresenter passengerPresenter, bool isExcept, string searchType, int pagingPageNumber, string option, bool? isAll) { var exceptCountries = new List<string>(); List<string> selectedCountries = null; var filteredCountries = string.Empty; if (isExcept) { foreach (var country in passengerPresenter.Countries) { exceptCountries.Add(country.CountryId); } if (exceptCountries.Count > 0) { if (!string.IsNullOrEmpty(passengerPresenter.SelectedCitizenship)) { var exceptSelectedCountries = passengerPresenter.SelectedCitizenship.Split(CommaSeparatorChar).Select(i => i.Trim()).Where(i => !string.IsNullOrEmpty(i)).ToList(); foreach (var selectedCountry in exceptSelectedCountries) { exceptCountries.Remove(selectedCountry); } filteredCountries = exceptCountries.JoinWith(CommaSeparator); } } } var searchFilter = new SearchFilters(); switch (searchType) { case Stateroom: searchFilter.Stateroom = passengerPresenter.SearchText; break; case BookingNo: searchFilter.ReservationNo = passengerPresenter.SearchText; break; case PassportNo: searchFilter.PassportNo = passengerPresenter.SearchText; break; case LastName: searchFilter.LastNameContains = passengerPresenter.SearchText; break; case Birthdate: searchFilter.Birthdate = passengerPresenter.SearchText; break; default: searchFilter.LastNameContains = passengerPresenter.SearchText; break; } if (!string.IsNullOrEmpty(SessionData.Instance.IsMessageMode) && SessionData.Instance.IsMessageMode.Equals(TrueConstant, StringComparison.OrdinalIgnoreCase)) { searchFilter.IsMessageCount = true; searchFilter.IsMessage = true; passengerPresenter.IsMessage = true; searchFilter.IsAlertCount = false; } else { searchFilter.IsMessageCount = false; searchFilter.IsMessage = false; passengerPresenter.IsMessage = false; searchFilter.IsAlertCount = true; } searchFilter.PersonTypeId = !string.IsNullOrEmpty(option) ? option : passengerPresenter.SelectedPassengerType; searchFilter.VoyageId = passengerPresenter.SelectedVoyage; if (!string.IsNullOrWhiteSpace(passengerPresenter.SelectedCitizenship)) { selectedCountries = passengerPresenter.SelectedCitizenship.Split(',').ToList(); } searchFilter.Citizenship = isExcept ? filteredCountries : selectedCountries != null && selectedCountries.Count == SessionData.Instance.MasterData.Countries.Count ? string.Empty : passengerPresenter.SelectedCitizenship; searchFilter.MaxResult = ApplicationSettings.MaxPageSize; searchFilter.PageNumber = pagingPageNumber > 0 ? pagingPageNumber : 1; searchFilter.IsAll = isAll; return searchFilter; }