public int GetSearchTotal(SupportTeamSearchRequest searchRequest)
        {
            var criteria = CreateSearchCriteria(searchRequest);

            criteria.SetProjection(Projections.RowCount());
            return((int)criteria.UniqueResult());
        }
Beispiel #2
0
        private SearchResultFormViewModel <SupportTeamDto, SupportTeamSearchRequest> LoadSearchResults(
            SupportTeamSearchRequest searchRequest)
        {
            const int entriesPerPage = 20;
            int       offset         = entriesPerPage * (searchRequest.CurrentPageNumber - 1);

            IList <SupportTeamDto> searchResultItems = _supportTeamRepository.Search(searchRequest, offset,
                                                                                     entriesPerPage);

            var searchResultFormViewModel = CreateFormViewModel(searchRequest);

            searchResultFormViewModel.PageResultItems = searchResultItems;

            int resultCount = _supportTeamRepository.GetSearchTotal(searchRequest);

            searchResultFormViewModel.TotalResultCount  = resultCount;
            searchResultFormViewModel.CurrentPageNumber = searchRequest.CurrentPageNumber;

            searchResultFormViewModel.TotalPageCount = resultCount / entriesPerPage;
            if (resultCount % entriesPerPage > 0)
            {
                searchResultFormViewModel.TotalPageCount++;
            }

            return(searchResultFormViewModel);
        }
        public IList <SupportTeamDto> Search(SupportTeamSearchRequest searchRequest, int offset, int maxEntries)
        {
            ICriteria criteria = CreateSearchCriteria(searchRequest);

            criteria
            .CreateAlias("Supervisor", "Supervisor", JoinType.LeftOuterJoin)
            .SetProjection(Projections.ProjectionList()
                           .Add(Projections.Property("Id"), "Id")
                           .Add(Projections.Property("TeamName"), "TeamName")
                           .Add(Projections.Property("PhoneNumber"), "PhoneNumber")
                           .Add(Projections.Property("Supervisor.FirstName"), "SupervisorFirstName")
                           .Add(Projections.Property("Supervisor.LastName"), "SupervisorLastName")

                           //.Add(Projections.Property("SupervisorId"), "SupervisorId");
                           );
            criteria.SetResultTransformer(Transformers.AliasToBean(typeof(SupportTeamDto)));

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

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

            return(criteria.List <SupportTeamDto>());
        }
Beispiel #4
0
        public SearchResultFormViewModel <SupportTeamDto, SupportTeamSearchRequest> CreateFormViewModel(
            SupportTeamSearchRequest searchRequest)
        {
            var viewModel = new SearchResultFormViewModel <SupportTeamDto, SupportTeamSearchRequest> {
                SearchRequest = searchRequest
            };

            return(viewModel);
        }
Beispiel #5
0
        public SearchResultFormViewModel <SupportTeamDto, SupportTeamSearchRequest> CreateFormViewModel()
        {
            var searchRequest = new SupportTeamSearchRequest();
            SearchResultFormViewModel <SupportTeamDto, SupportTeamSearchRequest> viewModel = Search(searchRequest);

            viewModel.SearchRequest = searchRequest;

            return(viewModel);
        }
Beispiel #6
0
        public virtual void CanSearch()
        {
            var searchRequest = new SupportTeamSearchRequest();

            searchRequest.TeamQuery = "team";

            IList <SupportTeamDto> results = _SupportTeamRepository.Search(searchRequest, 0, 20);

            Assert.That(results.Count >= 1 && results.Count <= 20);
        }
Beispiel #7
0
        public virtual void CanGetSearchTotal()
        {
            var searchRequest = new SupportTeamSearchRequest();

            searchRequest.TeamQuery = "team";

            int results = _SupportTeamRepository.GetSearchTotal(searchRequest);

            Assert.That(results >= 1);
        }
Beispiel #8
0
        public ActionResult Search(SupportTeamSearchRequest searchRequest)
        {
            SearchResultFormViewModel <SupportTeamDto, SupportTeamSearchRequest> formViewModel = null;

            try
            {
                formViewModel = _supportTeamSearchManagementService.Search(searchRequest);
                Session.Add(SEARCH_PARAMETERS, searchRequest);
            }
            catch (PreconditionException pde)
            {
                TempData[ControllerEnums.GlobalViewDataProperty.PageMessage.ToString()] = pde.Message;
                formViewModel = _supportTeamSearchManagementService.CreateFormViewModel(searchRequest);
            }
            return(View("Index", formViewModel));
        }
Beispiel #9
0
        public SearchResultFormViewModel <SupportTeamDto, SupportTeamSearchRequest> Search(
            SupportTeamSearchRequest searchRequest)
        {
            //make sure at least one field set
            //Check.Require(searchRequest != null, "At least one field is required");

            //if (String.IsNullOrEmpty(searchRequest.SupportTeamQuery))
            //{
            //    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 <SupportTeamDto> searchResultItems = _supportTeamRepository.Search(searchRequest, offset,
                                                                                     entriesPerPage);

            var searchResultFormViewModel = CreateFormViewModel(searchRequest);

            searchResultFormViewModel.PageResultItems = searchResultItems;

            int resultCount = _supportTeamRepository.GetSearchTotal(searchRequest);

            searchResultFormViewModel.TotalResultCount  = resultCount;
            searchResultFormViewModel.CurrentPageNumber = searchRequest.CurrentPageNumber;

            searchResultFormViewModel.TotalPageCount = resultCount / entriesPerPage;
            if (resultCount % entriesPerPage > 0)
            {
                searchResultFormViewModel.TotalPageCount++;
            }

            return(searchResultFormViewModel);
        }
        private ICriteria CreateSearchCriteria(SupportTeamSearchRequest searchRequest)
        {
            var criteria = Session.CreateCriteria(typeof(SupportTeam));
            var query    = searchRequest.TeamQuery;

            query += "";
            string[] split = query.Split(new[] { ' ', ',', '.', ':' });
            foreach (var s in split)
            {
                if (s.Trim() != "")
                {
                    SimpleExpression teamNameExp = Restrictions.Like("TeamName", query, MatchMode.Anywhere);
                    criteria.Add(teamNameExp);
                }
            }

            return(criteria);
        }