using System.Threading.Tasks;
using System.Xml.Serialization;
using System.Collections.Generic;
public static void Main()
var pessoa = new RhPessoa
DataNascimento = "2000-01-01T00:00:00",
Naturalidade = "SÃO PAULO",
DadosComplementares = new VPCompl
TipoCadastroPessoa = "TERCEIROS",
CNPJFornecedor = "08.905.300/0001-21",
NomeFornecedor = "GS NIMA BRASIL",
FuncaoPessoa = "CONSULTOR",
var buildings = new List<string>{ "AMBIENT", "SESAMM", "SANAMA" };
pessoa.PrepareBuildingsErpCode(buildings);
var xmlPayload = SerializerForXML(pessoa);
var teste1 = RemoveXmlDeclarationAndOrganize(xmlPayload);
Console.WriteLine(teste1);
private static string RemoveXmlDeclarationAndOrganize(string xml)
var doc = XDocument.Parse(xml);
private static string SerializeToXml<T>(T obj)
var xmlSerializer = new XmlSerializer(typeof(T));
using (var stringWriter = new StringWriter())
xmlSerializer.Serialize(stringWriter, obj);
return stringWriter.ToString();
public static string SerializerForXML<T>(T obj)
var xmlSerializer = new XmlSerializer(typeof(T));
using (var stringWriter = new StringWriter())
using (var xmlWriter = XmlWriter.Create(stringWriter, new XmlWriterSettings { OmitXmlDeclaration = true }))
xmlSerializer.Serialize(xmlWriter, obj);
return stringWriter.ToString();
public PPessoa Pessoa { get; set; }
public VPCompl DadosComplementares { get; set; }
public void PrepareBuildingsErpCode(List<string> allowedBuildingsErpCode)
foreach (var building in allowedBuildingsErpCode)
switch (building.ToUpper())
case "AMBIENT": DadosComplementares.Ambient = "S"; break;
case "SESAMM": DadosComplementares.Sesamm = "S"; break;
case "SANAMA": DadosComplementares.Sanama = "S"; break;
case "GSINIMABRASIL": DadosComplementares.GsinimaBrasil = "S"; break;
case "CAEPA": DadosComplementares.Caepa = "S"; break;
case "COMASA": DadosComplementares.Comasa = "S"; break;
case "SAMAR": DadosComplementares.Samar = "S"; break;
case "GSINDUSTRIAL": DadosComplementares.GsIndustrial = "S"; break;
case "SANEOURO": DadosComplementares.Saneouro = "S"; break;
case "GSSOLUCOES": DadosComplementares.GsSolucoes = "S"; break;
case "AQUAPOLO": DadosComplementares.AquaPolo = "S"; break;
case "TRIUNFO": DadosComplementares.Triunfo = "S"; break;
case "SANEL": DadosComplementares.Sanel = "S"; break;
case "PALMEIRAS": DadosComplementares.Palmeiras = "S"; break;
public string Codigo { get; set; }
public string Nome { get; set; }
[XmlElement("DTNASCIMENTO")]
public string DataNascimento { get; set; }
[XmlElement("ESTADONATAL")]
public string EstadoNatal { get; set; }
[XmlElement("NATURALIDADE")]
public string Naturalidade { get; set; }
public string Apelido { get; set; }
public string CPF { get; set; }
public string Aluno { get; set; }
[XmlElement("PROFESSOR")]
public string Professor { get; set; }
[XmlElement("CANDIDATO")]
public string Candidato { get; set; }
[XmlElement("USUARIOBIBLIOS")]
public string UsuarioBiblios { get; set; }
[XmlElement("FUNCIONARIO")]
public string Funcionario { get; set; }
[XmlElement("EXFUNCIONARIO")]
public string ExFuncionario { get; set; }
[XmlElement("CODPESSOA")]
public string CodPessoa { get; set; }
[XmlElement("TIPOCADASTROPESSOA")]
public string TipoCadastroPessoa { get; set; }
[XmlElement("CNPJFORNECEDOR")]
public string CNPJFornecedor { get; set; }
[XmlElement("NOMEFORNECEDOR")]
public string NomeFornecedor { get; set; }
[XmlElement("FUNCAOPESSOA")]
public string FuncaoPessoa { get; set; }
public string PIS { get; set; }
public string Ambient { get; set; } = "N";
public string Sesamm { get; set; } = "N";
public string Sanama { get; set; } = "N";
[XmlElement("GSINIMABRASIL")]
public string GsinimaBrasil { get; set; } = "N";
public string Caepa { get; set; } = "N";
public string Comasa { get; set; } = "N";
public string Samar { get; set; } = "N";
[XmlElement("GSINDUSTRIAL")]
public string GsIndustrial { get; set; } = "N";
public string Saneouro { get; set; } = "N";
[XmlElement("GSSOLUCOES")]
public string GsSolucoes { get; set; } = "N";
public string AquaPolo { get; set; } = "N";
public string Triunfo { get; set; } = "N";
public string Sanel { get; set; } = "N";
[XmlElement("PALMEIRAS")]
public string Palmeiras { get; set; } = "N";