using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System.Reflection; using System.Threading.Tasks; namespace DigitalSystem.WebPortales { class SpellClase { private static SpellClase _instance = null; private static readonly object lockObj = new object(); public static SpellClase instance { get { if (_instance == null) { lock (lockObj) { if (_instance == null) _instance = new SpellClase(); } } return _instance; } } private SpellClase() { } public async Task Correcciones1(string palabra) { var httpC = new HttpClient(); var _post = await httpC.GetAsync($"https://api.languagetool.org/v2/check?language=es&text={palabra}"); var jsonResponse = await _post.Content.ReadAsStringAsync(); var resultado = JObject.Parse(jsonResponse); var matches = resultado["matches"] as JArray; var resultados = new List(); foreach (var match in matches) { var replacements = match["replacements"] as JArray; if (replacements != null && replacements.Count > 0) { foreach (var r in replacements) { if (r["value"].ToString().StartsWith(palabra.Substring(0, palabra.IndexOf((char)65533)))) { resultados.Add(r["value"].ToString()); } } } } return resultados.Count > 0 ? resultados[0]:palabra; } } }