Syncano.Net.DataRequests.DataObjectRichQueryRequest.AddDataFieldFilter C# (CSharp) Method

AddDataFieldFilter() public method

Adds filters for special fields: DataOne,DataTwo and DataThree
public AddDataFieldFilter ( DataObjectSpecialField specialField, DataObjectOperator operatorName, long value ) : void
specialField DataObjectSpecialField
operatorName DataObjectOperator
value long
return void
        public void AddDataFieldFilter(DataObjectSpecialField specialField, DataObjectOperator operatorName, long value)
        {
            string specialFieldName = specialField == DataObjectSpecialField.DataOne ? "data1" : (specialField == DataObjectSpecialField.DataTwo) ? "data2" : "data3";

            string operatorString = "";
            switch (operatorName)
            {
                case DataObjectOperator.Equals:
                    operatorString = "eq";
                    break;
                case DataObjectOperator.GreaterThan:
                    operatorString = "gt";
                    break;
                case DataObjectOperator.GreaterThanOrEquals:
                    operatorString = "gte";
                    break;
                case DataObjectOperator.LowerThan:
                    operatorString = "lt";
                    break;
                case DataObjectOperator.LowerThanOrEquals:
                    operatorString = "lte";
                    break;
                case DataObjectOperator.NotEquals:
                    operatorString = "neq";
                    break;
            }
            _dataFieldFilters.Add(string.Format("{0}__{1}", specialFieldName, operatorString), value.ToString());
        }
    }

Usage Example

        public async Task Get_Data2_OrderBy(DataObjectSyncanoClient client)
        {
            //given
            var newData1 = new DataObjectDefinitionRequest();
            newData1.ProjectId = TestData.ProjectId;
            newData1.CollectionId = TestData.CollectionId;
            newData1.DataTwo = 1;

            var newData2 = new DataObjectDefinitionRequest();
            newData2.ProjectId = TestData.ProjectId;
            newData2.CollectionId = TestData.CollectionId;
            newData2.DataTwo = 2;

            var dataObject1 = await client.New(newData1);
            var dataObject2 = await client.New(newData2);

            var getRequest = new DataObjectRichQueryRequest();
            getRequest.ProjectId = TestData.ProjectId;
            getRequest.CollectionId = TestData.CollectionId;
            getRequest.OrderBy = DataObjectOrderBy.DataOne;
            getRequest.Order = DataObjectOrder.Ascending;
            getRequest.AddDataFieldFilter(DataObjectSpecialField.DataTwo, DataObjectOperator.LowerThanOrEquals, 2);
            getRequest.AddDataFieldFilter(DataObjectSpecialField.DataTwo, DataObjectOperator.GreaterThanOrEquals, 1);

            //when
            var result =
                await client.Get(getRequest);

            //then
            result.ShouldNotBeNull();
            result.Count.ShouldEqual(2);
            result[0].Id.ShouldEqual(dataObject1.Id);
            result[1].Id.ShouldEqual(dataObject2.Id);

            //cleanup
            var deleteRequest = new DataObjectSimpleQueryRequest();
            deleteRequest.ProjectId = TestData.ProjectId;
            deleteRequest.CollectionId = TestData.CollectionId;
            await client.Delete(deleteRequest);
        }