public void GetReferencesBySearchCriteria() { ReferenceList references; IReferenceSearchCriteria searchCriteria; // Test name search criteria. searchCriteria = new ReferenceSearchCriteria(); searchCriteria.NameSearchString = new StringSearchCriteria(); searchCriteria.NameSearchString.SearchString = "2003"; searchCriteria.NameSearchString.CompareOperators = new List <StringCompareOperator>(); searchCriteria.NameSearchString.CompareOperators.Add(StringCompareOperator.Contains); references = GetReferenceManager(true).GetReferences(GetUserContext(), searchCriteria); Assert.IsTrue(references.IsNotEmpty()); // Test title search criteria. searchCriteria = new ReferenceSearchCriteria(); searchCriteria.TitleSearchString = new StringSearchCriteria(); searchCriteria.TitleSearchString.SearchString = "2003"; searchCriteria.TitleSearchString.CompareOperators = new List <StringCompareOperator>(); searchCriteria.TitleSearchString.CompareOperators.Add(StringCompareOperator.Contains); references = GetReferenceManager().GetReferences(GetUserContext(), searchCriteria); Assert.IsTrue(references.IsNotEmpty()); // Test year search criteria. searchCriteria = new ReferenceSearchCriteria(); searchCriteria.Years = new List <Int32>(); searchCriteria.Years.Add(2003); references = GetReferenceManager().GetReferences(GetUserContext(), searchCriteria); Assert.IsTrue(references.IsNotEmpty()); searchCriteria.Years.Add(2004); references = GetReferenceManager().GetReferences(GetUserContext(), searchCriteria); Assert.IsTrue(references.IsNotEmpty()); // Test logical operator. searchCriteria = new ReferenceSearchCriteria(); searchCriteria.NameSearchString = new StringSearchCriteria(); searchCriteria.NameSearchString.SearchString = "2003"; searchCriteria.NameSearchString.CompareOperators = new List <StringCompareOperator>(); searchCriteria.NameSearchString.CompareOperators.Add(StringCompareOperator.Contains); searchCriteria.TitleSearchString = new StringSearchCriteria(); searchCriteria.TitleSearchString.SearchString = "2003"; searchCriteria.TitleSearchString.CompareOperators = new List <StringCompareOperator>(); searchCriteria.TitleSearchString.CompareOperators.Add(StringCompareOperator.Contains); searchCriteria.Years = new List <Int32>(); searchCriteria.Years.Add(2003); searchCriteria.LogicalOperator = LogicalOperator.Or; references = GetReferenceManager().GetReferences(GetUserContext(), searchCriteria); Assert.IsTrue(references.IsNotEmpty()); searchCriteria.LogicalOperator = LogicalOperator.And; references = GetReferenceManager().GetReferences(GetUserContext(), searchCriteria); Assert.IsTrue(references.IsEmpty()); }
/// <summary> /// Search for a reference. /// </summary> /// <param name="searchString"> /// </param> /// <returns> /// The <see cref="List"/>. /// </returns> public List <ReferenceViewModel> SearchReference(string searchString) { IReferenceSearchCriteria searchCriteria = new ReferenceSearchCriteria(); searchCriteria.LogicalOperator = LogicalOperator.Or; int year; if (int.TryParse(searchString, out year)) { searchCriteria.Years = new List <int>(); searchCriteria.Years.Add(year); } searchCriteria.NameSearchString = new StringSearchCriteria { SearchString = searchString, CompareOperators = new List <StringCompareOperator> { StringCompareOperator.Contains } }; searchCriteria.TitleSearchString = new StringSearchCriteria { SearchString = searchString, CompareOperators = new List <StringCompareOperator> { StringCompareOperator.Contains } }; ReferenceList list = CoreData.ReferenceManager.GetReferences(user, searchCriteria); List <ReferenceViewModel> references = new List <ReferenceViewModel>(); foreach (IReference reference in list) { // todo - handle Year null value references.Add(new ReferenceViewModel(reference.Id, reference.Name, reference.Year.GetValueOrDefault(), reference.Title)); } return(references); }