Ejemplo n.º 1
0
        public int GetSearchTotal(OrgSearchRequest searchRequest)
        {
            var criteria = CreateSearchCriteria(searchRequest);

            criteria.SetProjection(Projections.RowCount());
            return((int)criteria.UniqueResult());
        }
Ejemplo n.º 2
0
        public IList <Org> SearchWithoutSummaries(OrgSearchRequest searchRequest, int offset, int maxEntries)
        {
            ICriteria criteria = CreateSearchCriteria(searchRequest);

            criteria.SetMaxResults(maxEntries).SetFirstResult(offset);
            return(criteria.List <Org>());
        }
Ejemplo n.º 3
0
        public void CanListOrgs()
        {
            // Establish Context
            var            viewModel            = new SearchResultFormViewModel <OrgDto, OrgSearchRequest>();
            IList <OrgDto> orgSummariesToExpect = new List <OrgDto>();

            viewModel.SearchRequest   = new OrgSearchRequest();
            viewModel.PageResultItems = orgSummariesToExpect;

            var agencyDto = new OrgDto();

            orgSummariesToExpect.Add(agencyDto);

            var searchRequest = new OrgSearchRequest();

            _orgSearchManagementService.Expect(r => r.CreateFormViewModel())
            .Return(viewModel);

            // Act
            ViewResult result = _orgsController.Index().AssertViewRendered();

            // Assert
            result.ViewData.Model.ShouldNotBeNull();
            (result.ViewData.Model as SearchResultFormViewModel <OrgDto, OrgSearchRequest>).ShouldNotBeNull();
            (result.ViewData.Model as SearchResultFormViewModel <OrgDto, OrgSearchRequest>).PageResultItems.Count.
            ShouldEqual(1);
        }
Ejemplo n.º 4
0
        public IList <OrgDto> Search(OrgSearchRequest searchRequest, int offset, int maxEntries)
        {
            ICriteria criteria = CreateSearchCriteria(searchRequest);

            criteria.CreateAlias("Agency", "Agency")
            .SetProjection(Projections.ProjectionList()
                           .Add(Projections.Property("LongDesc"), "LongDesc")
                           .Add(Projections.Property("Code"), "Code")
                           .Add(Projections.Property("Id"), "Id")
                           .Add(Projections.Property("Agency.Id"), "AgencyId")
                           .Add(Projections.Property("Agency.Code"), "AgencyCode")
                           .Add(Projections.Property("Agency.LongDesc"), "AgencyLongDesc")
                           .Add(Projections.Property("Agency.ShortDesc"), "AgencyShortDesc"));
            criteria.SetResultTransformer(Transformers.AliasToBean(typeof(OrgDto)));

            criteria.SetMaxResults(maxEntries).SetFirstResult(offset);

            if (!String.IsNullOrEmpty(searchRequest.SortColumn))
            {
                if (searchRequest.SortOrder.StartsWith("A"))
                {
                    criteria.AddOrder(Order.Asc(searchRequest.SortColumn));
                }
                else
                {
                    criteria.AddOrder(Order.Desc(searchRequest.SortColumn));
                }
            }

            return(criteria.List <OrgDto>());
        }
Ejemplo n.º 5
0
        public virtual void CanSearch()
        {
            var searchRequest = new OrgSearchRequest();

            searchRequest.OrgQuery = "e";

            IList <OrgDto> results = _orgRepository.Search(searchRequest, 0, 20);

            Assert.That(results.Count > 1 && results.Count <= 20);
        }
Ejemplo n.º 6
0
        public virtual void CanGetSearchTotal()
        {
            var searchRequest = new OrgSearchRequest();

            searchRequest.OrgQuery = "IT ";

            int results = _orgRepository.GetSearchTotal(searchRequest);

            Assert.That(results == 1);
        }
        public SearchResultFormViewModel <OrgDto, OrgSearchRequest> CreateFormViewModel()
        {
            var searchRequest = new OrgSearchRequest {
                Agencies = _agencyManagementService.GetAll()
            };
            SearchResultFormViewModel <OrgDto, OrgSearchRequest> viewModel = Search(searchRequest);

            viewModel.SearchRequest = searchRequest;

            return(viewModel);
        }
Ejemplo n.º 8
0
        public ActionResult Search(OrgSearchRequest searchRequest)
        {
            SearchResultFormViewModel <OrgDto, OrgSearchRequest> formViewModel = null;

            try
            {
                formViewModel = _orgSearchManagementService.Search(searchRequest);
                Session.Add(SEARCH_PARAMETERS, searchRequest);
            }
            catch (PreconditionException pde)
            {
                TempData[ControllerEnums.GlobalViewDataProperty.PageMessage.ToString()] = pde.Message;
                formViewModel = _orgSearchManagementService.CreateFormViewModel(searchRequest);
            }
            return(View("Index", formViewModel));
        }
        //private SearchResultFormViewModel<OrgDto, OrgSearchRequest> LoadSearchResults(OrgSearchRequest searchRequest)
        //{
        //    const int entriesPerPage = 20;
        //    int offset = entriesPerPage * (searchRequest.CurrentPageNumber - 1);

        //    IList<OrgDto> searchResultItems = _orgRepository.Search(searchRequest, offset, entriesPerPage);

        //    var searchResultFormViewModel = CreateFormViewModel(searchRequest);
        //    searchResultFormViewModel.PageResultItems = searchResultItems;

        //    int resultCount = _orgRepository.GetSearchTotal(searchRequest);
        //    searchResultFormViewModel.TotalResultCount = resultCount;
        //    searchResultFormViewModel.CurrentPageNumber = searchRequest.CurrentPageNumber;
        //    searchResultFormViewModel.TotalPageCount = resultCount / entriesPerPage;
        //    if (resultCount % entriesPerPage > 0)
        //    {
        //        searchResultFormViewModel.TotalPageCount++;
        //    }
        //    return searchResultFormViewModel;
        //}


        public SearchResultFormViewModel <OrgDto, OrgSearchRequest> Search(OrgSearchRequest searchRequest)
        {
            //make sure at least one field set
            //Check.Require(searchRequest != null, "At least one field is required");

            //if (searchRequest.AgencyId == null && String.IsNullOrEmpty(searchRequest.OrgQuery))
            //{
            //    Check.Require(1 == 0, "At least one field is required");
            //}

            if (searchRequest.CurrentPageNumber == 0)
            {
                searchRequest.CurrentPageNumber = 1;
            }

            if (string.IsNullOrEmpty(searchRequest.SortColumn))
            {
                searchRequest.SortColumn = DEFAULT_SORT_COLUMN;
                searchRequest.SortOrder  = DEFAULT_SORT_ORDER;
            }

            const int entriesPerPage = 20;
            int       offset         = entriesPerPage * (searchRequest.CurrentPageNumber - 1);

            IList <OrgDto> searchResultItems = _orgRepository.Search(searchRequest, offset, entriesPerPage);

            var searchResultFormViewModel = CreateFormViewModel(searchRequest);

            searchResultFormViewModel.PageResultItems = searchResultItems;

            int resultCount = _orgRepository.GetSearchTotal(searchRequest);

            searchResultFormViewModel.TotalResultCount  = resultCount;
            searchResultFormViewModel.CurrentPageNumber = searchRequest.CurrentPageNumber;
            searchResultFormViewModel.TotalPageCount    = resultCount / entriesPerPage;
            if (resultCount % entriesPerPage > 0)
            {
                searchResultFormViewModel.TotalPageCount++;
            }
            return(searchResultFormViewModel);
        }
Ejemplo n.º 10
0
        private ICriteria CreateSearchCriteria(OrgSearchRequest searchRequest)
        {
            var criteria = Session.CreateCriteria(typeof(Org));
            var query    = searchRequest.OrgQuery;

            query += "";
            string[] split = query.Split(new[] { ' ', ',', '.', ':' });
            foreach (var s in split)
            {
                if (s.Trim() != "")
                {
                    SimpleExpression orgCd       = Restrictions.Like("Code", query, MatchMode.Anywhere);
                    SimpleExpression orgLongDesc = Restrictions.Like("LongDesc", query, MatchMode.Anywhere);
                    criteria.Add(Restrictions.Or(orgCd, orgLongDesc));
                }
            }
            if (searchRequest.AgencyId > 0)
            {
                criteria.Add(Restrictions.Eq("Agency.Id", searchRequest.AgencyId));
            }
            return(criteria);
        }
Ejemplo n.º 11
0
        public SearchResultFormViewModel <OrgDto, OrgSearchRequest> CreateFormViewModel(OrgSearchRequest searchRequest)
        {
            var viewModel = new SearchResultFormViewModel <OrgDto, OrgSearchRequest> {
                SearchRequest = searchRequest
            };

            searchRequest.Agencies = _agencyManagementService.GetAll();
            return(viewModel);
        }