private static Criteria GetCriteriaObject(IClassDef classDef, string criteriaString) { var criteria = CriteriaParser.CreateCriteria(criteriaString); QueryBuilder.PrepareCriteria(classDef, criteria); return(criteria); }
public void TestFind_UsingGuidCriteriaString_Typed() { //---------------Set up test pack------------------- BORegistry.DataAccessor = new DataAccessorInMemory(new DataStoreInMemory()); ClassDef.ClassDefs.Clear(); ContactPersonTestBO.LoadDefaultClassDef_WOrganisationID(); OrganisationTestBO.LoadDefaultClassDef(); ContactPersonTestBO cp = new ContactPersonTestBO { Surname = Guid.NewGuid().ToString("N") }; cp.OrganisationID = OrganisationTestBO.CreateSavedOrganisation().OrganisationID; cp.Save(); DataStoreInMemory dataStore = new DataStoreInMemory(); dataStore.Add(cp); Criteria criteria = CriteriaParser.CreateCriteria("OrganisationID = " + cp.OrganisationID); //---------------Assert Precondtions--------------- Assert.IsNotNull(cp.OrganisationID); //---------------Execute Test ---------------------- ContactPersonTestBO loadedCP = dataStore.Find <ContactPersonTestBO>(criteria); //---------------Test Result ----------------------- Assert.IsNotNull(loadedCP); Assert.AreSame(cp.ID, loadedCP.ID); }
public void PopulateCollectionAsync <T>(string criteria, string order = null, Action afterPopulation = null) where T : class, IBusinessObject, new() { this.RunAsyncOperationStartedHandler(); this.PopulateCollectionAsync <T>(CriteriaParser.CreateCriteria(criteria), OrderCriteria.FromString(order)); this.RunAsyncOperationCompleteHandler(); if (afterPopulation != null) { afterPopulation(); } }
public void Test_CreateCriteria_ThreeParts_WithBrackets() { //---------------Set up test pack------------------- //---------------Assert Precondition---------------- //---------------Execute Test ---------------------- Criteria criteria = CriteriaParser.CreateCriteria("(FirstName = firstNameValue and MiddleName = middleNameValue) and Surname = surnameValue"); string criteriaAsString = criteria.ToString(); //---------------Test Result ----------------------- StringAssert.AreEqualIgnoringCase("((FirstName = 'firstNameValue') AND (MiddleName = 'middleNameValue')) AND (Surname = 'surnameValue')", criteriaAsString); }
public void Test_CreateCriteria_TwoParts_WithOr() { //---------------Set up test pack------------------- //---------------Assert Precondition---------------- //---------------Execute Test ---------------------- Criteria criteria = CriteriaParser.CreateCriteria("FirstName = firstNameValue or Surname = surnameValue"); string criteriaAsString = criteria.ToString(); //---------------Test Result ----------------------- StringAssert.AreEqualIgnoringCase("(FirstName = 'firstNameValue') OR (Surname = 'surnameValue')", criteriaAsString); }
public void Test_CreateCriteria_Simple_PropNameDiff() { //---------------Set up test pack------------------- const string propName = "OtherPropName"; //---------------Assert Precondition---------------- //---------------Execute Test ---------------------- Criteria criteria = CriteriaParser.CreateCriteria(propName + " = surnameValue"); string criteriaAsString = criteria.ToString(); StringAssert.AreEqualIgnoringCase(propName + " = 'surnameValue'", criteriaAsString); }
public void Test_CreateCriteria_Simple() { //---------------Set up test pack------------------- //---------------Assert Precondition---------------- //---------------Execute Test ---------------------- Criteria criteria = CriteriaParser.CreateCriteria("Surname = surnameValue"); string criteriaAsString = criteria.ToString(); //---------------Test Result ----------------------- StringAssert.AreEqualIgnoringCase("Surname = 'surnameValue'", criteriaAsString); }
private BOSequenceNumberLocking LoadSequenceNumber(string numberType) { var searchCriteria = string.Format("NumberType = '{0}'", numberType); var criteria = CriteriaParser.CreateCriteria(searchCriteria); var sequenceBOSequenceNumber = BORegistry.DataAccessor.BusinessObjectLoader.GetBusinessObject <BOSequenceNumberLocking>(criteria); if (sequenceBOSequenceNumber == null) { sequenceBOSequenceNumber = CreateSequenceForType(numberType); } return(sequenceBOSequenceNumber); }
public void Test_CreateCriteria_FourParts() { //---------------Set up test pack------------------- //---------------Assert Precondition---------------- //---------------Execute Test ---------------------- Criteria criteria = CriteriaParser.CreateCriteria("FirstName = firstNameValue and MiddleName = middleNameValue " + "and Surname = surnameValue and Nickname = nicknameValue"); string criteriaAsString = criteria.ToString(); //---------------Test Result ----------------------- StringAssert.AreEqualIgnoringCase("(FirstName = 'firstNameValue') AND ((MiddleName = 'middleNameValue') " + "AND ((Surname = 'surnameValue') AND (Nickname = 'nicknameValue')))", criteriaAsString); }
public void Test_CreateCriteria_Simple_WithIn_MultipleValues_QuoteInsideValue() { //---------------Set up test pack------------------- //---------------Assert Precondition---------------- //---------------Execute Test ---------------------- Criteria criteria = CriteriaParser.CreateCriteria("Surname in ('Bob, \' Bob2', 'Name2', 'Name3')"); string criteriaAsString = criteria.ToString(); //---------------Test Result ----------------------- Assert.AreEqual(Criteria.ComparisonOp.In, criteria.ComparisonOperator); StringAssert.AreEqualIgnoringCase("Surname in ('Bob, \' Bob2', 'Name2', 'Name3')", criteriaAsString); }
public void Test_CreateCriteria_Simple_WithNotIn() { //---------------Set up test pack------------------- //---------------Assert Precondition---------------- //---------------Execute Test ---------------------- Criteria criteria = CriteriaParser.CreateCriteria("Surname not in ('Bob')"); string criteriaAsString = criteria.ToString(); //---------------Test Result ----------------------- Assert.AreEqual(Criteria.ComparisonOp.NotIn, criteria.ComparisonOperator); StringAssert.AreEqualIgnoringCase("Surname NOT IN ('Bob')", criteriaAsString); }
public void Test_CreateCriteria_Simple_WithIsNot() { //---------------Set up test pack------------------- //---------------Assert Precondition---------------- //---------------Execute Test ---------------------- Criteria criteria = CriteriaParser.CreateCriteria("Surname Is Not Null"); string criteriaAsString = criteria.ToString(); //---------------Test Result ----------------------- Assert.AreEqual(Criteria.ComparisonOp.IsNot, criteria.ComparisonOperator); StringAssert.AreEqualIgnoringCase("Surname IS NOT NULL", criteriaAsString); }
public void Test_CreateCriteria_FourParts_WithBrackets_MultipleOperators() { //---------------Set up test pack------------------- //---------------Assert Precondition---------------- //---------------Execute Test ---------------------- Criteria criteria = CriteriaParser.CreateCriteria("(FirstName < firstNameValue and MiddleName >= middleNameValue) " + "or (Surname > surnameValue and Nickname <> nicknameValue)"); string criteriaAsString = criteria.ToString(); //---------------Test Result ----------------------- StringAssert.AreEqualIgnoringCase("((FirstName < 'firstNameValue') AND (MiddleName >= 'middleNameValue')) " + "OR ((Surname > 'surnameValue') AND (Nickname <> 'nicknameValue'))", criteriaAsString); }
public void Test_CreateCriteria_Simple_WithGreaterThanEqual() { //---------------Set up test pack------------------- string surnameValue = Guid.NewGuid().ToString("N"); //---------------Assert Precondition---------------- //---------------Execute Test ---------------------- Criteria criteria = CriteriaParser.CreateCriteria("Surname >= " + surnameValue + ""); string criteriaAsString = criteria.ToString(); //---------------Test Result ----------------------- Assert.AreEqual(Criteria.ComparisonOp.GreaterThanEqual, criteria.ComparisonOperator); StringAssert.AreEqualIgnoringCase("Surname >= '" + surnameValue + "'", criteriaAsString); }
public void Test_CreateCriteria_Invalid() { //---------------Set up test pack------------------- //---------------Assert Precondition---------------- //---------------Execute Test ---------------------- try { CriteriaParser.CreateCriteria("surnameValue"); Assert.Fail("expected Err"); } //---------------Test Result ----------------------- catch (HabaneroDeveloperException ex) { StringAssert.Contains("The criteria string surnameValue is not a valid criteria string", ex.DeveloperMessage); } //---------------Test Result ----------------------- }
public void Test_CreateCriteria_Simple_WithInvalid() { //---------------Set up test pack------------------- string surnameValue = Guid.NewGuid().ToString("N"); //---------------Assert Precondition---------------- //---------------Execute Test ---------------------- try { CriteriaParser.CreateCriteria("Surname INALID " + surnameValue + ""); Assert.Fail("expected Err"); } //---------------Test Result ----------------------- catch (HabaneroDeveloperException ex) { StringAssert.Contains("is not a valid criteria string", ex.DeveloperMessage); } }
public void PopulateCollectionAsync <T>(string criteria, string order, Action afterPopulation = null) where T : class, IBusinessObject, new() { this.PopulateCollectionAsync <T>(CriteriaParser.CreateCriteria(criteria), OrderCriteria.FromString(order), afterPopulation); }
/// <summary> /// Loads a business object of the type identified by a <see cref="ClassDef"/>, using the criteria given /// </summary> /// <param name="classDef">The ClassDef of the object to load.</param> /// <param name="criteriaString">The criteria to use to load the business object must be of formst "PropName = criteriaValue" e.g. "Surname = Powell"</param> /// <returns>The business object that was found. If none was found, null is returned. If more than one is found an error is raised</returns> public IBusinessObject GetBusinessObject(IClassDef classDef, string criteriaString) { Criteria criteriaObject = CriteriaParser.CreateCriteria(criteriaString); return(GetBusinessObjectShared(classDef, criteriaObject)); }
public void PopulateObjectAsync <T>(string criteria, Action afterPopulation = null) where T : class, IBusinessObject, new() { this.PopulateObjectAsync <T>(CriteriaParser.CreateCriteria(criteria), afterPopulation); }
public void Populate <T>(string criteria) where T : class, IBusinessObject, new() { this.Populate <T>(CriteriaParser.CreateCriteria(criteria)); }
/// <summary> /// Loads a business object of type T, using the SelectQuery given. It's important to make sure that T (meaning the ClassDef set up for T) /// has the properties defined in the fields of the select query. /// This method allows you to define a custom query to load a business object /// </summary> /// <typeparam name="T">The type of object to load. This must be a class that implements IBusinessObject and has a parameterless constructor</typeparam> /// <param name="criteriaString">The select query to use to load from the data source</param> /// <returns>The business object that was found. If none was found, null is returned. If more than one is found an <see cref="HabaneroDeveloperException"/> error is throw</returns> public T GetBusinessObject <T>(string criteriaString) where T : class, IBusinessObject, new() { Criteria criteriaObject = CriteriaParser.CreateCriteria(criteriaString); return(GetBusinessObjectShared <T>(criteriaObject)); }