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); }
public int GetSearchTotal(WrmsSystemSearchRequest searchRequest) { var criteria = CreateSearchCriteria(searchRequest); criteria.SetProjection(Projections.RowCount()); return((int)criteria.UniqueResult()); }
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>()); }
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); }
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); } } }
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); }