public string SearchTheRouteWithLimit(string routeName, string searchParam, string resultLimit) { List<Dictionary<string, string>> results = new List<Dictionary<string, string>>(); InfinityEngine.Business.InfinityEngine infinityEngine = new InfinityEngine.Business.InfinityEngine(); results = infinityEngine.SearchAutoCompleteCache(routeName, searchParam, int.Parse(resultLimit)); return JsonConvert.SerializeObject(results); }
public void TestSearchAutoCompleteCache() { Configuration config = new Configuration(); config.AutoCompleteRoute = "testRoute"; config.MaxResults = 100; config.RecordIndentifier = "Code"; config.UpdateURL = "http://urltoupdatefrom"; BasicRedisClientManager pooledClientManager = RedisClientManager.get(); using (IRedisClient redisClient = pooledClientManager.GetClient()) { IRedisTypedClient<Configuration> redis = redisClient.As<Configuration>(); redis.SetEntry(config.AutoCompleteRoute, config); Dictionary<string,string> dataObj = new Dictionary<string,string>(); dataObj["Code"] = "foo"; dataObj["Desc"] = "bar"; redisClient.Lists["cacheIndex:" + config.AutoCompleteRoute].Add(dataObj[config.RecordIndentifier]); redisClient.SetEntry("fullCache:" + config.AutoCompleteRoute + ":" + dataObj[config.RecordIndentifier], JsonConvert.SerializeObject(dataObj)); redisClient.AddItemToSortedSet(config.AutoCompleteRoute + ":autocomplete:b", "foo", 0); redisClient.AddItemToSortedSet(config.AutoCompleteRoute + ":autocomplete:ba", "foo", 0); redisClient.AddItemToSortedSet(config.AutoCompleteRoute + ":autocomplete:bar", "foo", 0); redisClient.AddItemToSortedSet(config.AutoCompleteRoute + ":autocomplete:bar*", "foo", 0); } InfinityEngine.Business.InfinityEngine infinityEngine = new InfinityEngine.Business.InfinityEngine(); List<Dictionary<string, string>> results = infinityEngine.SearchAutoCompleteCache(config.AutoCompleteRoute, "ba", 50); if (results.Count > 0) { Dictionary<string, string> firstResult = results[0]; Assert.IsTrue(firstResult["Code"].Equals("foo") && firstResult["Desc"].Equals("bar")); } else { Assert.IsTrue(false); } }