/// <summary> /// Get references that matches search criteria. /// </summary> /// <param name="context">Web service request context.</param> /// <param name="searchCriteria">Reference search criteria.</param> /// <returns>References that matches search criteria.</returns> public static List <WebReference> GetReferencesBySearchCriteria(WebServiceContext context, WebReferenceSearchCriteria searchCriteria) { List <WebReference> references; String whereCondition; WebReference reference; // Check data. searchCriteria.CheckData(); // Get information from database. whereCondition = searchCriteria.GetWhereCondition(); references = new List <WebReference>(); using (DataReader dataReader = context.GetReferenceDatabase().GetReferencesBySearchCriteria(whereCondition)) { while (dataReader.Read()) { reference = new WebReference(); reference.LoadData(dataReader); references.Add(reference); } } return(references); }
/// <summary> /// Get string that can be added as part of a SQL where condition. /// Returned string matches specified search criteria. /// This procedure only handles one string compare operator. /// </summary> /// <param name="searchCriteria">Search criteria.</param> /// <returns>String that can be added as part of a SQL where condition.</returns> public static String GetWhereCondition(this WebReferenceSearchCriteria searchCriteria) { String condition; StringBuilder whereCondition; whereCondition = new StringBuilder(); if (searchCriteria.IsNotNull()) { whereCondition.Append(searchCriteria.NameSearchString.GetWhereCondition(ReferenceData.NAME_COLUMN_NAME)); condition = searchCriteria.TitleSearchString.GetWhereCondition(ReferenceData.TITLE_COLUMN_NAME); if (whereCondition.ToString().IsNotEmpty() && condition.IsNotEmpty()) { whereCondition.Append(" " + searchCriteria.LogicalOperator + " "); } whereCondition.Append(condition); condition = searchCriteria.Years.GetWhereCondition(ReferenceData.YEAR_COLUMN_NAME); if (whereCondition.ToString().IsNotEmpty() && condition.IsNotEmpty()) { whereCondition.Append(" " + searchCriteria.LogicalOperator + " "); } whereCondition.Append(condition); } return(whereCondition.ToString()); }
/// <summary> /// Get references that matches search criteria. /// </summary> /// <param name="clientInformation">Information about the client that makes this web service call.</param> /// <param name="searchCriteria">Reference search criteria.</param> /// <returns>References that matches search criteria.</returns> public List <WebReference> GetReferencesBySearchCriteria(WebClientInformation clientInformation, WebReferenceSearchCriteria searchCriteria) { using (ClientProxy client = new ClientProxy(this, 2)) { return(client.Client.GetReferencesBySearchCriteria(clientInformation, searchCriteria)); } }
public void GetReferencesBySearchCriteria() { List <WebReference> references; WebReferenceSearchCriteria searchCriteria; // Test name search criteria. searchCriteria = new WebReferenceSearchCriteria(); searchCriteria.NameSearchString = new WebStringSearchCriteria(); searchCriteria.NameSearchString.SearchString = "2003"; searchCriteria.NameSearchString.CompareOperators = new List <StringCompareOperator>(); searchCriteria.NameSearchString.CompareOperators.Add(StringCompareOperator.Contains); references = ReferenceManager.GetReferencesBySearchCriteria(GetContext(), searchCriteria); Assert.IsTrue(references.IsNotEmpty()); // Test title search criteria. searchCriteria = new WebReferenceSearchCriteria(); searchCriteria.TitleSearchString = new WebStringSearchCriteria(); searchCriteria.TitleSearchString.SearchString = "2003"; searchCriteria.TitleSearchString.CompareOperators = new List <StringCompareOperator>(); searchCriteria.TitleSearchString.CompareOperators.Add(StringCompareOperator.Contains); references = ReferenceManager.GetReferencesBySearchCriteria(GetContext(), searchCriteria); Assert.IsTrue(references.IsNotEmpty()); // Test year search criteria. searchCriteria = new WebReferenceSearchCriteria(); searchCriteria.Years = new List <Int32>(); searchCriteria.Years.Add(2003); references = ReferenceManager.GetReferencesBySearchCriteria(GetContext(), searchCriteria); Assert.IsTrue(references.IsNotEmpty()); searchCriteria.Years.Add(2004); references = ReferenceManager.GetReferencesBySearchCriteria(GetContext(), searchCriteria); Assert.IsTrue(references.IsNotEmpty()); // Test logical operator. searchCriteria = new WebReferenceSearchCriteria(); searchCriteria.NameSearchString = new WebStringSearchCriteria(); searchCriteria.NameSearchString.SearchString = "2003"; searchCriteria.NameSearchString.CompareOperators = new List <StringCompareOperator>(); searchCriteria.NameSearchString.CompareOperators.Add(StringCompareOperator.Contains); searchCriteria.TitleSearchString = new WebStringSearchCriteria(); 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 = ReferenceManager.GetReferencesBySearchCriteria(GetContext(), searchCriteria); Assert.IsTrue(references.IsNotEmpty()); searchCriteria.LogicalOperator = LogicalOperator.And; references = ReferenceManager.GetReferencesBySearchCriteria(GetContext(), searchCriteria); Assert.IsTrue(references.IsEmpty()); }
/// <summary> /// Get references that matches search criteria. /// </summary> /// <param name="clientInformation">Information about the client that makes this web service call.</param> /// <param name="searchCriteria">Reference search criteria.</param> /// <returns>References that matches search criteria.</returns> public List <WebReference> GetReferencesBySearchCriteria(WebClientInformation clientInformation, WebReferenceSearchCriteria searchCriteria) { using (WebServiceContext context = GetWebServiceContext(clientInformation)) { try { return(ReferenceManager.GetReferencesBySearchCriteria(context, searchCriteria)); } catch (Exception exception) { WebServiceData.LogManager.LogError(context, exception); throw; } } }
/// <summary> /// Convert an IReferenceSearchCriteria instance /// to a WebReferenceSearchCriteria instance. /// </summary> /// <param name="searchCriteria">An IReferenceSearchCriteria instance.</param> /// <returns>A WebReferenceSearchCriteria instance.</returns> private WebReferenceSearchCriteria GetReferenceSearchCriteria(IReferenceSearchCriteria searchCriteria) { WebReferenceSearchCriteria webSearchCriteria; webSearchCriteria = null; if (searchCriteria.IsNotNull()) { webSearchCriteria = new WebReferenceSearchCriteria(); webSearchCriteria.LogicalOperator = searchCriteria.LogicalOperator; webSearchCriteria.NameSearchString = GetStringSearchCriteria(searchCriteria.NameSearchString); webSearchCriteria.TitleSearchString = GetStringSearchCriteria(searchCriteria.TitleSearchString); webSearchCriteria.Years = searchCriteria.Years; } return(webSearchCriteria); }
/// <summary> /// Check that data is valid. /// </summary> /// <param name="searchCriteria">The reference instance.</param> public static void CheckData(this WebReferenceSearchCriteria searchCriteria) { searchCriteria.CheckNotNull("searchCriteria"); searchCriteria.NameSearchString.CheckData(true); searchCriteria.TitleSearchString.CheckData(true); if (searchCriteria.NameSearchString.IsNull() && searchCriteria.TitleSearchString.IsNull() && searchCriteria.Years.IsEmpty()) { throw new ArgumentException("WebReferenceSearchCriteria: At least one search criteria must be specified."); } if (searchCriteria.LogicalOperator == LogicalOperator.Not) { throw new ArgumentException("WebReferenceSearchCriteria: Logical operator not is not supported."); } }