public async Task<ActionResult> LocationReport(ReportPresenter reportPresenter, string pageNumber)
        {
            reportPresenter.LocationSearchParameters = SessionData.Instance.LocationReportSearchParameters != null && !string.IsNullOrEmpty(pageNumber) ? SessionData.Instance.LocationReportSearchParameters : reportPresenter.LocationSearchParameters;

            if (reportPresenter != null && reportPresenter.LocationSearchParameters != null)
            {
                reportPresenter.LocationSearchParameters.ClearanceStatus = reportPresenter.LocationSearchParameters.ClearanceStatus == ZeroConst ? string.Empty : reportPresenter.LocationSearchParameters.ClearanceStatus;
                reportPresenter.LocationSearchParameters.PageNumber = (!string.IsNullOrEmpty(pageNumber) && !pageNumber.Equals(UndefinedConstant)) ? (Convert.ToInt32(pageNumber) > 0 ? Convert.ToInt32(pageNumber) / ApplicationSettings.MaxPageSize : 1) : 1;
                reportPresenter.LocationSearchParameters.PageSize = SessionData.Instance.PagingNumberOfRecords;
                if (!string.IsNullOrEmpty(reportPresenter.LocationSearchParameters.SearchName))
                {
                    if (reportPresenter.LocationSearchParameters.SearchName.Contains(Comma))
                    {
                        var name = reportPresenter.LocationSearchParameters.SearchName.Trim().Split(Comma);
                        reportPresenter.LocationSearchParameters.LastName = name[0];
                        reportPresenter.LocationSearchParameters.FirstName = name[1].Trim();
                    }
                    else
                    {
                        reportPresenter.LocationSearchParameters.LastName = reportPresenter.LocationSearchParameters.SearchName.Trim();
                    }
                }

                if (reportPresenter.LocationSearchParameters.VoyageId == null)
                {
                    var voyage = reportPresenter.ActiveVoyages.OrderByDescending(d => d.EmbarkDate).FirstOrDefault(item => item.IsActive);
                    reportPresenter.LocationSearchParameters.VoyageId = voyage != null ? voyage.VoyageId : string.Empty;
                }

                if (reportPresenter.LocationSearchParameters.IsMovementActivity && !string.IsNullOrWhiteSpace(reportPresenter.LocationSearchParameters.MovementActivityStartDate) && !string.IsNullOrWhiteSpace(reportPresenter.LocationSearchParameters.MovementActivityEndDate))
                {
                    reportPresenter.LocationSearchParameters.MovementActivityStartDate = Convert.ToDateTime(reportPresenter.LocationSearchParameters.MovementActivityStartDate).ToString(this.ApplicationSettings.ShipDateTimeFormat, CultureInfo.InvariantCulture);
                    reportPresenter.LocationSearchParameters.MovementActivityEndDate = Convert.ToDateTime(reportPresenter.LocationSearchParameters.MovementActivityEndDate).ToString(this.ApplicationSettings.ShipDateTimeFormat, CultureInfo.InvariantCulture);
                }

                var locations = await this.reportManager.RetrieveLocationReportAsync(reportPresenter.LocationSearchParameters);
                if (locations.Items.Count > 0)
                {
                    locations.AssignItems(locations.Items.Select(item => { item.MediaItemAddress = !string.IsNullOrEmpty(item.MediaItemAddress) ? item.MediaItemAddress + AuthConst + reportPresenter.AuthenticationToken + ImageSizeConst + ThumbnailConst : DefaultThumbnailImage; return item; }).ToList());
                    reportPresenter.AssignLocationSearchResult(locations);
                    reportPresenter.TotalRecordCount = locations.TotalResults;
                }

                reportPresenter.NoRecordFound = locations.Items.Count <= 0;

                SessionData.Instance.AssignLocationData(reportPresenter.LocationSearchParameters);
            }

            SetActivePage(reportPresenter, LocationReportView);
            SetOtherFilterOption(reportPresenter);

            return this.PartialView(LocationPartialView, reportPresenter);
        }
        /// <summary>
        /// Locations the report print.
        /// </summary>
        /// <returns>The Task</returns>
        public async Task<ActionResult> LocationReportPrint()
        {
            var reportPresenter = new ReportPresenter();

            var searchFilter = new LocationReportSearchParameters();
            searchFilter = SessionData.Instance.LocationReportSearchParameters;
            searchFilter.PageSize = 0;
            searchFilter.PageNumber = 1;
            var locations = await this.reportManager.RetrieveLocationReportAsync(searchFilter);

            if (locations != null && locations.Items.Count > 0)
            {
                var authenticationToken = await Client.Common.TokenManager.CreateAsync(new CancellationToken(false));
                locations.AssignItems(locations.Items.Select(item => { item.MediaItemAddress = !string.IsNullOrEmpty(item.MediaItemAddress) ? item.MediaItemAddress + AuthConst + authenticationToken + ImageSizeConst + ThumbnailConst : DefaultThumbnailImage; return item; }).ToList());
                reportPresenter.AssignLocationSearchResult(locations);
            }

            return this.View(LocationReportPrintView, reportPresenter);
        }