public async Task <ContentResult> Search(string terms = "", string author = "", string parentAuthor = "", string category = "", int page = 1) { terms = terms ?? ""; author = author ?? ""; parentAuthor = parentAuthor ?? ""; category = category ?? ""; var perPage = 15; var sb = new StringBuilder(); sb.Append(string.Format(SEARCH_HEADER, WebUtility.HtmlEncode(terms).Replace("\"", """), WebUtility.HtmlEncode(author).Replace("\"", """), WebUtility.HtmlEncode(parentAuthor).Replace("\"", """), category == "nws" ? "selected" : "", category == "informative" ? "selected" : "")); if (terms != "" || author != "" || parentAuthor != "" || category != "") { var results = await _searchParser.Search(terms, author, parentAuthor, category, page); sb.Append(string.Format(SEARCH_RESULTS_HEADER, /* {0} */ WebUtility.HtmlEncode(terms).Replace("\"", """), /* {1} */ WebUtility.HtmlEncode(author).Replace("\"", """), /* {2} */ WebUtility.HtmlEncode(parentAuthor).Replace("\"", """), /* {3} */ WebUtility.HtmlEncode(category).Replace("\"", """), /* {4} */ page == 1 ? "disabled" : "", /* {5} */ page > 1 ? $"{page - 1}" : "1", /* {6} */ $"{page + 1}", /* {7} */ results.Results.Count < perPage ? "disabled" : "", /* {8} */ $"{(int)Math.Ceiling((double)results.TotalResults / perPage)}", /* {9} */ $"{results.TotalResults:#,##0}", /* {10} */ $"{page:#,##0}")); if (results.Results.Count == 0) { sb.Append(NO_SEARCH_RESULTS); } foreach (var result in results.Results) { var pptTime = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(result.Date, PacificTimeZone.TimeZoneId); var timeZoneAbbreviation = PacificTimeZone.GetAbbreviationFromOffset(pptTime.Offset); sb.Append(string.Format(SEARCH_RESULT, /* {0} */ $"{result.Id}", /* {1} */ result.Preview, /* {2} */ WebUtility.HtmlEncode(result.Author), /* {3} */ $"{pptTime:M/d/yyyy h:mm tt} {timeZoneAbbreviation}")); } sb.Append(SEARCH_RESULTS_FOOTER); } sb.Append(SEARCH_FOOTER); return(Content(sb.ToString(), "text/html")); }
public async Task <string> UseSearchParser(string search) { SearchParser searchParser = new SearchParser(); return(await searchParser.Search(search)); }