public string Executar(string mensagem, string numeroMensagem, Usuario usuario) { var objPollux = CarregarMensagem <Pollux.MSG0058>(mensagem); if (objPollux.IdentidadeEmissor == Enum.Sistemas.RetornaSistema(Enum.Sistemas.Sistema.Senior)) { this.AtualizaUsuario(objPollux); } else { usuarioIntegracao = usuario; var objeto = this.DefinirPropriedades(this.CarregarMensagem <Pollux.MSG0058>(mensagem)); if (!resultadoPersistencia.Sucesso) { retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0058R1>(numeroMensagem, retorno)); } try { if (objPollux.IdentidadeEmissor == Enum.Sistemas.RetornaSistema(Enum.Sistemas.Sistema.Extranet)) { objeto.IntegrarNoPlugin = true; } ContatoService contatoService = new ContatoService(this.Organizacao, this.IsOffline); objeto = contatoService.Persistir(objeto); if (objeto == null) { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = "Chave não enviada e existem vários registros com o mesmo documento de identificação Integração não realizada."; } else { RelacionaContatoMarca(this.CarregarMensagem <Pollux.MSG0058>(mensagem), objeto, contatoService); RelacionaContatoAreaAtuacao(this.CarregarMensagem <Pollux.MSG0058>(mensagem), objeto, contatoService); resultadoPersistencia.Sucesso = true; resultadoPersistencia.Mensagem = "Integração ocorrida com sucesso"; retorno.Add("CodigoContato", objeto.ID.Value.ToString()); if (usuarioIntegracao != null) { retorno.Add("Proprietario", usuarioIntegracao.ID.Value.ToString()); } retorno.Add("TipoProprietario", "systemuser"); } } catch (ChaveIntegracaoContatoException ex) { resultadoPersistencia.Sucesso = false; resultadoPersistencia.Mensagem = ex.Message; } } retorno.Add("Resultado", resultadoPersistencia); return(CriarMensagemRetorno <Pollux.MSG0058R1>(numeroMensagem, retorno)); }