public RetornoIntegracaoPessoa ExcluirPessoa(ParametroIntegracaoPessoa param, string cod_pessoa, string cod_filial = null)
        {
            _log.TraceMethodStart();

            CucCluParametro parametrosLogin = GerarParametroCUC(param);

            ConfiguracaoURICUC         configuracaoURICUC = ConfiguracaoCUCService.BuscarURI(ConstantesInegracao.URLConfiguracao.CadastroPessoa, _configuracaoCUC);
            EndpointAddress            address            = new EndpointAddress(configuracaoURICUC.URI);
            CucCliCadastroPessoaClient client             = new CucCliCadastroPessoaClient(CucCliCadastroPessoaClient.EndpointConfiguration.BasicHttpBinding_ICucCliCadastroPessoa, address);

            try
            {
                var ret = client.Excluir(parametrosLogin, cod_pessoa, cod_filial);
                RetornoIntegracaoPessoa retorno = GerarRetornoIntegracaoPessoa(ret);

                _log.TraceMethodEnd();

                return(retorno);
            }
            catch (TimeoutException timeoutEx)
            {
                client.Abort();
                throw new Exception("Tempo de conexão expirado", timeoutEx);
            }
            catch (EndpointNotFoundException endPointEx)
            {
                throw new Exception("Caminho do serviço não disponível ou inválido", endPointEx);
            }
        }
        private RetornoIntegracaoPessoa AtualizarPessoa(ParametroIntegracaoPessoa param, string xml)
        {
            _log.TraceMethodStart();

            CucCluParametro parametrosLogin = GerarParametroCUC(param);

            ConfiguracaoURICUC         configuracaoURICUC = ConfiguracaoCUCService.BuscarURI(ConstantesInegracao.URLConfiguracao.CadastroPessoa, _configuracaoCUC);
            EndpointAddress            address            = new EndpointAddress(configuracaoURICUC.URI);
            CucCliCadastroPessoaClient client             = new CucCliCadastroPessoaClient(CucCliCadastroPessoaClient.EndpointConfiguration.BasicHttpBinding_ICucCliCadastroPessoa, address);

            try
            {
                _log.Trace($"Chamando o método CUC: {configuracaoURICUC.URI}");

                var ret = client.Atualizar(parametrosLogin, xml);

                _log.Trace($"Finalizando a chamada do método CUC: {configuracaoURICUC.URI}");

                RetornoIntegracaoPessoa retorno = GerarRetornoIntegracaoPessoa(ret);

                _log.TraceMethodEnd();

                return(retorno);
            }
            catch (TimeoutException timeoutEx)
            {
                client.Abort();
                throw new Exception("Tempo de conexão expirado", timeoutEx);
            }
            catch (EndpointNotFoundException endPointEx)
            {
                throw new Exception("Caminho do serviço não disponível ou inválido", endPointEx);
            }
        }
        public DataSetPessoa SelecionarCabecalho(ParametroIntegracaoPessoa param, string cod_pessoa, string cod_filial = null)
        {
            _log.TraceMethodStart();

            CucCluParametro parametrosLogin = GerarParametroCUC(param);

            ConfiguracaoURICUC         configuracaoURICUC = ConfiguracaoCUCService.BuscarURI(ConstantesInegracao.URLConfiguracao.CadastroPessoa, _configuracaoCUC);
            EndpointAddress            address            = new EndpointAddress(configuracaoURICUC.URI);
            CucCliCadastroPessoaClient client             = new CucCliCadastroPessoaClient(CucCliCadastroPessoaClient.EndpointConfiguration.BasicHttpBinding_ICucCliCadastroPessoa, address);

            try
            {
                var ret = client.SelecionarCabecalho(parametrosLogin, cod_pessoa, cod_filial);

                RetornoIntegracaoPessoa retorno = GerarRetornoIntegracaoPessoa(ret);

                if (retorno.Excecao != null)
                {
                    throw new ApplicationException($"Retorno serviço CUC - {ret.Excecao.Mensagem}");
                }

                if (string.IsNullOrWhiteSpace(retorno.Xml))
                {
                    throw new ApplicationException("Dados não encontrados para a pessoa informada");
                }

                XmlSerializer xmlSerialize = new XmlSerializer(typeof(DataSetPessoa));

                var valor_serealizado = new StringReader(retorno.Xml);

                DataSetPessoa dataSetPessoa = (DataSetPessoa)xmlSerialize.Deserialize(valor_serealizado);

                if (dataSetPessoa.RegistroPessoa[0].cod_pessoa == null)
                {
                    throw new ApplicationException($"Retorno serviço CUC - Codigo da pessoa não encontrado");
                }

                _log.TraceMethodEnd();

                return(dataSetPessoa);
            }
            catch (TimeoutException timeoutEx)
            {
                client.Abort();
                throw new Exception("Tempo de conexão expirado", timeoutEx);
            }
            catch (EndpointNotFoundException endPointEx)
            {
                throw new Exception("Caminho do serviço não disponível ou inválido", endPointEx);
            }
        }
        private RetornoIntegracaoPessoa GerarRetornoIntegracaoPessoa(CucCluRetorno paramRetorno)
        {
            _log.TraceMethodStart();

            RetornoIntegracaoPessoa retorno = new RetornoIntegracaoPessoa();

            retorno.CodigoFilial = paramRetorno.CodigoFilial;
            retorno.CodigoPessoa = paramRetorno.CodigoPessoa;
            retorno.CodigoContaRelacionamento = paramRetorno.CodigoContaRelacionamento;
            retorno.TipoPessoa = paramRetorno.TipoPessoa;
            retorno.Excecao    = paramRetorno.Excecao;
            retorno.Xml        = paramRetorno.Xml;

            _log.TraceMethodEnd();

            return(retorno);
        }
示例#5
0
        public ActionResult deletePessoa([FromRoute] string codPessoa, [FromQuery] ParametroBaseQuery parametrosBase)
        {
            List <string> listaErros = new List <string>();
            MsgRetorno    retorno;
            string        identificador = string.Empty;

            try
            {
                _log.TraceMethodStart();
                identificador = Util.GerarIdentificadorUnico();
                _log.Information($"Iniciando processamento [delete] com o identificador {identificador}");
                _log.SetIdentificador(identificador);

                if (string.IsNullOrWhiteSpace(codPessoa))
                {
                    throw new ApplicationException("Parâmetro codPessoa obrigatório");
                }

                if (parametrosBase.empresa == null || parametrosBase.empresa.Value.Equals(0))
                {
                    throw new ApplicationException("Parâmetro empresa obrigatório");
                }

                if (parametrosBase.dependencia == null || parametrosBase.dependencia.Value.Equals(0))
                {
                    throw new ApplicationException("Parâmetro dependencia obrigatório");
                }

                if (!Util.ValidarApiKey(Request, _configuracaoBaseAPI))
                {
                    return(StatusCode((int)HttpStatusCode.Unauthorized));
                }

                ConfiguracaoAcessoCUC acessoCUC = _configuracaoCUC.Value.AcessoCUC;
                if (acessoCUC == null)
                {
                    throw new Exception("Configuração de acesso não parametrizado no arquivo de configuração - AcessoCUC");
                }
                string token = _ServiceAutenticacao.GetToken(acessoCUC);

                ParametroIntegracaoPessoa parm = _clientPessoa.CarregarParametrosCUCPessoa(parametrosBase.empresa.Value, parametrosBase.dependencia.Value, _configuracaoCUC.Value.AcessoCUC.userServico, _configuracaoCUC.Value.SiglaSistema, token);

                RetornoIntegracaoPessoa retClient = _clientPessoa.ExcluirPessoa(parm, codPessoa);

                if (retClient.Excecao != null)
                {
                    throw new ApplicationException($"Retorno serviço CUC - {retClient.Excecao.Mensagem}");
                }

                retorno = _adaptador.AdaptarMsgRetorno(listaErros, identificador);

                _log.TraceMethodEnd();
                return(StatusCode((int)HttpStatusCode.OK, retorno));
            }
            catch (LogErrorException LogEx)
            {
                listaErros.Add(LogEx.Message);
                retorno = _adaptador.AdaptarMsgRetorno(listaErros, identificador);
                return(StatusCode((int)HttpStatusCode.InternalServerError, retorno));
            }
            catch (ApplicationException appEx)
            {
                listaErros.Add(appEx.Message);
                retorno = _adaptador.AdaptarMsgRetorno(listaErros, identificador);

                _log.Error(appEx);
                _log.TraceMethodEnd();
                return(StatusCode((int)HttpStatusCode.BadRequest, retorno));
            }
            catch (Exception ex)
            {
                listaErros.Add(ex.Message);
                retorno = _adaptador.AdaptarMsgRetorno(listaErros, identificador);

                _log.Error(ex);
                _log.TraceMethodEnd();
                return(StatusCode((int)HttpStatusCode.InternalServerError, retorno));
            }
        }