示例#1
0
        public HttpResponseMessage Search(string query, string version = null)
        {
            var filters       = new List <SearchFilters>();
            var searchFilters = new SearchFilters(BooleanOperation.And);

            //MUST be live
            searchFilters.Filters.Add(new SearchFilter("projectLive", "1"));
            filters.Add(searchFilters);
            if (version.IsNullOrWhiteSpace() == false)
            {
                //need to clean up this string, it could be all sorts of things
                var parsedVersion = version.GetFromUmbracoString();
                if (parsedVersion != null)
                {
                    var numericalVersion = parsedVersion.GetNumericalValue();
                    var versionFilters   = new SearchFilters(BooleanOperation.Or);
                    versionFilters.Filters.Add(new RangeSearchFilter("num_version", 0, numericalVersion));
                    versionFilters.Filters.Add(new RangeSearchFilter("num_compatVersions", 0, numericalVersion));
                    filters.Add(versionFilters);
                }
            }

            var ourSearcher = new OurSearcher(query, "project", maxResults: 100, filters: filters);
            var result      = ourSearcher.Search("projectSearcher");

            var resp = Request.CreateResponse(
                HttpStatusCode.OK,
                (IEnumerable <SearchResult>)result.SearchResults,
                Configuration.Formatters.JsonFormatter);

            return(resp);
        }
示例#2
0
        public async Task <ActionResult> GetAllHistoriesAsync(FormCollection form)
        {
            DateTime dateFrom = DateTime.MinValue;

            if (!String.IsNullOrEmpty(form["dateFrom"]))
            {
                dateFrom = Convert.ToDateTime(form["dateFrom"]);
            }

            DateTime dateTo = DateTime.MaxValue;

            if (!String.IsNullOrEmpty(form["dateTo"]))
            {
                dateTo = Convert.ToDateTime(form["dateTo"]);
            }

            var searchFilters = new SearchFilters(form)
            {
                OrderBy   = GetOrderBy(form),
                StartDate = dateFrom,
                EndDate   = dateTo
            };

            var result = await historyRepository.GetAllHistoriesAsync(searchFilters);

            return(this.Json(
                       new
            {
                iTotalRecords = result.iTotalRecords,
                iTotalDisplayRecords = result.iTotalDisplayRecords,
                aaData = result.aaData
            }, JsonRequestBehavior.AllowGet));
        }
        /// <summary>
        /// Event grid binding
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public JsonResult EventsBinding([DataSourceRequest] DataSourceRequest request)
        {
            SearchFilters filtermodel = HttpContext.Session.GetComplexData <SearchFilters>("Filters");

            filtermodel          = filtermodel != null ? filtermodel : new SearchFilters();
            filtermodel.PageSize = request.PageSize;
            IEnumerable <EventsDto> model = null;

            if (string.IsNullOrEmpty(filtermodel.FilterType))
            {
                model = logMessagesService.GetLatestLogs(Convert.ToInt32(pageSize));
            }
            else if (filtermodel.FilterType == "search")
            {
                filtermodel.PageNumber = 1;
                model = logMessagesService.GetLogMessages(filtermodel);
            }
            else if (filtermodel.FilterType == "other")
            {
                model = logMessagesService.GetLogMessages(filtermodel);
            }
            request.Page = 1;

            var data = model.ToDataSourceResult(request);

            filtermodel.FilterType = "other";
            HttpContext.Session.SetComplexData("Filters", filtermodel);
            return(Json(data));
        }
        public SearchDocument.UpdateVersionListAndOwners UpdateVersionListAndOwnersFromCatalog(
            string packageId,
            SearchFilters searchFilters,
            DateTimeOffset lastCommitTimestamp,
            string lastCommitId,
            string[] versions,
            bool isLatestStable,
            bool isLatest,
            string[] owners)
        {
            var document = new SearchDocument.UpdateVersionListAndOwners();

            PopulateVersions(
                document,
                packageId,
                searchFilters,
                lastUpdatedFromCatalog: true,
                lastCommitTimestamp: lastCommitTimestamp,
                lastCommitId: lastCommitId,
                versions: versions,
                isLatestStable: isLatestStable,
                isLatest: isLatest);
            PopulateOwners(
                document,
                owners);

            return(document);
        }
        public SearchDocument.UpdateLatest UpdateLatestFromCatalog(
            SearchFilters searchFilters,
            string[] versions,
            bool isLatestStable,
            bool isLatest,
            string normalizedVersion,
            string fullVersion,
            PackageDetailsCatalogLeaf leaf,
            string[] owners)
        {
            var document = new SearchDocument.UpdateLatest();

            // Determine if we have packageTypes to forward.
            // Otherwise, we need to let the system know that there were no explicit package types
            var packageTypes = leaf.PackageTypes != null && leaf.PackageTypes.Count > 0 ?
                               leaf.PackageTypes.Select(pt => pt.Name).ToArray() :
                               null;

            PopulateUpdateLatest(
                document,
                leaf.PackageId,
                searchFilters,
                lastUpdatedFromCatalog: true,
                lastCommitTimestamp: leaf.CommitTimestamp,
                lastCommitId: leaf.CommitId,
                versions: versions,
                isLatestStable: isLatestStable,
                isLatest: isLatest,
                fullVersion: fullVersion,
                owners: owners,
                packageTypes: packageTypes);
            _baseDocumentBuilder.PopulateMetadata(document, normalizedVersion, leaf);

            return(document);
        }
示例#6
0
        public SearchResultModel GetProjectSearchResults(string term, string version = null)
        {
            var filters       = new List <SearchFilters>();
            var searchFilters = new SearchFilters(BooleanOperation.And);

            //MUST be live
            searchFilters.Filters.Add(new SearchFilter("projectLive", "1"));
            filters.Add(searchFilters);
            //need to clean up this string, it could be all sorts of things
            if (version != null)
            {
                var parsedVersion = version.GetFromUmbracoString();
                if (parsedVersion != null)
                {
                    var numericalVersion = parsedVersion.GetNumericalValue();
                    var versionFilters   = new SearchFilters(BooleanOperation.Or);
                    versionFilters.Filters.Add(new RangeSearchFilter("num_version", 0, numericalVersion));
                    filters.Add(versionFilters);
                }
            }

            // track search
            var ga = new GoogleAnalytics(Request.Headers.GetCookies("_ga"));

            ga.SendSearchQuery(term, "projects");

            var searcher     = new OurSearcher(term, nodeTypeAlias: "project", filters: filters);
            var searchResult = searcher.Search("projectSearcher");

            return(searchResult);
        }
        public JsonResult SearchResultsApplyInputFilter()
        {
            GridDescriptor request = new GridDescriptor(new SortDescriptor()
            {
                PropertyName = "Name", Order = SortOrder.Ascending
            });

            BaseSearchModel model   = new BaseSearchModel();
            SearchFilters   filters = new SearchFilters();
            IDictionary <string, object> allFilters = BreadcrumbNavigationGetSet(filters, null);

            filters = (SearchFilters)(allFilters["filters"]);
            if (allFilters.ContainsKey("advFilters"))
            {
                model = SearchResults(filters, "", (AdvSearchFiltersAll)allFilters["advFilters"], request);
            }
            else
            {
                model = SearchResults(filters, "", null, request);
            }
            SearchResultsCondition filterModel = GetFiltersModel(filters);

            model.Filter = filterModel;
            return(Json(ResponseStatus.Success, RenderPartialViewToString("ResultsContainer", model), JsonRequestBehavior.AllowGet));
        }
 public async Task VisitorDepartureExceptionAsyncTests()
 {
     this.httpClientHelper.Setup(mock => mock.Retrieve(It.IsAny<string>(), It.IsAny<CancellationToken>())).Returns(Task.FromResult(string.Empty));
     var searchParameter = new SearchFilters { SearchType = "visitor", PageSize = 10, PageNumber = 1 };
     await this.reportRepository.VisitorDepartureExceptionAsync(searchParameter);
     Assert.IsTrue(true);
 }
示例#9
0
        public void LoadByFilters(IFilterControlView filterView, int catId)
        {
            SearchFilters filters = new SearchFilters()
            {
                IsBuyItNow      = filterView.IsBuyItNow,
                IsBidding       = filterView.IsBidding,
                IsMinPrice      = filterView.IsMinPrice,
                IsMaxPrice      = filterView.IsMaxPrice,
                IsMinOffersNum  = filterView.IsMinOffersNum,
                IsMaxOffersNum  = filterView.IsMaxOffersNum,
                IsMinViewsCount = filterView.IsMinViewsCount,
                IsMaxViewsCount = filterView.IsMaxViewsCount,
                IsMaxTimeLeft   = filterView.IsMaxTimeLeft,
                IsShipmentType  = filterView.IsShipmentType,
                Search          = filterView.Search,
                CatId           = catId
            };

            filters.ShipmentId    = ExtensionMethod.TryIntParse(filterView.ShipmentId);
            filters.MinPrice      = ExtensionMethod.TryIntParse(filterView.MinPrice);
            filters.MaxPrice      = ExtensionMethod.TryIntParse(filterView.MaxPrice);
            filters.MinOffersNum  = ExtensionMethod.TryIntParse(filterView.MinOffersNum);
            filters.MaxOffersNum  = ExtensionMethod.TryIntParse(filterView.MaxOffersNum);
            filters.MinViewsCount = ExtensionMethod.TryIntParse(filterView.MinViewsCount);
            filters.MaxViewsCount = ExtensionMethod.TryIntParse(filterView.MaxViewsCount);
            filters.MaxDaysLeft   = ExtensionMethod.TryIntParse(filterView.MaxDaysLeft);

            auctions = auctionsRepo.SearchWithFilters(filters);
        }
        /// <summary>
        /// Event grid binding
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public JsonResult EventsBinding([DataSourceRequest] DataSourceRequest request)
        {
            IEnumerable <EventsDto> model       = null;
            SearchFilters           filtermodel = HttpContext.Session.GetComplexData <SearchFilters>("Filters");

            filtermodel            = filtermodel != null ? filtermodel : new SearchFilters();
            filtermodel.PageNumber = request.Page;
            filtermodel.PageSize   = request.PageSize;
            if (request.Page == 1 && string.IsNullOrEmpty(filtermodel.FilterType))
            {
                model = logMessagesService.GetLatestLogs(Convert.ToInt32(pageSize));
            }
            else if (!string.IsNullOrEmpty(filtermodel.FilterType))
            {
                filtermodel.PageNumber = 1;
                model = logMessagesService.GetLogMessages(filtermodel);
            }
            else
            {
                model = logMessagesService.GetLogMessages(filtermodel);
            }


            request.Page = 1;
            var data = model.ToDataSourceResult(request);

            if (model.Count() > 0)
            {
                data.Total = model.FirstOrDefault().TotalCount;
            }
            filtermodel.FilterType = "";
            HttpContext.Session.SetComplexData("Filters", filtermodel);
            return(Json(data));
        }
示例#11
0
        public async Task <Models.SystemModels.Offers> GetOffersAsync(SearchFilters filters)
        {
            var client      = new HttpClient();
            var contentType = new MediaTypeWithQualityHeaderValue("application/json");

            client.BaseAddress = new Uri(ConstantData.DataBaseApiUrl);
            client.DefaultRequestHeaders.Accept.Add(contentType);

            var resourceUrl = String.Concat(ConstantData.DataBaseResourceUrl, GetQueryString(filters));
            var response    = await client.GetAsync(resourceUrl);

            var stringData = await response.Content.ReadAsStringAsync();

            var data = JsonConvert.DeserializeObject <ExpediaOffers>(stringData);

            var mappedOffers = mapper.Map <Models.SystemModels.Offers>(data.Offers);

            mappedOffers.Hotels = mappedOffers.Hotels
                                  .OrderByDescending(hotel => hotel.HotelInfo.GuestReviewRating)
                                  .ThenByDescending(hotel => hotel.HotelInfo.StarRating)
                                  .ThenBy(hotel => hotel.PricingInfo.AveragePriceValue)
                                  .ToList();

            return(mappedOffers);
        }
示例#12
0
        public SearchResultModel GetProjectSearchResults(string term, string version = null)
        {
            var filters       = new List <SearchFilters>();
            var searchFilters = new SearchFilters(BooleanOperation.And);

            //MUST be live
            searchFilters.Filters.Add(new SearchFilter("projectLive", "1"));
            filters.Add(searchFilters);
            //need to clean up this string, it could be all sorts of things
            if (version != null)
            {
                var parsedVersion = version.GetFromUmbracoString();
                if (parsedVersion != null)
                {
                    var numericalVersion = parsedVersion.GetNumericalValue();
                    var versionFilters   = new SearchFilters(BooleanOperation.Or);
                    versionFilters.Filters.Add(new RangeSearchFilter("num_version", 0, numericalVersion));
                    versionFilters.Filters.Add(new RangeSearchFilter("num_compatVersions", 0, numericalVersion));
                    filters.Add(versionFilters);
                }
            }

            var searcher     = new OurSearcher(term, nodeTypeAlias: "project", filters: filters);
            var searchResult = searcher.Search("projectSearcher");

            return(searchResult);
        }
示例#13
0
        public void TestFilter()
        {
            var sf = new SearchFilters();

            sf.AddFilter("header", "value", MatchType.StringEqual);
            Assert.AreEqual(1, sf.Filters.Length);
        }
示例#14
0
        public SearchResultModel GetForumSearchResults(string term, string forum = "")
        {
            int forumId;
            var filters = new List <SearchFilters>();

            if (int.TryParse(forum, out forumId))
            {
                var searchFilters = new SearchFilters(BooleanOperation.And);
                searchFilters.Filters.Add(new SearchFilter("parentId", forumId.ToString()));
                filters.Add(searchFilters);
            }

            var searcher     = new OurSearcher(term, nodeTypeAlias: "forum", filters: filters);
            var searchResult = searcher.Search("ForumSearcher");

            foreach (var result in searchResult.SearchResults)
            {
                result.Fields["url"] = result.FullUrl();

                //Since these results are going to be displayed in the forum, we need to convert the date field to
                // the 'relative' value that is normally shown for the forum date
                var updateDate = result.Fields["updateDate"] = DateTools.StringToDate(result.Fields["updateDate"]).ConvertToRelativeTime();
                var createDate = result.Fields["createDate"] = DateTools.StringToDate(result.Fields["createDate"]).ConvertToRelativeTime();
            }



            return(searchResult);
        }
        private static int GetProjectDownloadCount(int projectId)
        {
            try
            {
                var searchFilters = new SearchFilters(BooleanOperation.And);

                searchFilters.Filters.Add(new SearchFilter("__NodeId", projectId));

                var filters = new List <SearchFilters> {
                    searchFilters
                };

                var ourSearcher = new OurSearcher(null, "project", filters: filters);

                var results = ourSearcher.Search("projectSearcher");

                if (results.SearchResults.TotalItemCount > 0)
                {
                    var packageResult = results.SearchResults.First();

                    if (packageResult.Fields.ContainsKey("downloads"))
                    {
                        return(int.Parse(packageResult.Fields["downloads"]));
                    }
                }

                return(0);
            }
            catch
            {
                return(0);
            }
        }
        public SearchResult GetBySearchCondition(SearchFilters searchFilters)
        {
            //var getCampusInfo = new BaseCore(ConnectionStringManger.CampusBd, SQLFileProvider.SelectByConditionFromCampusTable, new SqlParameter[]
            //    {
            //        new SqlParameter("@Surname","N'%'" + searchFilters.LastName + "'%'"),
            //        new SqlParameter("@Name","N'%'" + searchFilters.FirstName + "'%'"),
            //        new SqlParameter("@DutiesName","N'%'" + searchFilters.Position + "'%'"),
            //    }).LocalTable;
            //var getVKDInfo = new BaseCore(ConnectionStringManger.VkdBd, SQLFileProvider.SelectByConditionFromViewVKD, new SqlParameter[]
            //{
            //    new SqlParameter("@Surname","N'%'" + searchFilters.LastName + "'%'"),
            //    new SqlParameter("@Name","N'%'" + searchFilters.FirstName + "'%"),
            //    new SqlParameter("@DutiesName","N'%'" + searchFilters.Position + "'%'"),
            //}).LocalTable;
            var getCampusInfo = new BaseCore(ConnectionStringManger.CampusBd,
                                             string.Format(SQLFileProvider.SelectByConditionFromCampusTable, searchFilters.LastName, searchFilters.FirstName, searchFilters.Position, searchFilters.TableName)).LocalTable;
            var getVKDInfo = new BaseCore(ConnectionStringManger.VkdBd,
                                          string.Format(SQLFileProvider.SelectByConditionFromViewVKD, searchFilters.LastName, searchFilters.FirstName, searchFilters.Position, searchFilters.ViewName)).LocalTable;

            var result = new SearchResult
            {
                CampusResult = getCampusInfo,
                ViewResult   = getVKDInfo
            };

            return(result);
        }
示例#17
0
        //public string GetEconomyPdf(SearchFilters searchFilters)
        //{
        //    DateTime sDate = searchFilters.PuDate;
        //    DateTime eDate = searchFilters.DoDate;
        //    EcoBookings s = new EcoBookings(Const.Locations[searchFilters.Location].EcoBoking);
        //    JSourceReader s1 = new JSourceReader();
        //    sDate = sDate.AddDays(1);
        //    eDate = eDate.AddDays(1);
        //    s.InitDate(sDate);

        //    int numOfIterations = (eDate - sDate).Days;

        //    List<string> links = s.GetGeneratedLinksByDate(sDate, eDate);
        //    List<JOffer> minOffers = new List<JOffer>();
        //    Dictionary<string, Dictionary<string, JOffer>> offerMap = new Dictionary<string, Dictionary<string, JOffer>>();

        //    for (int i = 0; i < links.Count; i++)
        //        offerMap.Add(links[i], new Dictionary<string, JOffer>());

        //    List<Thread> threads = new List<Thread>();
        //    for (int i = 0; i < links.Count; i++)
        //    {
        //        JSourceReader reader = new JSourceReader();
        //        List<JOffer> offers = reader.GetBookingOffers(
        //                            reader.GetBookingsSource(links.ElementAt(i), links.ElementAt(i)));

        //        offerMap[links.ElementAt(i)] =
        //                reader.GetMapNorwegian(offers);

        //    }
        //    return CreatePdf(s, offerMap);
        //}

        public string GetExpediaPdf(SearchFilters searchFilters)
        {
            DateTime      sDate = searchFilters.PuDate;
            DateTime      eDate = searchFilters.DoDate;
            Expedia       s     = new Expedia(Const.Locations[searchFilters.Location].EcoBoking);
            JSourceReader s1    = new JSourceReader();

            sDate = sDate.AddDays(1);
            eDate = eDate.AddDays(1);
            s.InitDate(sDate);

            int numOfIterations = (eDate - sDate).Days;

            List <string> links     = s.GetGeneratedLinksByDate(sDate, eDate);
            List <JOffer> minOffers = new List <JOffer>();
            Dictionary <string, Dictionary <string, JOffer> > offerMap = new Dictionary <string, Dictionary <string, JOffer> >();

            for (int i = 0; i < links.Count; i++)
            {
                offerMap.Add(links[i], new Dictionary <string, JOffer>());
            }

            List <Thread> threads = new List <Thread>();

            for (int i = 0; i < links.Count; i++)
            {
                JSourceReader reader = new JSourceReader();
                List <JOffer> offers = reader.GetExpediaOffers(
                    reader.GetExpediaSource(links.ElementAt(i)));

                offerMap[links.ElementAt(i)] =
                    reader.GetMapNorwegian(offers);
            }
            return(CreatePdf(s, offerMap));
        }
示例#18
0
 public ActionResult <List <EventsDto> > PostLogMessage([FromBody] SearchFilters filters)
 {
     filters            = filters == null ? new SearchFilters() : filters;
     filters.PageNumber = 1;
     filters.PageSize   = 20;
     return(logMessagesService.GetLogMessages(filters).ToList());
 }
示例#19
0
        public string GetResultFileName(SearchFilters searchFilters)
        {
            Log.Instance.Warn("---Begin: GetResultFileName");
            string   fileName = "";
            SiteBase site     = null;

            try
            {
                if (ModelState.IsValid)
                {
                    DbUpdates.PdfCreated(searchFilters, User.Identity.Name);

                    return(fileName = new Rates().GetPdfLocation(site, searchFilters));
                }
                else
                {
                    Log.Instance.Warn("---ModelState not Valid: GetResultFileName");

                    return("");
                }
            }
            catch (Exception ex)
            {
                Log.Instance.Error("--- " + ex.Message + "\n " + ex.InnerException + "\n" + ex.StackTrace);
                return("");
            }
        }
示例#20
0
        public IEnumerable <QuestionInfo> GetAllQuestions(long userId, SearchFilters filters)
        {
            using (IDbConnection Db = _connection)
            {
                if (filters.SearchKey == null)
                {
                    filters.SearchKey = "";
                }
                string sQuery = $"SELECT * FROM QUESTIONSVIEW WHERE (TITLE LIKE @SEARCHKEY OR DESCRIPTION LIKE @SEARCHKEY)";
                if (filters.CategoryId != 0)
                {
                    sQuery = $"{sQuery} AND CATEGORYID = @CATEGORYID";
                }

                if (filters.Show == ShowOption.MyQuestions)
                {
                    sQuery = $"{sQuery} AND ASKEDBYID = @USERID";
                }
                else if (filters.Show == ShowOption.MyParticipation)
                {
                    sQuery = $"{sQuery} AND (SELECT COUNT(*) FROM ANSWER WHERE QUESTIONID = QUESTIONSVIEW.ID AND ANSWEREDBY = @USERID)>0";
                }

                if (filters.SortBy == SortByOption.Recent)
                {
                    sQuery = $"{sQuery} ORDER BY ASKEDON DESC";
                }
                return(Db.Query <Data.QuestionInfo>(sQuery, new { USERID = userId, CATEGORYID = filters.CategoryId, SEARCHKEY = $"%{filters.SearchKey}%" }).MapCollectionTo <QuestionInfo>());
            }
        }
示例#21
0
        public static string GetSearchDocumentKey(string packageId, SearchFilters searchFilters)
        {
            var lowerId   = packageId.ToLowerInvariant();
            var encodedId = EncodeKey(lowerId);

            return($"{encodedId}-{GetSearchFilterString(searchFilters)}");
        }
示例#22
0
        public string GetResultFileName(SearchFilters searchFilters)
        {
            string fileName = "";

            if (ModelState.IsValid)
            {
                switch (searchFilters.Source)
                {
                case 1:
                    fileName = GetRentalPdf(searchFilters);
                    break;

                case 2:
                    fileName = GetCarTrawlerPdf(searchFilters);
                    break;

                case 3:
                    fileName = GetScannerPdf(searchFilters);
                    break;
                    //case 4:
                    //    fileName = GetEconomyPdf(searchFilters);
                    //    break;
                    //case 5:
                    //    fileName = GetVehicleRentPdf(searchFilters);
                    //    break;
                }
                return(fileName);
            }
            else
            {
                return("");
            }
        }
示例#23
0
            public void ExcludingSemVer2WithOnlySemVer2(SearchFilters searchFilters)
            {
                var versionLists = VersionLists("1.0.0+git", "2.0.0-alpha.1");

                var actual = _target.LatestFlagsOrNull(versionLists, searchFilters);

                Assert.Null(actual);
            }
示例#24
0
            public void ExcludePrereleaseWithOnlyOnePrereleaseVersion(SearchFilters searchFilters)
            {
                var versionLists = VersionLists("1.0.0-alpha");

                var actual = _target.LatestFlagsOrNull(versionLists, searchFilters);

                Assert.Null(actual);
            }
示例#25
0
        public void test_GetMany_CallsRecordServiceSearchWithCriteria()
        {
            SearchFilters f = new SearchFilters();

            _controller.Get(f);

            _recordService.Verify(x => x.Search(It.Is <SearchFilters>(sf => f.Equals(sf))));
        }
示例#26
0
        private SearchFilters GetFilters()
        {
            var filters = Filters?
                          .SelectMany(x => x.Filters);

            if (filters == null)
            {
                return(null);
            }

            var searchFilters = new SearchFilters();

            foreach (var filter in filters)
            {
                var property = searchFilters.GetType().GetProperty(filter.Type);
                if (property == null)
                {
                    continue;
                }

                var typeObject = property.GetValue(searchFilters);
                property = typeObject.GetType().GetProperty("Filters");
                if (property == null)
                {
                    continue;
                }

                var filtersObject = property.GetValue(typeObject);
                property = filtersObject.GetType().GetProperty(filter.Id);
                if (property == null)
                {
                    continue;
                }

                if (property.PropertyType == typeof(SearchFilterOption) && (filter.Enabled || filter.ApplyNegative))
                {
                    property.SetValue(filtersObject, new SearchFilterOption(filter.Enabled ? "true" : "false"));
                }
                else if (property.PropertyType == typeof(SearchFilterValue))
                {
                    if (!filter.Enabled)
                    {
                        continue;
                    }
                    var valueObject = new SearchFilterValue
                    {
                        Max    = filter.Max,
                        Min    = filter.Min,
                        Option = filter.Option?.Value,
                    };
                    property.SetValue(filtersObject, valueObject);
                }
            }

            searchFilters.TypeFilters.Filters.Category = new SearchFilterOption(SelectedCategory);

            return(searchFilters);
        }
示例#27
0
 /// <summary>
 /// Searches addreses by specfied filter
 /// </summary>
 /// <param name="search"></param>
 /// <param name="filter"></param>
 private void FilterFromBy(SearchFilters search, string filter)
 {
     switch (search)
     {
     case SearchFilters.Contains:
         filtred = filtred.Where((m) => GetString(m.From).Contains(filter)).ToList();
         break;
     }
 }
        public PagedResult <LibraryCard> Search(SearchFilters filter, PageArgs pageArgs)
        {
            ApplyCustomerNameFilter(filter.CustomerName);

            var pagedResult = GetPageData(DataSet, pageArgs).ToList();
            var mappedData  = pagedResult.Select(c => c.Map());

            return(CreatePagedResult(mappedData, pageArgs));
        }
        public JsonResult SearchEvents(SearchFilters model)
        {
            //model.PageNumber = 1;
            model.PageSize   = Convert.ToInt32(pageSize);
            ViewBag.PageSize = Convert.ToInt32(pageSize);
            HttpContext.Session.SetComplexData("Filters", model);

            return(Json("ok"));
        }
        public static IEnumerable <Customer> GetCustomerForRentedBook(ICustomerAdapter customerAdapter, Guid rentedBookId)
        {
            var searchFilter = new SearchFilters
            {
                RentedBookId = rentedBookId
            };

            return(customerAdapter.Search(searchFilter, null).PageData);
        }
示例#31
0
 public CamlFilters(SearchFilters searchFilters)
 {
     this.IsOr = searchFilters.IsOr;
     foreach (SearchFilter searchFilter in searchFilters)
     {
         CamlFilter filter = new CamlFilter(searchFilter);
         this.Filters.Add(filter);
     }
 }
示例#32
0
 /// <summary>
 /// Retrieves the movement summary report asynchronous.
 /// </summary>
 /// <param name="filters">The filters.</param>
 /// <returns>
 /// List Result of Movement Summary Report.
 /// </returns>
 public async Task<ListResult<MovementSummaryReport>> RetrieveMovementSummaryReportAsync(SearchFilters filters)
 {
     return await this.reportRepository.RetrieveMovementSummaryReportAsync(filters);
 }
示例#33
0
 /// <summary>
 /// Guests the departure exception asynchronous.
 /// </summary>
 /// <param name="filter">The filter.</param>
 /// <returns>
 /// Guest Departure Exception List according to search parameter
 /// </returns>
 public async Task<ListResult<DepartureExceptionGuestManifest>> GuestDepartureExceptionAsync(SearchFilters filter)
 {
     return await this.reportRepository.GuestDepartureExceptionAsync(filter);
 }
        /// <summary>
        /// Prepares the person search result.
        /// </summary>
        /// <param name="searchFor">The search for.</param>
        /// <param name="isAll">The is all.</param>
        /// <param name="searchPresenter">The search presenter.</param>
        /// <param name="searchFilter">The search filter.</param>
        /// <returns>The Task.</returns>
        private async Task PreparePersonSearchResult(string searchFor, bool? isAll, GlobalSearchPresenter searchPresenter, SearchFilters searchFilter)
        {
            var personSearchResult = await this.personManager.GetPersonsAsync(searchFilter, searchPresenter.AuthenticationToken);
            searchPresenter.GuestTotalResults = personSearchResult.GuestTotalResults;
            searchPresenter.CrewTotalResults = personSearchResult.CrewTotalResults;
            searchPresenter.VisitorTotalResults = personSearchResult.VisitorTotalResults;

            SessionData.Instance.PersonItemListResult.Clear();
            SessionData.Instance.AssignPersonSearchResult(personSearchResult.Items.ToList());

            searchPresenter.IsAll = isAll;
            if (!string.IsNullOrEmpty(searchFor))
            {
                if (!searchFor.Equals(AllConstant, StringComparison.OrdinalIgnoreCase))
                {
                    searchPresenter.SelectedPersonType = searchFor;
                    searchPresenter.SelectedOptionType = searchFor;
                }
                else if (string.IsNullOrEmpty(searchPresenter.SelectedPersonType) && searchFor.Equals(AllConstant, StringComparison.OrdinalIgnoreCase))
                {
                    searchPresenter.SelectedOptionType = searchPresenter.GuestTotalResults > 0 ? GuestConstant : searchPresenter.CrewTotalResults > 0 ? CrewConstant : searchPresenter.VisitorTotalResults > 0 ? VisitorConstant : string.Empty;
                }
            }

            if (personSearchResult.Items.Count > 0)
            {
                searchPresenter.AssignPersonSearchResult(personSearchResult);
            }
        }
 /// <summary>
 /// Retrieves the port manning detail.
 /// </summary>
 /// <param name="searchFilters">The search filters.</param>
 /// <returns>
 /// The Collection of In Port Manning Details.
 /// </returns>
 public async Task<ListResult<PortManning>> RetrievePortManningDetail(SearchFilters searchFilters)
 {
     return await this.repository.RetrievePortManningDetail(searchFilters);
 }
示例#36
0
 /// <summary>
 /// Assigns the movement data.
 /// </summary>
 /// <param name="searchParameter">The search parameter.</param>
 public void AssignMovementSummaryData(SearchFilters searchParameter)
 {
     if (searchParameter != null)
     {
         this.movementSummarySearchParameter = searchParameter;
     }
 }
        /// <summary>
        /// Visitors the list.
        /// </summary>
        /// <param name="presenter">The presenter.</param>
        /// <returns>
        /// Visitor List view
        /// </returns>
        public async Task<ActionResult> VisitorList(VisitorPresenter presenter)
        {
            ModelState.Clear();
            var searchFilter = new SearchFilters();
            searchFilter.PageNumber = 1;
            searchFilter.MaxResult = this.ApplicationSettings.MaxPageSize;
            var visitorList = await this.visitorManager.GetVisitorsAsync(searchFilter);
            if (visitorList != null)
            {
                SessionData.Instance.AssignVisitorSearchResult(visitorList);
                this.ExtractOnLoadPagedRecords(presenter);
            }

            return this.View(presenter);
        }
示例#38
0
 /// <summary>
 /// Gets the persons asynchronous.
 /// </summary>
 /// <param name="searchFilter">The search filter.</param>
 /// <param name="authenticationToken">The authentication token.</param>
 /// <returns>
 /// The List Result of Persons.
 /// </returns>
 public async Task<ListResult<Person>> GetPersonsAsync(SearchFilters searchFilter, string authenticationToken)
 {
     var personSearchResult = await this.personRepository.GetPersonsAsync(searchFilter);
     personSearchResult.AssignItems(personSearchResult.Items.Select(item => { item.ProfilePhotoAddress = !string.IsNullOrEmpty(item.ProfilePhotoAddress) ? item.ProfilePhotoAddress + AuthConst + authenticationToken + ImageSizeConst + ThumbnailConst : DefaultThumbnailImage; return item; }).ToList());
     return personSearchResult;
 }
 public ExpenseReportSearchModel()
 {
     Results = Enumerable.Empty<ExpenseReport>().ToArray();
     Filters = new SearchFilters();
 }
        /// <summary>
        /// Sets the type of the search filter by.
        /// </summary>
        /// <param name="presenter">The presenter.</param>
        /// <param name="searchType">Type of the search.</param>
        /// <param name="searchFilter">The search filter.</param>
        private static void SetSearchFilterByType(VisitorPresenter presenter, string searchType, SearchFilters searchFilter)
        {
            if (!string.IsNullOrEmpty(searchType))
            {
                switch (searchType)
                {
                    case PassportNo:
                        searchFilter.DocumentNumber = presenter.SearchText;
                        searchFilter.DocumentTypeId = OneConst;
                        break;

                    case LastName:
                        searchFilter.LastNameContains = presenter.SearchText;
                        break;

                    case Birthdate:
                        searchFilter.Birthdate = presenter.SearchText;
                        break;

                    default:
                        searchFilter.LastNameContains = presenter.SearchText;
                        break;
                }
            }
        }
 /// <summary>
 /// Gets the visitors asynchronous.
 /// </summary>
 /// <param name="searchFilter">The search filter.</param>
 /// <returns>
 /// Filtered Visitor list
 /// </returns>
 public async Task<ListResult<Visitor>> GetVisitorsAsync(SearchFilters searchFilter)
 {
     var uri = string.Format(GetVisitorListRelativeAddress, this.BaseAddress, VisitorResource, searchFilter.LastNameContains, searchFilter.Birthdate, searchFilter.Citizenship, searchFilter.DocumentTypeId, searchFilter.DocumentNumber, searchFilter.VisitorType, searchFilter.VisitPurpose, searchFilter.ShipTime, searchFilter.StartDate, searchFilter.EndDate, searchFilter.MaxResult, OrderByAddedDateConstant, searchFilter.PageNumber, searchFilter.Status.HasValue ? searchFilter.Status.Value ? "True" : "False" : string.Empty);
     var visitors = await this.httpClientHelper.Retrieve(uri, new CancellationToken(false));
     var visitorsData = !string.IsNullOrEmpty(visitors) ? JsonConvert.DeserializeObject<ListResult<Visitor>>(visitors) : default(ListResult<Visitor>);
     return visitorsData;
 }
 /// <summary>
 /// Retrieves the port manning detail.
 /// </summary>
 /// <param name="searchFilter">The search filter.</param>
 /// <returns>
 /// The Collection of In Port Manning Details.
 /// </returns>
 public async Task<ListResult<PortManning>> RetrievePortManningDetail(SearchFilters searchFilter)
 {
     var portManningDetail = string.Empty;
     var uri = string.Format(CultureInfo.InvariantCulture, PortManningRelativeAddress, this.BaseAddress, PortManningResource, searchFilter.ShipId, searchFilter.DepartmentIds, searchFilter.PortId, searchFilter.PortArrivalDate, searchFilter.MaxResult, searchFilter.PageNumber, searchFilter.Parts);
     portManningDetail = await this.httpClientHelper.Retrieve(uri, new CancellationToken(false));
     return !string.IsNullOrEmpty(portManningDetail) ? JsonConvert.DeserializeObject<ListResult<PortManning>>(portManningDetail) : default(ListResult<PortManning>);
 }
示例#43
0
 /// <summary>
 /// Gets the visitors asynchronous.
 /// </summary>
 /// <param name="searchFilter">The search filter.</param>
 /// <returns>
 /// Filtered Visitor List
 /// </returns>
 public async Task<ListResult<Visitor>> GetVisitorsAsync(SearchFilters searchFilter)
 {
     return await this.visitorRepository.GetVisitorsAsync(searchFilter);
 }
        /// <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;
        }
        /// <summary>
        /// Search Todays the visitor.
        /// </summary>
        /// <param name="presenter">The presenter.</param>
        /// <param name="searchType">Type of the search.</param>
        /// <returns>Todays Visits List </returns>
        public async Task<ActionResult> SearchTodaysVisitor(VisitorPresenter presenter, string searchType)
        {
            if (presenter != null)
            {
                var searchFilter = new SearchFilters();
                SetSearchFilterByType(presenter, searchType, searchFilter);

                var visitors = new ListResult<Visitor>();
                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));
                searchFilter.ShipTime = Convert.ToString(BaseController.GenerateLocalDateTime(DateTime.UtcNow), CultureInfo.InvariantCulture);

                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.Status = !string.IsNullOrEmpty(presenter.VisitorStatus.VisitorStatusId) ? presenter.VisitorStatus.VisitorStatusId.Equals(OnboardVisitorStatusValue) ? true : presenter.VisitorStatus.VisitorStatusId.Equals(OffboardVisitorStatusValue) ? false : default(bool?) : default(bool?);

                searchFilter.PageNumber = 1;

                searchFilter.MaxResult = searchFilter.Status.HasValue ? int.MaxValue : this.ApplicationSettings.MaxPageSize;

                if (presenter.VisitorStatus.VisitorStatusId.Equals(OnboardVisitorStatusValue))
                {
                    SessionData.Instance.VisitorStatus = OnboardVisitorStatus;
                }
                else if (presenter.VisitorStatus.VisitorStatusId.Equals(OffboardVisitorStatusValue))
                {
                    SessionData.Instance.VisitorStatus = OffboardVisitorStatus;
                }
                else
                {
                    SessionData.Instance.VisitorStatus = ExpectedVisitorStatus;
                }

                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;
                    visitors = await this.visitorManager.GetVisitorsAsync(searchFilter);
                }

                if (visitors != null && visitors.Items != null && visitors.Items.Count > 0)
                {
                    SessionData.Instance.VisitorItemListResult.Items.Clear();
                    SessionData.Instance.AssignVisitorSearchResult(visitors);
                    this.ExtractOnLoadPagedRecords(presenter);
                }
            }

            return this.PartialView(TodaysVisitListPartial, presenter);
        }
示例#46
0
        public async Task<ActionResult> AlertPassengerSearch(AlertPresenter alertPresenter)
        {
            if (alertPresenter != null && !string.IsNullOrEmpty(alertPresenter.SearchText))
            {
                ModelState.Clear();
                var searchFilter = new SearchFilters { LastNameContains = alertPresenter.SearchText, IsAlertCount = false, IsMessageCount = false };
                var persons = await this.personManager.GetPersonsAsync(searchFilter, alertPresenter.AuthenticationToken);
                alertPresenter.AssignPersonSearchResult(persons);
                SessionData.Instance.AssignPersonSearchResult(persons.Items.ToList());
                return this.PartialView(AlertPassengerListPartialView, alertPresenter);
            }

            return this.View();
        }
        /// <summary>
        /// Searches the visitor list.
        /// </summary>
        /// <param name="presenter">The presenter.</param>
        /// <param name="searchType">Type of the search.</param>
        /// <returns>
        /// The Action Result.
        /// </returns>
        public async Task<ActionResult> SearchVisitorList(VisitorPresenter presenter, string searchType)
        {
            if (presenter != null)
            {
                var searchFilter = new SearchFilters();
                SetSearchFilterByType(presenter, searchType, searchFilter);

                searchFilter.StartDate = presenter.StartDate;
                searchFilter.EndDate = presenter.EndDate;
                var visitorType = SessionData.Instance.MasterData.VisitorTypes.FirstOrDefault(item => item.VisitorTypeId.Equals(presenter.VisitorTypeId, StringComparison.InvariantCultureIgnoreCase));
                var visitorPurpose = SessionData.Instance.MasterData.VisitPurposes.FirstOrDefault(item => item.VisitPurposeId.Equals(presenter.Visit.VisitPurposeId, StringComparison.InvariantCultureIgnoreCase));
                searchFilter.Citizenship = presenter.PersonalDetail.CitizenshipCountryId;
                searchFilter.VisitPurpose = !string.IsNullOrEmpty(presenter.Visit.VisitPurposeId) && visitorPurpose != null ? visitorPurpose.VisitPurposeId : string.Empty;
                searchFilter.VisitorType = !string.IsNullOrEmpty(presenter.VisitorTypeId) && visitorType != null ? visitorType.VisitorTypeId : string.Empty;
                searchFilter.PageNumber = 1;
                searchFilter.MaxResult = this.ApplicationSettings.MaxPageSize;

                var visitors = new ListResult<Visitor>();

                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;
                    visitors = await this.visitorManager.GetVisitorsAsync(searchFilter);
                }

                if (visitors != null && visitors.Items != null && visitors.Items.Count > 0)
                {
                    SessionData.Instance.AssignVisitorSearchResult(visitors);
                    this.ExtractOnLoadPagedRecords(presenter);
                }
            }

            return this.PartialView("_ListVisitor", presenter);
        }
示例#48
0
        /// <summary>
        /// Gets the persons asynchronous.
        /// </summary>
        /// <param name="searchFilter">The search filter.</param>
        /// <returns>
        /// The List Result of Persons
        /// </returns>
        public async Task<ListResult<Person>> GetPersonsAsync(SearchFilters searchFilter)
        {
            if (!searchFilter.PageNumber.HasValue)
            {
                searchFilter.PageNumber = DefaultPageNumber;
            }

            if (!(searchFilter.MaxResult > 0))
            {
                searchFilter.MaxResult = int.MaxValue;
            }

            var uri = string.Format(GetPersonRelativeAddress, BaseAddress, PersonDataResource, searchFilter.LastNameContains, searchFilter.PersonTypeId, searchFilter.Stateroom, searchFilter.VoyageId, searchFilter.PassportNo, searchFilter.ReservationNo, searchFilter.Birthdate, searchFilter.Citizenship, searchFilter.IsAlertCount, searchFilter.IsMessageCount, searchFilter.IsMessage, searchFilter.MaxResult, searchFilter.PageNumber, searchFilter.IsAll, searchFilter.IsAutoComplete);
            var person = await this.httpClientHelper.Retrieve(uri, new CancellationToken(false));
            var personData = !string.IsNullOrEmpty(person) ? JsonConvert.DeserializeObject<ListResult<Person>>(person) : default(ListResult<Person>);
            return personData;
        }
        /// <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>
        /// Sets the search filters.
        /// </summary>
        /// <param name="searchFilter">The search filter.</param>
        /// <param name="searchType">Type of the search.</param>
        /// <param name="searchText">The search text.</param>
        /// <param name="searchFor">The search for.</param>
        /// <param name="pageNumber">The page number.</param>
        /// <returns>
        /// search filters
        /// </returns>
        private SearchFilters SetSearchFilters(SearchFilters searchFilter, string searchType, string searchText, string searchFor, int pageNumber)
        {
            var personTypeDetail = SessionData.Instance.MasterData.PersonTypes.FirstOrDefault(item => item.Name.Equals(searchFor, StringComparison.OrdinalIgnoreCase));
            searchFilter.PersonTypeId = personTypeDetail != null ? personTypeDetail.PersonTypeId : string.Empty;

            if (searchType.Equals(Stateroom, StringComparison.OrdinalIgnoreCase))
            {
                searchFilter.Stateroom = searchText;
            }
            else if (searchType.Equals(BookingNo, StringComparison.OrdinalIgnoreCase))
            {
                searchFilter.ReservationNo = searchText;
            }
            else if (searchType.Equals(PassportNo, StringComparison.OrdinalIgnoreCase))
            {
                searchFilter.PassportNo = searchText;
            }
            else if (searchType.Equals(LastName, StringComparison.OrdinalIgnoreCase))
            {
                searchFilter.LastNameContains = searchText;
            }
            else if (searchType.Equals(Birthdate, StringComparison.OrdinalIgnoreCase) && (string.IsNullOrEmpty(searchFilter.PersonTypeId) || searchFilter.PersonTypeId.Equals(VisitorPersonTypeId, StringComparison.OrdinalIgnoreCase)))
            {
                searchFilter.Birthdate = searchText;
            }

            searchFilter.MaxResult = ApplicationSettings.MaxPageSize;

            searchFilter.PageNumber = pageNumber;

            searchFilter.VoyageId = string.Join(CommaSeparator, SessionData.Instance.MasterData.Voyages.Select(id => id.VoyageId));

            return searchFilter;
        }
示例#51
0
 /// <summary>
 /// Gets the persons with alert or message count asynchronous.
 /// </summary>
 /// <param name="searchFilter">The search filter.</param>
 /// <returns>
 /// The List Result of Persons.
 /// </returns>
 public async Task<ListResult<Person>> GetPersonsAlertAndMessageAsync(SearchFilters searchFilter)
 {
     return await this.personRepository.GetPersonsAlertAndMessageAsync(searchFilter);
 }
示例#52
0
 /// <summary>
 /// Visitors the departure exception asynchronous.
 /// </summary>
 /// <param name="filter">The filter.</param>
 /// <returns>
 /// Visitor Departure Exception Data
 /// </returns>
 public async Task<ListResult<DepartureExceptionVisitorManifest>> VisitorDepartureExceptionAsync(SearchFilters filter)
 {
     var uri = string.Format(GetExceptionReportRelativeAddress, BaseAddress, DepartureExceptionResources, filter.SearchType, filter.VoyageId, filter.PageSize, filter.PageNumber);
     var visitorManifest = await this.httpClientHelper.Retrieve(uri, new CancellationToken(false));
     var visitorManifestData = !string.IsNullOrEmpty(visitorManifest) ? JsonConvert.DeserializeObject<ListResult<DepartureExceptionVisitorManifest>>(visitorManifest) : default(ListResult<DepartureExceptionVisitorManifest>);
     return visitorManifestData;
 }
示例#53
0
 /// <summary>
 /// Assigns the CBP data.
 /// </summary>
 /// <param name="searchParameter">The parameter.</param>
 public void AssignCBPData(SearchFilters searchParameter)
 {
     if (searchParameter != null)
     {
         this.cbpSearchParameter = searchParameter;
     }
 }
示例#54
0
 /// <summary>
 /// Retrieves the movement summary report asynchronous.
 /// </summary>
 /// <param name="filters">The filters.</param>
 /// <returns>
 /// The list result of Movement Summary Report.
 /// </returns>
 public async Task<ListResult<MovementSummaryReport>> RetrieveMovementSummaryReportAsync(SearchFilters filters)
 {
     var uri = string.Format(GetMovementSummaryRelativeAddress, BaseAddress, MovementSummaryReportResource, filters.PersonTypeId, filters.PageSize, filters.PageNumber);
     var movementSummaryReport = await this.httpClientHelper.Retrieve(uri, new CancellationToken(false));
     var movementSummaryReportData = !string.IsNullOrEmpty(movementSummaryReport) ? JsonConvert.DeserializeObject<ListResult<MovementSummaryReport>>(movementSummaryReport) : default(ListResult<MovementSummaryReport>);
     return movementSummaryReportData;
 }
示例#55
0
 /// <summary>
 /// Assigns the departure exception data.
 /// </summary>
 /// <param name="searchParameter">The search parameter.</param>
 public void AssignDepartureExceptionData(SearchFilters searchParameter)
 {
     if (searchParameter != null)
     {
         this.departureExceptionFilters = searchParameter;
     }
 }
 public async Task RetrieveMovementSummaryReportAsyncTests()
 {
     this.httpClientHelper.Setup(mock => mock.Retrieve(It.IsAny<string>(), It.IsAny<CancellationToken>())).Returns(Task.FromResult(string.Empty));
     var searchParameter = new SearchFilters { PersonTypeId = "1", Birthdate = "15-07-1992", Citizenship = "US", DocumentNumber = "1", DocumentTypeId = "DL", IsAlertCount = true, IsMessage = true, IsMessageCount = true, LastNameContains = "Devis", MaxResult = 50, PageNumber = 1, PassportNo = "#2252", ReservationNo = "#2252", SearchType = "CEA", ShipTime = "2016-04-05", Stateroom = "1", VisitorType = "2", VisitPurpose = "Test", Voyage = 4534, VoyageId = "2545" };
     await this.reportRepository.RetrieveMovementSummaryReportAsync(searchParameter);
     Assert.IsTrue(true);
 }
示例#57
0
        /// <summary>
        /// Guests the CBP report print.
        /// </summary>
        /// <returns>The Task</returns>
        public async Task<ActionResult> GuestCBPReportPrint()
        {
            var reportPresenter = new ReportPresenter();

            var searchFilter = new SearchFilters();
            searchFilter = SessionData.Instance.CBPSearchParameter;
            searchFilter.PageSize = 0;
            searchFilter.PageNumber = 1;
            var summaryReport = await this.reportManager.RetrieveCBPSummaryReportAsync(searchFilter);

            if (summaryReport != null && summaryReport.Items.Count > 0)
            {
                reportPresenter.AssignCBPSummarySearchResult(summaryReport);
            }

            return this.View(CBPReportPrintView, reportPresenter);
        }
        /// <summary>
        /// Passengers the list.
        /// </summary>
        /// <param name="searchFilters">The search filters.</param>
        /// <returns>
        /// the task.
        /// </returns>
        public ActionResult PassengerList(SearchFilters searchFilters)
        {
            var passengerPresenter = new PassengerPresenter();
            if (!string.IsNullOrEmpty(SessionData.Instance.IsMessageMode) && SessionData.Instance.IsMessageMode.Equals(TrueConstant, StringComparison.OrdinalIgnoreCase))
            {
                passengerPresenter.IsMessage = true;
            }

            BaseController.GetAboutUsInformation(passengerPresenter);
            if (searchFilters != null)
            {
            }

            return this.View(passengerPresenter);
        }
示例#59
0
        /// <summary>
        /// Automatics the complete suggestions.
        /// </summary>
        /// <param name="searchText">The search text.</param>
        /// <param name="searchType">Type of the search.</param>
        /// <param name="isAutoComplete">if set to <c>true</c> [is automatic complete].</param>
        /// <returns>
        /// The Suggestion as per search Text.
        /// </returns>
        public async Task<JsonResult> AutoCompleteSuggestions(string searchText, string searchType, bool isAutoComplete)
        {
            if (string.IsNullOrEmpty(searchType))
            {
                searchType = LastName;
            }

            if (!string.IsNullOrEmpty(searchText) && !string.IsNullOrEmpty(searchType))
            {
                var searchFilter = new SearchFilters { IsAlertCount = false, IsMessageCount = false };

                foreach (var voyage in SessionData.Instance.MasterData.Voyages)
                {
                    searchFilter.VoyageId += voyage.VoyageId + Comma;
                }

                if (searchType.Equals(Stateroom, StringComparison.InvariantCultureIgnoreCase))
                {
                    searchFilter.Stateroom = searchText;
                }
                else if (searchType.Equals(BookingNo, StringComparison.InvariantCultureIgnoreCase))
                {
                    searchFilter.ReservationNo = searchText;
                }
                else if (searchType.Equals(PassportNo, StringComparison.InvariantCultureIgnoreCase))
                {
                    searchFilter.PassportNo = searchText;
                }
                else if (searchType.Equals(LastName, StringComparison.InvariantCultureIgnoreCase))
                {
                    searchFilter.LastNameContains = searchText;
                }
                else if (searchType.Equals(Birthdate, StringComparison.InvariantCultureIgnoreCase))
                {
                    searchFilter.Birthdate = searchText;
                }

                searchFilter.IsAutoComplete = isAutoComplete;
                var presenter = new AlertPresenter();
                var persons = await this.personManager.GetPersonsAsync(searchFilter, presenter.AuthenticationToken);
                SessionData.Instance.AssignPersonAutoSearchResult(persons);
                var namelist = SessionData.Instance.PassengerAutoSearchItems.Items.SelectMany(items => new List<string> { string.Format(PassengerAutoSearchStringFormat, items.PersonalDetail.LastName, items.PersonalDetail.FirstName, items.PersonId, items.Stateroom, items.PersonalDetail.Gender) });
                return this.Json(namelist, JsonRequestBehavior.AllowGet);
            }

            return this.Json(string.Empty, JsonRequestBehavior.AllowGet);
        }
        /// <summary>
        /// Indexes this instance.
        /// </summary>
        /// <param name="status">The status.</param>
        /// <returns>
        /// The view
        /// </returns>
        public async Task<ActionResult> Index(string status)
        {
            var presenter = new VisitorPresenter();
            BaseController.GetAboutUsInformation(presenter);
            var shipTime = BaseController.GenerateLocalDateTime(DateTime.UtcNow);

            var searchFilter = new SearchFilters();
            searchFilter.ShipTime = shipTime.ToString(CultureInfo.InvariantCulture);

            searchFilter.PageNumber = 1;

            if (!string.IsNullOrWhiteSpace(status))
            {
                ViewBag.VisitorStatus = status;

                SessionData.Instance.VisitorStatus = status;

                if (status.Equals(OnboardVisitorStatus))
                {
                    searchFilter.Status = true;
                    searchFilter.MaxResult = int.MaxValue;
                }
                else if (status.Equals(OffboardVisitorStatus))
                {
                    searchFilter.Status = false;
                    searchFilter.MaxResult = int.MaxValue;
                }
                else
                {
                    searchFilter.MaxResult = this.ApplicationSettings.MaxPageSize;
                }
            }
            else
            {
                ViewBag.VisitorStatus = ExpectedVisitorStatus;

                SessionData.Instance.VisitorStatus = ExpectedVisitorStatus;
                searchFilter.MaxResult = this.ApplicationSettings.MaxPageSize;
            }

            var todaysVisitors = await this.visitorManager.GetVisitorsAsync(searchFilter);
            if (todaysVisitors != null)
            {
                SessionData.Instance.VisitorItemListResult.Items.Clear();
                SessionData.Instance.AssignVisitorSearchResult(todaysVisitors);
                this.ExtractOnLoadPagedRecords(presenter);
            }

            securityPhotoUploadAddress = await this.visitorManager.RetrieveVisitorUploadUrlAsync();

            presenter = InsertDummyPersonalData(presenter);

            return this.View(presenter);
        }