Esempio n. 1
0
        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));
        }