public async Task <IActionResult> Submit(SubmitModel model) { if (!ModelState.IsValid) { return(Json(new ResultModel { Success = false, Errors = ModelState.Values.SelectMany(m => m.Errors).Select(m => m.ErrorMessage) }));; } if (!_searchEngine.IsValidSearchEngine(model.Url)) { var urls = new List <string> { $"Available search engines -" }; urls.AddRange(_searchEngine.GetSearchEngines().Select(s => s.Url)); return(Json(new ResultModel { Success = false, Errors = urls, })); } var hits = await _searchEngine.FindHits(model.Url, model.SearchTerms.Split(' ')); var result = new ResultModel { Hits = string.Join(", ", hits).Trim(), Success = true }; return(Json(result)); }