Пример #1
0
        public async Task getDataFromServerNearFunction()
        {
            var custom     = new CB.CloudTable("CustomGeoPoint");
            var newColumn7 = new CB.Column("location");

            newColumn7.DataType = CB.DataType.GeoPoint.ToString();
            custom.AddColumn(newColumn7);
            var response = await custom.SaveAsync();

            var loc = new CB.CloudGeoPoint(17.7, 80.0);
            var obj = new CB.CloudObject("CustomGeoPoint");

            obj.Set("location", loc);
            await obj.SaveAsync();

            var search = new CB.CloudSearch("CustomGeoPoint");

            search.SearchFilter = new CB.SearchFilter();
            search.SearchFilter.Near("location", loc, 1);
            var list = (List <CB.CloudObject>) await search.Search();

            if (list.Count > 0)
            {
                Assert.IsTrue(true);
            }
            else
            {
                Assert.Fail("should have retrieved data");
            }
        }
Пример #2
0
        public async Task EqualToWithCloudSearchOverCloudObject()
        {
            var custom     = new CB.CloudTable("CustomRelation");
            var newColumn1 = new CB.Column("newColumn7");

            newColumn1.DataType = CB.DataType.Relation.ToString();
            custom.AddColumn(newColumn1);
            await custom.SaveAsync();

            var loc  = new CB.CloudGeoPoint(17.7, 80.0);
            var obj  = new CB.CloudObject("CustomRelation");
            var obj1 = new CB.CloudObject("student1");

            obj1.Set("name", "Ranjeet");
            obj.Set("newColumn7", obj1);
            await obj.SaveAsync();

            var search = new CB.CloudSearch("CustomRelation");

            search.SearchFilter = new CB.SearchFilter();
            search.SearchFilter.EqualTo("newColumn7", obj.Get("newColumn7"));
            var list = (List <CB.CloudObject>) await search.Search();

            if (list.Count > 0)
            {
                Assert.IsTrue(true);
            }
            else
            {
                Assert.Fail("should have retrieved data");
            }
        }
Пример #3
0
        public async Task OrBetweenTables()
        {
            var obj = new CB.CloudObject("Student");

            obj.Set("name", "RAVI");

            var obj1 = new CB.CloudObject("hostel");

            obj1.Set("room", 509);

            await obj.SaveAsync();

            await obj1.SaveAsync();

            ArrayList tableNames = new ArrayList();

            tableNames.Add("Student");
            tableNames.Add("hostel");

            var sq = new CB.SearchQuery();

            sq.SearchOn("name", "ravi", null, null, null, null);

            var sq1 = new CB.SearchQuery();

            sq1.SearchOn("room", 509, null, null, null, null);

            var cs = new CB.CloudSearch(tableNames);

            cs.SearchQuery = new SearchQuery();
            cs.SearchQuery.Or(sq);
            cs.SearchQuery.Or(sq1);

            var list = (List <CB.CloudObject>) await cs.Search();

            var table = tableNames.ToArray();

            for (int i = 0; i < list.Count; i++)
            {
                if (list[i].TableName != null)
                {
                    var name = (string)list[i].TableName;

                    table = table.Where(val => val.ToString() != name).ToArray();
                }
            }

            if (table.Length == 0)
            {
                Assert.IsTrue(true);
            }
            else
            {
                Assert.Fail("Search on both tables with OR failed.");
            }
        }
Пример #4
0
        public async Task shouldSearchWithNotEqualToValue()
        {
            var cs = new CB.CloudSearch("Student");

            cs.SearchFilter = new CB.SearchFilter();
            cs.SearchFilter.NotEqualTo("age", 19);
            var list = (List <CB.CloudObject>) await cs.Search();

            Assert.IsTrue(true);
        }
Пример #5
0
        public async Task searchObjectWithPhrase()
        {
            var cs = new CB.CloudSearch("Student");

            cs.SearchQuery = new CB.SearchQuery();

            cs.SearchQuery.Phrase("name", "Gautam Singh", null, null);
            var list = (List <CB.CloudObject>) await cs.Search();

            Assert.IsTrue(true);
        }
Пример #6
0
        public async Task searchForObjectWithBestColumns()
        {
            var cs = new CB.CloudSearch("Student");

            cs.SearchQuery = new CB.SearchQuery();
            string[] column = { "name", "description" };
            cs.SearchQuery.BestColumns(column, "G", null, null, null, null);
            var list = (List <CB.CloudObject>) await cs.Search();

            Assert.IsTrue(true);
        }
Пример #7
0
        public async Task searchForObjectWithStartWith()
        {
            var cs = new CB.CloudSearch("Student");

            cs.SearchQuery = new CB.SearchQuery();

            cs.SearchQuery.StartsWith("name", "G", null);
            var list = (List <CB.CloudObject>) await cs.Search();

            Assert.IsTrue(true);
        }
Пример #8
0
        public async Task searchObjectWithWhileCard()
        {
            var cs = new CB.CloudSearch("Student");

            cs.SearchQuery = new CB.SearchQuery();

            cs.SearchQuery.WildCard("name", "G*", null);
            var list = (List <CB.CloudObject>) await cs.Search();

            Assert.IsTrue(true);
        }
Пример #9
0
        public async Task searchIndexedObject()
        {
            var cs = new CB.CloudSearch("Custom1");

            cs.SearchQuery = new CB.SearchQuery();
            cs.SearchQuery.SearchOn("description", "wi-fi", null, null, null, null);
            var list = (List <CB.CloudObject>) await cs.Search();

            if (list.Count > 0)
            {
                Assert.IsTrue(true);
            }
        }
Пример #10
0
        public async Task searchObjectForGivenValue()
        {
            var cs = new CB.CloudSearch("Student");

            cs.SearchFilter = new CB.SearchFilter();

            cs.SearchFilter.EqualTo("age", 19);
            var list = (List <CB.CloudObject>) await cs.Search();

            if (list.Count > 0)
            {
                Assert.IsTrue(true);
            }
        }
Пример #11
0
        public async Task sortInDescendingOrder()
        {
            var cs = new CB.CloudSearch("Student");

            cs.OrderByDesc("age");
            var list = (List <CB.CloudObject>) await cs.Search();

            if (list.Count > 0)
            {
                Assert.IsTrue(true);
            }
            else
            {
                Assert.Fail("");
            }
        }
Пример #12
0
        public async Task columnExistsTest()
        {
            var cs = new CB.CloudSearch("Student");

            cs.SearchFilter = new CB.SearchFilter();
            cs.SearchFilter.Exists("name");
            var list = (List <CB.CloudObject>) await cs.Search();

            if (list.Count > 0)
            {
                Assert.IsTrue(true);
            }
            else
            {
                Assert.Fail("");
            }
        }
Пример #13
0
        public async Task searchRecordsWhichDoNotHaveCertainColumnTest()
        {
            var cs = new CB.CloudSearch("Student");

            cs.SearchFilter = new CB.SearchFilter();
            cs.SearchFilter.DoesNotExists("expire");
            var list = (List <CB.CloudObject>) await cs.Search();

            if (list.Count > 0)
            {
                Assert.IsTrue(true);
            }
            else
            {
                Assert.Fail("");
            }
        }
Пример #14
0
        public async Task setLimitTest()
        {
            var cs = new CB.CloudSearch("Student");

            cs.SearchFilter = new CB.SearchFilter();
            cs.SearchFilter.NotEqualTo("age", 19);
            cs.Limit = 0;
            var list = (List <CB.CloudObject>) await cs.Search();

            if (list.Count == 0)
            {
                Assert.IsTrue(true);
            }
            else
            {
                Assert.Fail("should limit the number of results");
            }
        }
Пример #15
0
        public async Task recordsWithinCertainRange()
        {
            var cs = new CB.CloudSearch("Student");

            cs.SearchFilter = new CB.SearchFilter();

            cs.SearchFilter.GreaterThan("age", 19);
            cs.SearchFilter.LessThan("age", 50);
            var list = (List <CB.CloudObject>) await cs.Search();

            if (list.Count > 0)
            {
                Assert.IsTrue(true);
            }
            else
            {
                Assert.Fail("");
            }
        }
Пример #16
0
        public async Task minimumPercentQueries()
        {
            var obj = new CB.CloudObject("Student");

            obj.Set("name", "RAVI");
            await obj.SaveAsync();

            ArrayList tableNames = new ArrayList();

            tableNames.Add("Student");
            var cs = new CB.CloudSearch(tableNames);

            cs.SearchQuery = new CB.SearchQuery();
            cs.SearchQuery.SearchOn("name", "ravi", null, null, "75%", null);
            cs.Limit = 9999;
            var list = (List <CB.CloudObject>) await cs.Search();

            var table = tableNames.ToArray();

            for (int i = 0; i < list.Count; i++)
            {
                if (list[i].TableName != null)
                {
                    var name = (string)list[i].TableName;
                    table = table.Where(val => val.ToString() != (string)name).ToArray();
                }
            }

            if (table.Length == 0)
            {
                Assert.IsTrue(true);
            }
            else
            {
                Assert.Fail("Search on both tables with OR failed.");
            }
        }
Пример #17
0
        public async Task skipTest()
        {
            var obj = new CB.CloudObject("Student");

            obj.Set("age", 21);
            await obj.SaveAsync();

            var cs = new CB.CloudSearch("Student");

            cs.SearchFilter = new CB.SearchFilter();
            cs.SearchFilter.NotEqualTo("age", 19);
            cs.Skip = 999999;
            var list = (List <CB.CloudObject>) await cs.Search();

            if (list.Count == 0)
            {
                cs = new CB.CloudSearch("Student");
                cs.SearchFilter = new CB.SearchFilter();
                cs.SearchFilter.NotEqualTo("age", 19);
                cs.Skip = 1;
                list    = (List <CB.CloudObject>) await cs.Search();

                if (list.Count > 0)
                {
                    Assert.IsTrue(true);
                }
                else
                {
                    Assert.Fail("");
                }
            }
            else
            {
                Assert.Fail("");
            }
        }
Пример #18
0
        public static CloudSearch Or(CloudSearch searchObj1, CloudSearch searchObj2)
        {

            var collectionNames = new ArrayList();

            if (searchObj1.dictionary["collectionNames"].GetType() == typeof(ArrayList))
            {
                collectionNames.AddRange((ArrayList)searchObj1.dictionary["collectionNames"]);
            }
            else
            {
                collectionNames.Add((ArrayList)searchObj1.dictionary["collectionNames"]);
            }

            if (searchObj2.dictionary["collectionNames"].GetType() == typeof(ArrayList))
            {
                //check for duplicates.
                for (var i = 0; i < ((ArrayList)searchObj2.dictionary["collectionNames"]).Count; i++)
                {
                    if (collectionNames.IndexOf(((ArrayList)searchObj2.dictionary["collectionNames"])[i]) < 0)
                        collectionNames.Add(((ArrayList)searchObj2.dictionary["collectionNames"])[i]);
                }
            }
            else
            {
                if (collectionNames.IndexOf(((string)searchObj2.dictionary["collectionNames"])) < 0)
                    collectionNames.Add(((ArrayList)searchObj2.dictionary["collectionNames"]));
            }

            var obj3 = new CB.CloudSearch(collectionNames);
            //merge both of the objects.

            Dictionary<string, Object> q1 = null;
            Dictionary<string, Object> q2 = null;
            Dictionary<string, Object> f1 = null;
            Dictionary<string, Object> f2 = null;

            if (((((Dictionary<string, Object>)searchObj1.dictionary["query"])["filteredQuery"])) != null && (((Dictionary<string, Object>)((Dictionary<string, Object>)searchObj1.dictionary["query"])["filteredQuery"])["query"]) != null)
            {
                q1 = (Dictionary<string, Object>)(((Dictionary<string, Object>)((Dictionary<string, Object>)searchObj1.dictionary["query"])["filteredQuery"])["query"]);
            }
            else if (searchObj1.dictionary["query"] != null && ((((Dictionary<string, Object>)searchObj1.dictionary["query"])["filteredQuery"])) == null)
            {
                q1 = (Dictionary<string, Object>)searchObj1.dictionary["query"];
            }

            if (((((Dictionary<string, Object>)searchObj2.dictionary["query"])["filteredQuery"])) != null && (((Dictionary<string, Object>)((Dictionary<string, Object>)searchObj2.dictionary["query"])["filteredQuery"])["query"]) != null)
            {
                q2 = (Dictionary<string, Object>)(((Dictionary<string, Object>)((Dictionary<string, Object>)searchObj2.dictionary["query"])["filteredQuery"])["query"]);
            }
            else if (searchObj2.dictionary["query"] != null && ((((Dictionary<string, Object>)searchObj2.dictionary["query"])["filteredQuery"])) == null)
            {
                q2 = (Dictionary<string, Object>)searchObj2.dictionary["query"];
            }


            if (((((Dictionary<string, Object>)searchObj1.dictionary["query"])["filteredQuery"])) != null && (((Dictionary<string, Object>)((Dictionary<string, Object>)searchObj1.dictionary["query"])["filteredQuery"])["filter"]) != null)
                f1 = (Dictionary<string, Object>)(((Dictionary<string, Object>)((Dictionary<string, Object>)searchObj1.dictionary["query"])["filteredQuery"])["filter"]);

            if (((((Dictionary<string, Object>)searchObj2.dictionary["query"])["filteredQuery"])) != null && (((Dictionary<string, Object>)((Dictionary<string, Object>)searchObj2.dictionary["query"])["filteredQuery"])["filter"]) != null)
                f2 = (Dictionary<string, Object>)(((Dictionary<string, Object>)((Dictionary<string, Object>)searchObj2.dictionary["query"])["filteredQuery"])["filter"]);

            if (f1.Count > 0 || f2.Count > 0)
            { //if any of the filters exist, then...
                obj3._MakeFilteredQuery();
                if (f1.Count > 0 && f2.Count == 0)
                    (((Dictionary<string, Object>)((Dictionary<string, Object>)obj3.dictionary["query"])["filteredQuery"])["filter"]) = f1;
                else if (f2.Count > 0 && f1.Count == 0)
                    (((Dictionary<string, Object>)((Dictionary<string, Object>)obj3.dictionary["query"])["filteredQuery"])["filter"]) = f2;
                else
                {
                    //if both exists.
                    obj3._PushInShouldFilter(f1);
                    obj3._PushInShouldFilter(f2);
                }
            }
            else
            {
                //only query exists.
                obj3._CreateBoolQuery();
                obj3._PushInShouldQuery(q1);
                obj3._PushInShouldQuery(q2);
            }

            return obj3;

        }