public static PesquisarEspecialidade GetPesquisarEspecialidade() { XmlNode pesquisarNode = _document.SelectSingleNode(Properties.Settings.Default.Pesquisar_Especialidade_XPath); if (pesquisarNode == null) { return(null); } //Retornar para Classe PesquisarEspecialidade, vai haver um erro nos especialidades_salvas PesquisarEspecialidade pesquisar = FromXml <PesquisarEspecialidade>(pesquisarNode.OuterXml); //Início da correção das especialidades salvas XmlNode salvosNode = pesquisarNode.SelectSingleNode(Properties.Settings.Default.Pesquisar_Especialidades_Salvas); if (salvosNode != null) { //Pega os nós filhos de especialidades salvas, transforma em XmlNode, faz a serialização com cada membro e transforma em List pesquisar.EspecialidadesSalvas = salvosNode.ChildNodes.Cast <XmlNode>() .Select(n => FromXml <Especialidade>(n.OuterXml)).ToList(); } return(pesquisar); }
public static void SetPesquisarEspecialidade(PesquisarEspecialidade pesquisar) { XmlNode rootNode = CheckXmlLoad(); XmlNode pesquisarNode = _document.SelectSingleNode(Properties.Settings.Default.Pesquisar_Especialidade_XPath); //Se existir, remover para a inserção do novo Xml if (pesquisarNode != null) { rootNode.RemoveChild(pesquisarNode); } rootNode.InnerXml += ToXml(pesquisar); //Recarregar pesquisarEspecialidadeNode pesquisarNode = _document.SelectSingleNode(Properties.Settings.Default.Pesquisar_Especialidade_XPath); if (pesquisarNode != null) { //Pega os nós filhos de especialidades salvas, transforma em XmlNode, seleciona apenas os que tem Name "especialidades_salvas" e transforma em List List <XmlNode> salvos = pesquisarNode.ChildNodes.Cast <XmlNode>() .Where(n => n.Name == Properties.Settings.Default.Pesquisar_Especialidades_Salvas).ToList(); //Início da correção do Xml, onde cada médico salvo estará dentro de "especialidades_salvas" XmlNode salvosNode = _document.CreateElement(Properties.Settings.Default.Pesquisar_Especialidades_Salvas); foreach (XmlNode node in salvos) { //Remove o antigo nó, para haver a troca de nome do nó filho pesquisarNode.RemoveChild(node); XmlNode newNode = _document.CreateElement(Properties.Settings.Default.Especialidade); newNode.InnerXml = node.InnerXml; salvosNode.AppendChild(newNode); } pesquisarNode.AppendChild(salvosNode); } _document.Save(Properties.Settings.Default.SaveLocation); }