private static void ValidateImageSearchParams(ImageSearchParameters parameters, StringBuilder message) { if (string.IsNullOrWhiteSpace(parameters.Url)) { message.AppendLine("Image url cannot be empty"); } }
public static bool ValidateImageSearch(ImageSearchParameters parameters, int results, int page, out string message) { var messages = new StringBuilder(); ValidatePagination(results, page, messages); ValidateImageSearchParams(parameters, messages); ValidateAdvancedSearchParams(parameters, messages, true); message = messages.ToString(); return(message.Length == 0); }
public IActionResult IndexGet(ImageSearchParameters imageSearchParameters) { if (!string.IsNullOrEmpty(imageSearchParameters.Query)) { ImageSearchClient client = new ImageSearchClient(new Microsoft.Azure.CognitiveServices.Search.ImageSearch.ApiKeyServiceClientCredentials(_config["Keys:BingSearch"])); Images imageResults = client.Images.SearchAsync(query: imageSearchParameters.Query, offset: imageSearchParameters.Offset, count: imageSearchParameters.Count).Result; TempData.Put("Images", imageResults); } return(View("~/Views/Projects/BingSearch/Index.cshtml", imageSearchParameters)); }
public IActionResult ImageSearch([FromBody] ImageSearchParameters parameters, int results = 20, int start = 0) { if (!_searchService.CanImageSearch()) { return(StatusCode((int)HttpStatusCode.ServiceUnavailable)); } parameters.Fields = new List <string> { "Image" }; if (!ValidationHelper.ValidateImageSearch(parameters, results, start, out string message)) { return(BadRequest(message)); } var result = _searchService.ImageSearch(parameters, results, start); return(result != null?Ok(result) : StatusCode((int)HttpStatusCode.ServiceUnavailable)); }
public ImageSearchResult ImageSearch(ImageSearchParameters parameters, int results, int start) { var imageTags = _imageDetectService.GetImageTags(parameters.Url).Result; if (imageTags == null) { return(null); } if (string.IsNullOrWhiteSpace(imageTags)) { return(new ImageSearchResult()); } if (!parameters.SearchSimilarities) { imageTags = $"\"{imageTags.Replace(" AND ", " ")}\""; } return(new ImageSearchResult(Search(GetAdvancedQuery, imageTags, parameters, results, start)) { Tags = imageTags }); }