Beispiel #1
0
        /// <summary>
        /// Image Search
        /// </summary>
        /// <param name="query">Query String</param>
        /// <param name="longitude">Longitude</param>
        /// <param name="latitude">Latitude</param>
        /// <returns>Results</returns>
        public IEnumerable <ImageResult> Search(string query, double?longitude = null, double?latitude = null)
        {
            var results = this.QueryLocal(query);

            if (null == results || 0 == results.Count())
            {
                results = results ?? new List <ImageResult>();
                var bingContainer = new Bing.BingSearchContainer(new Uri(RootUri))
                {
                    Credentials = new NetworkCredential(AccountKey, AccountKey),
                };

                var imageQuery = bingContainer.Image(query, null, null, "Strict", latitude, longitude, "Size:Large+Style:Photo");

                var entries = new List <BingQueryEntry>();
                var images  = imageQuery.Execute();
                foreach (var image in images)
                {
                    if (null != image)
                    {
                        var result = new ImageResult(image);
                        results.Add(result);

                        var entry = new BingQueryEntry()
                        {
                            PartitionKey = query.ToLowerInvariant(),
                            RowKey       = Guid.NewGuid().ToString(),
                            Url          = result.Url,
                            ThumbnailUrl = result.ThumbnailUrl,
                        };

                        entries.Add(entry);
                    }
                }

                this.SaveLocal(entries);
            }

            return(results);
        }
Beispiel #2
0
        public void RoundTrip()
        {
            var item = new BingQueryEntry()
            {
                PartitionKey = Guid.NewGuid().ToString(),
                RowKey       = Guid.NewGuid().ToString(),
                ThumbnailUrl = Guid.NewGuid().ToString(),
                Url          = Guid.NewGuid().ToString(),
            };

            var table = new TableStorage("testrt");

            table.InsertOrReplace(item).Wait();

            var results = table.QueryByPartition <BingQueryEntry>(item.PartitionKey);
            var result  = results.FirstOrDefault();

            Assert.IsNotNull(results);

            Assert.AreEqual <string>(item.PartitionKey, result.PartitionKey);
            Assert.AreEqual <string>(item.RowKey, result.RowKey);
            Assert.AreEqual <string>(item.Url, result.Url);
            Assert.AreEqual <string>(item.ThumbnailUrl, result.ThumbnailUrl);
        }