public void CRITERIA02_CompoundExpressionSerializeTest() { // Arrange Guid typeGuid = new Guid("{2bc63f3a-a7a1-4ded-a727-b14f7b2cef69}"); string poNumber = "Testing123"; string knownGood = "{\"Id\":\"f27daae2-280c-dd8b-24e7-9bdb5120d6d2\",\"Criteria\":{\"Base\":{\"Expression\":{\"And\":{\"Expression\":[{\"SimpleExpression\":{\"ValueExpressionLeft\":{\"Property\":\"$Context/Property[Type='2afe355c-24a7-b20f-36e3-253b7249818d']/PurchaseOrderType$\"},\"Operator\":\"Equal\",\"ValueExpressionRight\":{\"Value\":\"" + typeGuid.ToString("B") + "\"}}},{\"SimpleExpression\":{\"ValueExpressionLeft\":{\"Property\":\"$Context/Property[Type='2afe355c-24a7-b20f-36e3-253b7249818d']/PurchaseOrderNumber$\"},\"Operator\":\"Equal\",\"ValueExpressionRight\":{\"Value\":\"" + poNumber + "\"}}}]}}}}}"; QueryCriteriaExpression expr1 = new QueryCriteriaExpression { PropertyName = (new PropertyPathHelper(ClassConstants.PurchaseOrder.Id, "PurchaseOrderType")).ToString(), PropertyType = QueryCriteriaPropertyType.Property, Operator = QueryCriteriaExpressionOperator.Equal, Value = typeGuid.ToString("B") }; QueryCriteriaExpression expr2 = new QueryCriteriaExpression { PropertyName = (new PropertyPathHelper(ClassConstants.PurchaseOrder.Id, "PurchaseOrderNumber")).ToString(), PropertyType = QueryCriteriaPropertyType.Property, Operator = QueryCriteriaExpressionOperator.Equal, Value = poNumber }; QueryCriteria criteria = new QueryCriteria(TypeProjectionConstants.PurchaseOrder.Id); criteria.GroupingOperator = QueryCriteriaGroupingOperator.And; criteria.Expressions.Add(expr1); criteria.Expressions.Add(expr2); // Act string testSerialize = criteria.ToString(); // Assert Assert.AreEqual(knownGood, testSerialize); }
public void CRITERIA01_SimpleExpressionSerializeTest() { // Arrange Guid baseId = new Guid("{b3e98851-27ab-4d70-bb10-3cf71c80d838}"); string knownGood = "{\"Id\":\"" + TypeProjectionConstants.User.Id.ToString("D") + "\",\"Criteria\":{\"Base\":{\"Expression\":{\"SimpleExpression\":{\"ValueExpressionLeft\":{\"GenericProperty\":\"Id\"},\"Operator\":\"Equal\",\"ValueExpressionRight\":{\"Value\":\"" + baseId.ToString("D") + "\"}}}}}}"; QueryCriteriaExpression expr = new QueryCriteriaExpression { PropertyName = "Id", PropertyType = QueryCriteriaPropertyType.GenericProperty, Operator = QueryCriteriaExpressionOperator.Equal, Value = baseId.ToString("D") }; QueryCriteria criteria = new QueryCriteria(TypeProjectionConstants.User.Id) { GroupingOperator = QueryCriteriaGroupingOperator.SimpleExpression }; criteria.Expressions.Add(expr); // Act string testSerialize = criteria.ToString(); // Assert Assert.AreEqual(knownGood, testSerialize); }
/// <summary> /// Convenience method that returns an Incident by its ID /// </summary> /// <param name="authToken">AuthorizationToken to use</param> /// <param name="incidentID">ID of the Incident to retrieve</param> /// <returns>Incident</returns> public static async Task<Incident> GetIncidentByID(AuthorizationToken authToken, string incidentID) { QueryCriteriaExpression expression = new QueryCriteriaExpression(); expression.PropertyName = (new PropertyPathHelper(ClassConstants.Incident, "ID")).ToString(); expression.PropertyType = QueryCriteriaPropertyType.Property; expression.Operator = QueryCriteriaExpressionOperator.Equal; expression.Value = incidentID; QueryCriteria criteria = new QueryCriteria(TypeProjectionConstants.Incident); criteria.GroupingOperator = QueryCriteriaGroupingOperator.SimpleExpression; criteria.Expressions.Add(expression); List<Incident> incidentList = await IncidentController.GetIncidentsByCriteria(authToken, criteria); if (incidentList.Count == 0) return null; return incidentList[0]; }
/// <summary> /// Helper method that returns a QueryCriteria used by the GetHardwareAssetBy.. methods /// </summary> /// <param name="property">Property to query</param> /// <param name="value">Property value to look for</param> /// <returns></returns> private static QueryCriteria BuildCriteria(PropertyPathHelper property, string value) { QueryCriteriaExpression expression = new QueryCriteriaExpression { PropertyName = property.ToString(), PropertyType = QueryCriteriaPropertyType.Property, Operator = QueryCriteriaExpressionOperator.Equal, Value = value }; QueryCriteria criteria = new QueryCriteria(TypeProjectionConstants.HardwareAsset.Id) { GroupingOperator = QueryCriteriaGroupingOperator.SimpleExpression }; criteria.Expressions.Add(expression); return(criteria); }
/// <summary> /// Convenience method that returns a list of Purchase Orders with the specified order type /// </summary> /// <param name="authToken">AuthorizationToken to use</param> /// <param name="poTypeGuid">Purchase Order Type ID to search for</param> /// <returns></returns> public static async Task<List<PurchaseOrder>> GetPurchaseOrdersByType(AuthorizationToken authToken, Guid poTypeGuid) { QueryCriteriaExpression expression = new QueryCriteriaExpression { PropertyName = (new PropertyPathHelper(ClassConstants.PurchaseOrder, "PurchaseOrderType")).ToString(), PropertyType = QueryCriteriaPropertyType.Property, Operator = QueryCriteriaExpressionOperator.Equal, Value = poTypeGuid.ToString("B") }; QueryCriteria criteria = new QueryCriteria(TypeProjectionConstants.PurchaseOrder); criteria.GroupingOperator = QueryCriteriaGroupingOperator.And; criteria.Expressions.Add(expression); List<PurchaseOrder> purchaseOrderList = await PurchaseOrderController.GetPurchaseOrdersByCriteria(authToken, criteria); if (purchaseOrderList.Count == 0) return null; return purchaseOrderList; }
/// <summary> /// Convenience method that gets a list of all Locations that are active /// </summary> /// <param name="authToken">AuthorizationToken to use</param> /// <returns></returns> public static async Task<List<Location>> GetAll(AuthorizationToken authToken) { PropertyPathHelper pathHelper = new PropertyPathHelper(); pathHelper.PropertyName = "ObjectStatus"; pathHelper.ObjectClass = ClassConstants.GetClassIdByType<Location>(); QueryCriteriaExpression expr = new QueryCriteriaExpression { PropertyName = pathHelper.ToString(), PropertyType = QueryCriteriaPropertyType.Property, Operator = QueryCriteriaExpressionOperator.Equal, Value = EnumerationConstants.ConfigItem.BuiltinValues.ObjectStatus.Active.ToString("D") }; QueryCriteria criteria = new QueryCriteria(TypeProjectionConstants.Location.Id) { GroupingOperator = QueryCriteriaGroupingOperator.SimpleExpression }; criteria.Expressions.Add(expr); return await GetByCriteria(authToken, criteria); }
/// <summary> /// Convenience method that returns an Incident by its work item Id /// </summary> /// <param name="authToken">AuthorizationToken to use</param> /// <param name="incidentID">ID of the Incident to retrieve</param> /// <returns>Incident</returns> public static async Task <Incident> GetById(AuthorizationToken authToken, string incidentID) { QueryCriteriaExpression expression = new QueryCriteriaExpression(); expression.PropertyName = (new PropertyPathHelper(ClassConstants.Incident.Id, "Id")).ToString(); expression.PropertyType = QueryCriteriaPropertyType.Property; expression.Operator = QueryCriteriaExpressionOperator.Equal; expression.Value = incidentID; QueryCriteria criteria = new QueryCriteria(TypeProjectionConstants.Incident.Id); criteria.GroupingOperator = QueryCriteriaGroupingOperator.SimpleExpression; criteria.Expressions.Add(expression); List <Incident> incidentList = await IncidentController.GetByCriteria(authToken, criteria); if (incidentList.Count == 0) { return(null); } return(incidentList[0]); }
/// <summary> /// Convenience method that gets a list of all Locations that are active /// </summary> /// <param name="authToken">AuthorizationToken to use</param> /// <returns></returns> public static async Task <List <Location> > GetAll(AuthorizationToken authToken) { PropertyPathHelper pathHelper = new PropertyPathHelper(); pathHelper.PropertyName = "ObjectStatus"; pathHelper.ObjectClass = ClassConstants.GetClassIdByType <Location>(); QueryCriteriaExpression expr = new QueryCriteriaExpression { PropertyName = pathHelper.ToString(), PropertyType = QueryCriteriaPropertyType.Property, Operator = QueryCriteriaExpressionOperator.Equal, Value = EnumerationConstants.ConfigItem.BuiltinValues.ObjectStatus.Active.ToString("D") }; QueryCriteria criteria = new QueryCriteria(TypeProjectionConstants.Location.Id) { GroupingOperator = QueryCriteriaGroupingOperator.SimpleExpression }; criteria.Expressions.Add(expr); return(await GetByCriteria(authToken, criteria)); }
/// <summary> /// Convenience method that returns a list of Purchase Orders with the specified order type /// </summary> /// <param name="authToken">AuthorizationToken to use</param> /// <param name="poTypeGuid">Purchase Order Type ID to search for</param> /// <returns></returns> public static async Task <List <PurchaseOrder> > GetByOrderType(AuthorizationToken authToken, Guid poTypeGuid) { QueryCriteriaExpression expression = new QueryCriteriaExpression { PropertyName = (new PropertyPathHelper(ClassConstants.PurchaseOrder.Id, "PurchaseOrderType")).ToString(), PropertyType = QueryCriteriaPropertyType.Property, Operator = QueryCriteriaExpressionOperator.Equal, Value = poTypeGuid.ToString("B") }; QueryCriteria criteria = new QueryCriteria(TypeProjectionConstants.PurchaseOrder.Id); criteria.GroupingOperator = QueryCriteriaGroupingOperator.SimpleExpression; criteria.Expressions.Add(expression); List <PurchaseOrder> purchaseOrderList = await PurchaseOrderController.GetByCriteria(authToken, criteria); if (purchaseOrderList.Count == 0) { return(null); } return(purchaseOrderList); }
/// <summary> /// Helper method that returns a QueryCriteria used by the GetHardwareAssetBy.. methods /// </summary> /// <param name="property">Property to query</param> /// <param name="value">Property value to look for</param> /// <returns></returns> private static QueryCriteria BuildCriteria(PropertyPathHelper property, string value) { QueryCriteriaExpression expression = new QueryCriteriaExpression { PropertyName = property.ToString(), PropertyType = QueryCriteriaPropertyType.Property, Operator = QueryCriteriaExpressionOperator.Equal, Value = value }; QueryCriteria criteria = new QueryCriteria(TypeProjectionConstants.HardwareAsset.Id) { GroupingOperator = QueryCriteriaGroupingOperator.SimpleExpression }; criteria.Expressions.Add(expression); return criteria; }