Пример #1
0
        //public IList<HostDto> GetHostSummaries() {
        //    ISession session = SharpArch.Data.NHibernate.NHibernateSession.Current;

        //    IQuery query = session.GetNamedQuery("GetHostSummaries")
        //        .SetResultTransformer(Transformers.AliasToBean<HostDto>());

        //    return query.List<HostDto>();
        //}

        #region IHostRepository Members

        public IList <HostDto> Search(HostSearchRequest searchRequest, int offset, int maxEntries)
        {
            ICriteria criteria = CreateSearchCriteria(searchRequest);

            criteria
            .SetProjection(Projections.ProjectionList()
                           .Add(Projections.Property("Id"), "Id")
                           .Add(Projections.Property("HostName"), "HostName")

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

            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 <HostDto>());
        }
Пример #2
0
        public int GetSearchTotal(HostSearchRequest searchRequest)
        {
            var criteria = CreateSearchCriteria(searchRequest);

            criteria.SetProjection(Projections.RowCount());
            return((int)criteria.UniqueResult());
        }
Пример #3
0
        public SearchResultFormViewModel <HostDto, HostSearchRequest> CreateFormViewModel()
        {
            var searchRequest = new HostSearchRequest();
            SearchResultFormViewModel <HostDto, HostSearchRequest> viewModel = Search(searchRequest);

            viewModel.SearchRequest = searchRequest;

            return(viewModel);
        }
Пример #4
0
        public virtual void CanSearch()
        {
            var searchRequest = new HostSearchRequest();

            searchRequest.HostQuery = "test";

            IList <HostDto> results = _HostRepository.Search(searchRequest, 0, 20);

            Assert.That(results.Count >= 1 && results.Count <= 20);
        }
Пример #5
0
        public virtual void CanGetSearchTotal()
        {
            var searchRequest = new HostSearchRequest();

            searchRequest.HostQuery = "test";

            int results = _HostRepository.GetSearchTotal(searchRequest);

            Assert.That(results >= 1);
        }
Пример #6
0
        public ActionResult Search(HostSearchRequest searchRequest)
        {
            SearchResultFormViewModel <HostDto, HostSearchRequest> formViewModel = null;

            try
            {
                formViewModel = _hostSearchManagementService.Search(searchRequest);
                Session.Add(SEARCH_PARAMETERS, searchRequest);
            }
            catch (PreconditionException pde)
            {
                TempData[ControllerEnums.GlobalViewDataProperty.PageMessage.ToString()] = pde.Message;
                formViewModel = _hostSearchManagementService.CreateFormViewModel(searchRequest);
            }
            return(View("Index", formViewModel));
        }
Пример #7
0
        private ICriteria CreateSearchCriteria(HostSearchRequest searchRequest)
        {
            var criteria = Session.CreateCriteria(typeof(Host));
            var query    = searchRequest.HostQuery;

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

            return(criteria);
        }
Пример #8
0
        public SearchResultFormViewModel <HostDto, HostSearchRequest> Search(HostSearchRequest searchRequest)
        {
            //make sure at least one field set
            //Check.Require(searchRequest != null, "At least one field is required");

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

            var searchResultFormViewModel = CreateFormViewModel(searchRequest);

            searchResultFormViewModel.PageResultItems = searchResultItems;

            int resultCount = _HostRepository.GetSearchTotal(searchRequest);

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

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

            return(searchResultFormViewModel);
        }
Пример #9
0
        private SearchResultFormViewModel <HostDto, HostSearchRequest> LoadSearchResults(HostSearchRequest searchRequest)
        {
            const int entriesPerPage = 20;
            int       offset         = entriesPerPage * (searchRequest.CurrentPageNumber - 1);

            IList <HostDto> searchResultItems = _HostRepository.Search(searchRequest, offset, entriesPerPage);

            var searchResultFormViewModel = CreateFormViewModel(searchRequest);

            searchResultFormViewModel.PageResultItems = searchResultItems;

            int resultCount = _HostRepository.GetSearchTotal(searchRequest);

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

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

            return(searchResultFormViewModel);
        }
Пример #10
0
        public SearchResultFormViewModel <HostDto, HostSearchRequest> CreateFormViewModel(HostSearchRequest searchRequest)
        {
            var viewModel = new SearchResultFormViewModel <HostDto, HostSearchRequest> {
                SearchRequest = searchRequest
            };

            return(viewModel);
        }