private void MontarParametrosXml(Util.Mapeamento.Entidade Map, XmlNode Node) { if ("PRODUTO" == Map.Para) { } if (Map.Filhos.Count == 0) { MontarItemParametroXml(Map, Node); } else { if (Map.Mult && Map.De != null) { XmlNode NodeClone = Node.Clone(); foreach (string Nome in Map.De.Split('/')) { NodeClone = NodeClone[Nome]; if (NodeClone == null) { NodeClone = Node.Clone(); } } List <XmlNode> NodeList = new List <XmlNode>(); if (NodeClone.Name == Map.De) { NodeList.Add(NodeClone); } else { if (NodeClone.ParentNode != null) { NodeList.AddRange(NodeClone.ParentNode.ChildNodes.Cast <XmlNode>()); } } foreach (XmlNode no in NodeList) { XmlDeEntrada.Append(@"<" + Map.Para.Trim() + ">"); Inicio(Map.Filhos, no); XmlDeEntrada.Append(@"</" + Map.Para.Trim() + ">"); } } else { XmlDeEntrada.Append(@"<" + Map.Para.Trim() + ">"); foreach (Util.Mapeamento.Entidade ObjetoMapeamento in Map.Filhos) { MontarParametrosXml(ObjetoMapeamento, Node); } XmlDeEntrada.Append(@"</" + Map.Para.Trim() + ">"); } } }
private void MontarItemParametroXml(Util.Mapeamento.Entidade Map, XmlNode Node) { string Valor = Map.Valor.ToString(); if (Node != null) { if (string.IsNullOrEmpty(Map.Valor.ToString())) { Valor = ObterValorNodeXml(Map, Node); } } if (!Map.BitExcluirBranco || (Map.BitExcluirBranco && !string.IsNullOrWhiteSpace(Valor))) { XmlDeEntrada.Append(@"<" + Map.Para.Trim() + ">"); XmlDeEntrada.Append(Valor.Trim()); XmlDeEntrada.Append(@"</" + Map.Para.Trim() + ">"); } }
public string ObterValorNodeXml(Util.Mapeamento.Entidade Map, XmlNode Node) { string Valor = ""; try { if (!string.IsNullOrEmpty(Map.De)) { bool Exists = true; XmlNode NodeClone = Node.Clone(); foreach (string Nome in Map.De.Split('/')) { NodeClone = NodeClone[Nome]; if (NodeClone == null) { NodeClone = Node.Clone(); Exists = false; } else { Exists = true; } } if (Map.TipoValor == "System.DateTime") { Valor = Exists ? DateTime.Parse(NodeClone.InnerText).ToString("yyyy-MM-ddThh:mm:ss.000") : ""; } else { Valor = Exists ? NodeClone.InnerText : ""; } } else if (!string.IsNullOrEmpty(Map.Valor.ToString())) { Valor = Map.Valor.ToString(); } if (Map.ValoresDePara != null && Map.ValoresDePara.Count > 0) { if (Map.ValoresDePara.Exists(c => c.De == (Valor == "" ? " " : Valor))) { Valor = Map.ValoresDePara.Single(c => c.De == (Valor == "" ? " " : Valor)).Para; } } } catch (Exception ex) { throw new Exception("O nó de mapeamento De:'" + Map.De + "' Para:'" + Map.Para + "' não foi encontrado!"); } try { if (!string.IsNullOrEmpty(Map.Acao)) { List <object> lstParametros = new List <object>(); if (this.Parametros != null) { lstParametros.AddRange(this.Parametros); } else { lstParametros.Add(Valor); lstParametros.Add(XmlPrincipal == null ? Node : XmlPrincipal); if (!String.IsNullOrEmpty(Map.Para)) { lstParametros.Add(Map.Para); } } Valor = new Selia.Integrador.Utils.Generic.Invoke().Exec(Map.Acao.Split(';')[0], Map.Acao.Split(';')[1], lstParametros, "").ToString(); } } catch (Exception ex) { throw ex; } return(Valor.Replace("&", "&")); }