/// <summary> /// Salva a coleção de códigos CEST em arquivo Json. /// </summary> /// <param name="cests">Coleção de códigos CEST.</param> /// <param name="path">Local do salvamento.</param> public static void SaveToJson(this CestCollection cests, string path) { string json = JsonConvert.SerializeObject(cests); DateTime dateTime = DateTime.Now; string fileName = $"CodeMiner_CEST_{ dateTime.Year }_{ dateTime.Month }_{ dateTime.Day }_{ dateTime.Hour }_{ dateTime.Minute }_{ dateTime.Second }.json"; string fullFilePath = Path.Combine(path, fileName); File.WriteAllText(fullFilePath, json, Encoding.UTF8); }
/// <summary> /// Obtém uma coleção de códigos CEST. /// </summary> /// <param name="htmlNodes">Nodos com os códigos CEST.</param> /// <returns>Coleção de códigos CEST.</returns> public static CestCollection GetCestCollection(this IEnumerable <HtmlNode> htmlNodes) { CestCollection cests = new CestCollection(); foreach (HtmlNode htmlNode in htmlNodes) { AddToCollection(htmlNode, cests); } return(cests); }
/// <summary> /// Caso válido, adiciona o código CEST à coleção. Caso ele já esteja presente, verifica se existem NCMs para adicionar. /// </summary> /// <param name="htmlNode">Nodo com o código CEST.</param> /// <param name="cests">Coleção de códigos CEST.</param> static void AddToCollection(HtmlNode htmlNode, CestCollection cests) { HtmlNodeCollection htmlNodeCollection = htmlNode.SelectNodes("td"); string value = htmlNodeCollection[1].InnerText.Clean(); string[] ncms = htmlNodeCollection[2].InnerText.CleanAndSplit(); string description = htmlNodeCollection[3].InnerText.Trim(); if (value.Equals("CEST", StringComparison.OrdinalIgnoreCase)) { return; } Cest cest = new Cest() { Description = description, Value = value }; cest.Ncms.AddRange(ncms); cests.Add(cest); }