Example #1
0
        protected ICriteria CreateSearchCriteria(WrmsSystemSearchRequest searchRequest)
        {
            ISession  session  = Session;
            ICriteria criteria = session.CreateCriteria(typeof(WrmsSystem));


            SimpleExpression sysDescExp    = Restrictions.Like("ShortDesc", searchRequest.SystemQuery, MatchMode.Anywhere);
            SimpleExpression sysExtDescExp = Restrictions.Like("LongDesc", searchRequest.SystemQuery, MatchMode.Anywhere);
            SimpleExpression sysCodeExp    = Restrictions.Like("Code", searchRequest.SystemQuery, MatchMode.Anywhere);
            var searchPhrase = Restrictions.Or(Restrictions.Or(sysDescExp, sysExtDescExp), sysCodeExp);

            criteria.Add(searchPhrase);
            if (searchRequest.ContactId > 0)
            {
                SimpleExpression managerContactIdExp   = Restrictions.Eq("ManagerContact", searchRequest.ContactId);
                SimpleExpression primaryContactIdExp   = Restrictions.Eq("PrimaryContact", searchRequest.ContactId);
                SimpleExpression secondaryContactIdExp = Restrictions.Eq("SecondaryContact", searchRequest.ContactId);
                SimpleExpression thirdContactIdExp     = Restrictions.Eq("ThirdContact", searchRequest.ContactId);
                criteria.Add(Restrictions.Or(managerContactIdExp,
                                             Restrictions.Or(primaryContactIdExp,
                                                             Restrictions.Or(secondaryContactIdExp, thirdContactIdExp))));
                //AbstractCriterion search3 = Restrictions.And(searchPhrase, managerContactIdExp);
                //criteria.Add(search3);
            }
            if (!searchRequest.IncludeInactive.HasValue || searchRequest.IncludeInactive.Value == false)
            {
                criteria.Add(Restrictions.Eq("IsActive", true));
            }
            return(criteria);
        }
Example #2
0
        public int GetSearchTotal(WrmsSystemSearchRequest searchRequest)
        {
            var criteria = CreateSearchCriteria(searchRequest);

            criteria.SetProjection(Projections.RowCount());
            return((int)criteria.UniqueResult());
        }
Example #3
0
        public IList <WrmsSystemDto> Search(WrmsSystemSearchRequest searchRequest, int offset, int maxEntries)
        {
            ICriteria criteria = CreateSearchCriteria(searchRequest)
                                 .SetProjection(Projections.ProjectionList()
                                                .Add(Projections.Property("Id"), "Id")
                                                .Add(Projections.Property("Code"), "Code")
                                                .Add(Projections.Property("ShortDesc"), "ShortDesc")
                                                .Add(Projections.Property("LongDesc"), "LongDesc")
                                                .Add(Projections.Property("CallListDesc"), "CallListDesc")
                                                .Add(Projections.Property("PrimaryContact"), "PrimaryContact")
                                                .Add(Projections.Property("PrimaryContactCallNotes"), "PrimaryContactCallNotes")
                                                .Add(Projections.Property("SecondaryContact"), "SecondaryContact")
                                                .Add(Projections.Property("SecondaryContactCallNotes"), "SecondaryContactCallNotes")
                                                .Add(Projections.Property("ThirdContact"), "ThirdContact")
                                                .Add(Projections.Property("ThirdContactCallNotes"), "ThirdContactCallNotes")
                                                .Add(Projections.Property("ManagerContact"), "ManagerContact")
                                                .Add(Projections.Property("ManagerContactCallNotes"), "ManagerContactCallNotes")
                                                .Add(Projections.Property("CallListNotes"), "CallListNotes")
                                                .Add(Projections.Property("Platform"), "Platform")
                                                .Add(Projections.Property("IsActive"), "IsActive")
                                                );


            if (!string.IsNullOrEmpty(searchRequest.SortColumn))
            {
                if (searchRequest.SortOrder.StartsWith("A"))
                {
                    if (searchRequest.SortColumn.Equals("ShortDesc") || searchRequest.SortColumn.Equals("LongDesc"))
                    {
                        //cast ntext fields to nvarchar(255)
                        criteria.AddOrder(
                            Order.Asc(Projections.Cast(NHibernateUtil.String,
                                                       Projections.Property(searchRequest.SortColumn))));
                    }
                    else
                    {
                        criteria.AddOrder(Order.Asc(searchRequest.SortColumn));
                    }
                }
                else
                {
                    if (searchRequest.SortColumn.Equals("ShortDesc") || searchRequest.SortColumn.Equals("LongDesc"))
                    {
                        criteria.AddOrder(
                            Order.Desc(Projections.Cast(NHibernateUtil.String,
                                                        Projections.Property(searchRequest.SortColumn))));
                    }
                    else
                    {
                        criteria.AddOrder(Order.Desc(searchRequest.SortColumn));
                    }
                }
            }
            criteria.SetResultTransformer(Transformers.AliasToBean(typeof(WrmsSystemDto)));

            criteria.SetMaxResults(maxEntries).SetFirstResult(offset);
            return(criteria.List <WrmsSystemDto>());
        }
Example #4
0
        public SearchResultFormViewModel <WrmsSystemDto, WrmsSystemSearchRequest> CreateFormViewModel(
            WrmsSystemSearchRequest searchRequest)
        {
            var viewModel = new SearchResultFormViewModel <WrmsSystemDto, WrmsSystemSearchRequest>();

            viewModel.SearchRequest = searchRequest;
            //searchRequest.Contacts = _personManagementService.GetActiveStaff();
            searchRequest.Contacts = _personManagementService.GetAll();
            return(viewModel);
        }
        public virtual void CanSearch()
        {
            var searchRequest = new WrmsSystemSearchRequest();

            searchRequest.SystemQuery = "e";

            IList <WrmsSystemDto> results = _wrmsSystemRepository.Search(searchRequest, 0, 20);

            Assert.That(results.Count > 1 && results.Count <= 20);
        }
        public virtual void CanGetSearchTotal()
        {
            var searchRequest = new WrmsSystemSearchRequest();

            searchRequest.SystemQuery = "Big Fix";

            int results = _wrmsSystemRepository.GetSearchTotal(searchRequest);

            Assert.That(results == 1);
        }
Example #7
0
        public ActionResult Search(WrmsSystemSearchRequest searchRequest)
        {
            SearchResultFormViewModel <WrmsSystemDto, WrmsSystemSearchRequest> formViewModel = null;

            try
            {
                formViewModel = _wrmsSystemSearchManagementService.Search(searchRequest);
                Session.Add(SEARCH_PARAMETERS, searchRequest);
            }
            catch (PreconditionException pde)
            {
                TempData[ControllerEnums.GlobalViewDataProperty.PageMessage.ToString()] = pde.Message;
                formViewModel = _wrmsSystemSearchManagementService.CreateFormViewModel(searchRequest);
            }
            return(View("Index", formViewModel));
        }
        public virtual void CanSearchWithTextSortedByShortDescriptionDesc()
        {
            var searchRequest = new WrmsSystemSearchRequest();

            searchRequest.SystemQuery = "system";
            searchRequest.SortColumn  = "ShortDesc";
            searchRequest.SortOrder   = "Desc";
            IList <WrmsSystemDto> result = _wrmsSystemRepository.Search(searchRequest, 0, 10);

            Assert.That(result.Count > 0);
            Assert.That(result[0].ShortDesc.CompareTo(result[1].ShortDesc) >= 0);
            Assert.That(result[0].ShortDesc.CompareTo(result[result.Count - 1].ShortDesc) >= 0);
            foreach (var val in result)
            {
                if (val.Id == 307) //307 is inactive
                {
                    Assert.That(false);
                }
            }
        }
Example #9
0
        public SearchResultFormViewModel <WrmsSystemDto, WrmsSystemSearchRequest> Search(
            WrmsSystemSearchRequest searchRequest)
        {
            var entriesPerPage = 20;

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

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

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

            IList <WrmsSystemDto> searchResultItems = _wrmsSystemRepository.Search(searchRequest, offset, entriesPerPage);

            var searchResultFormViewModel = CreateFormViewModel(searchRequest);

            searchResultFormViewModel.PageResultItems = searchResultItems;

            int resultCount = _wrmsSystemRepository.GetSearchTotal(searchRequest);

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

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

            return(searchResultFormViewModel);
        }