/// <summary> /// Paging the specified presenter. /// </summary> /// <param name="presenter">The presenter.</param> /// <param name="pageNumber">The page number.</param> /// <param name="partialView">The partial view.</param> /// <param name="searchType">Type of the search.</param> /// <returns> /// The Action Result. /// </returns> public async Task<ActionResult> Paging(VisitorPresenter presenter, string pageNumber, string partialView, string searchType) { if (presenter != null && !string.IsNullOrEmpty(pageNumber) && !pageNumber.Equals(UndefinedConst) && !string.IsNullOrEmpty(partialView)) { var searchFilter = new SearchFilters(); var pagingListResult = new ListResult<Alert>(); if (!string.IsNullOrEmpty(partialView) && string.Equals(partialView, VisitorMessages, StringComparison.OrdinalIgnoreCase)) { var messages = SessionData.Instance.MessageItems.Items.ToList(); var pagingResultMessages = GetPagedResult(pageNumber, messages); if (pagingResultMessages != null && pagingResultMessages.Count > 0) { return this.RetrieveMessageOrAlertView(presenter, out pagingListResult, pagingResultMessages, true); } } else if (!string.IsNullOrEmpty(partialView) && string.Equals(partialView, VisitorAlerts, StringComparison.OrdinalIgnoreCase)) { var alerts = SessionData.Instance.AlertItems.Items.ToList(); var pagingResultAlerts = GetPagedResult(pageNumber, alerts); if (pagingResultAlerts != null && pagingResultAlerts.Count > 0) { return this.RetrieveMessageOrAlertView(presenter, out pagingListResult, pagingResultAlerts, false); } } else { if (!partialView.Equals(TodaysVisitPartialView, StringComparison.InvariantCultureIgnoreCase) && (presenter.VisitorStatus.VisitorStatusId.Equals(OnboardVisitorStatusValue) || presenter.VisitorStatus.VisitorStatusId.Equals(OffboardVisitorStatusValue))) { var visitorList = SessionData.Instance.VisitorItemListResult.Items.ToList(); var pagingResult = GetPagedResult(Convert.ToString(pageNumber), visitorList); if (pagingResult != null && pagingResult.Count > 0) { var visitorListResult = new ListResult<Visitor>(); visitorListResult.AssignItems(pagingResult); presenter.AssignVisitorSearchResult(visitorListResult); } } else { if (!partialView.Equals(TodaysVisitPartialView, StringComparison.InvariantCultureIgnoreCase)) { searchFilter.ShipTime = BaseController.GenerateLocalDateTime(DateTime.UtcNow).ToString("yyyy-MM-ddTHH:mm:ss"); } var pagingPageNumber = Convert.ToInt32(pageNumber) > 0 ? Convert.ToInt32(pageNumber) / ApplicationSettings.MaxPageSize : 1; SetSearchFilterByType(presenter, searchType, searchFilter); var visitorPurpose = SessionData.Instance.MasterData.VisitPurposes.FirstOrDefault(item => item.VisitPurposeId.Equals(presenter.Visit.VisitPurposeId, StringComparison.InvariantCultureIgnoreCase)); var vistorType = SessionData.Instance.MasterData.VisitorTypes.FirstOrDefault(item => item.VisitorTypeId.Equals(presenter.VisitorTypeId, StringComparison.InvariantCultureIgnoreCase)); if (!string.IsNullOrEmpty(presenter.PersonalDetail.CitizenshipCountryId)) { var selectedCitizenShip = presenter.PersonalDetail.CitizenshipCountryId.Split(CommaSeparatorChar).ToList(); searchFilter.Citizenship = selectedCitizenShip.Count != 0 && selectedCitizenShip.Count == SessionData.Instance.MasterData.Countries.Count ? string.Empty : presenter.PersonalDetail.CitizenshipCountryId; } searchFilter.VisitPurpose = presenter.Visit != null && !string.IsNullOrEmpty(presenter.Visit.VisitPurposeId) && visitorPurpose != null ? visitorPurpose.VisitPurposeId : string.Empty; searchFilter.VisitorType = !string.IsNullOrEmpty(presenter.VisitorTypeId) && vistorType != null ? vistorType.VisitorTypeId : string.Empty; searchFilter.MaxResult = ApplicationSettings.MaxPageSize; searchFilter.PageNumber = pagingPageNumber > 0 ? pagingPageNumber : 1; var visitors = await this.visitorManager.GetVisitorsAsync(searchFilter); presenter.AssignVisitorSearchResult(visitors); } } } return this.PartialView(partialView, presenter); }
/// <summary> /// Extracts the first paged records. /// </summary> /// <param name="presenter">The presenter.</param> private void ExtractOnLoadPagedRecords(VisitorPresenter presenter) { var maxPaging = DefaultPageSize > SessionData.Instance.VisitorItemListResult.Items.Count ? SessionData.Instance.VisitorItemListResult.Items.Count : DefaultPageSize; var pagingResult = SessionData.Instance.VisitorItemListResult.Items.Skip(0).Take(maxPaging - 0).ToList(); if (pagingResult.Count > 0) { var pagingItems = new ListResult<Visitor>(); pagingItems.AssignItems(pagingResult); presenter.AssignVisitorSearchResult(pagingItems); } }