コード例 #1
0
        /// <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;
        }