public void PrepararImpressão(ReportClass relatório, IEnumerable<Entidades.Pessoa.Impressão.PessoaImpressão> pessoas, Região região)
        {
            DataSetPessoa ds = new DataSetPessoa();
            DataTable tabela = ds.Tables["Pessoa"];
            DataTable info = ds.Tables["Informações"];
            DataRow itemInfo = info.NewRow();
            
            if (região != null)
            {
                Representante representante = região.ObterRepresentante();
                itemInfo["Representante"] = (representante == null ? "" : representante.PrimeiroNome);
                itemInfo["Região"] = (região.Nome);
            }
            else
            {
                itemInfo["Representante"] = "";
                itemInfo["Região"] = "Todas";
            }

            info.Rows.Add(itemInfo);

            foreach (Entidades.Pessoa.Impressão.PessoaImpressão p in pessoas)
            {
                DataRow linha = tabela.NewRow();
                MapearItem(p, linha);
                tabela.Rows.Add(linha);
            }

            relatório.SetDataSource(ds);
        }
        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);
            }
        }
        public ActionResult postBalanco([FromRoute] string codPessoa, [FromBody] MsgBalanco msg)
        {
            List <string> listaErros = new List <string>();
            MsgRetorno    retorno;

            try
            {
                _log.TraceMethodStart();

                if (msg == null)
                {
                    throw new ApplicationException("Mensagem inválida");
                }
                if (msg.header == null)
                {
                    throw new ApplicationException("Mensagem inválida - chave header não informada");
                }
                if (msg.body == null)
                {
                    throw new ApplicationException("Mensagem inválida - chave body não informada");
                }

                if (string.IsNullOrWhiteSpace(msg.header.identificadorEnvio))
                {
                    msg.header.identificadorEnvio = Util.GerarIdentificadorUnico();
                }

                _log.Information($"Iniciando o processamento da mensagem [post] com o identificador {msg.header.identificadorEnvio}");
                _log.SetIdentificador(msg.header.identificadorEnvio);

                listaErros = Util.ValidarModel(ModelState);
                if (listaErros.Any())
                {
                    retorno = _adaptador.AdaptarMsgRetorno(msg, listaErros);

                    _log.TraceMethodEnd();
                    return(StatusCode((int)HttpStatusCode.BadRequest, retorno));
                }

                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(msg.header.empresa.Value, msg.header.dependencia.Value, acessoCUC.userServico, _configuracaoCUC.Value.SiglaSistema, token);
                DataSetPessoa             dataSetPessoa = _clientPessoa.SelecionarCabecalho(parm, codPessoa);

                List <DataSetPessoaRegistroBalanco> registros = new List <DataSetPessoaRegistroBalanco>();
                registros.Add(_adaptador.AdaptarMsgRegistroBalancoToDataSetPessoaRegistroBalanco(msg.body.RegistroBalanco, ConstantesInegracao.StatusLinhaCUC.Insercao, listaErros));
                dataSetPessoa.RegistroBalanco = registros.ToArray();

                var retPessoa = _clientPessoa.AtualizarPessoa(parm, dataSetPessoa);

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

                retorno = _adaptador.AdaptarMsgRetorno(msg, listaErros);

                _log.TraceMethodEnd();

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

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

                _log.Error(ex);
                _log.TraceMethodEnd();
                return(StatusCode((int)HttpStatusCode.InternalServerError, retorno));
            }
        }
        public ActionResult deleteBalanco([FromRoute] string codPessoa, [FromRoute] int seqBalanco, [FromQuery] ParametroBalancoQuery 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 (!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, acessoCUC.userServico, _configuracaoCUC.Value.SiglaSistema, token);
                DataSetPessoa             dataSetPessoa = _clientPessoa.SelecionarCabecalho(parm, codPessoa);

                dataSetPessoa.RegistroBalanco = _adaptador.AdaptarMsgRegistroBalancoToDataSetPessoaRegistroBalancoExclusao(codPessoa, seqBalanco, listaErros, parametrosBase);

                var retPessoa = _clientPessoa.AtualizarPessoa(parm, dataSetPessoa);
                if (retPessoa.Excecao != null)
                {
                    throw new ApplicationException($"Retorno serviço CUC - {retPessoa.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);
                return(StatusCode((int)HttpStatusCode.BadRequest, retorno));
            }
            catch (Exception ex)
            {
                listaErros.Add(ex.Message);
                retorno = _adaptador.AdaptarMsgRetorno(listaErros, identificador);
                return(StatusCode((int)HttpStatusCode.InternalServerError, retorno));
            }
        }
예제 #5
0
        public ActionResult getPessoa([FromRoute] string codPessoa, [FromQuery] ParametroBaseQuery parametrosBase)
        {
            List <string> listaErros = new List <string>();
            MsgRetornoGet retorno;
            string        identificador        = string.Empty;
            MsgRegistroPessoaCompletoBody body = new MsgRegistroPessoaCompletoBody();

            try
            {
                _log.TraceMethodStart();

                identificador = Util.GerarIdentificadorUnico();
                _log.Information($"Iniciando processamento [get] 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);

                DataSetPessoa dataSetPessoa = _clientPessoa.SelecionarPessoa(parm, codPessoa);

                body.RegistroPessoa = _adaptador.AdaptaDataSetPessoaToMsgPessoaCompleto(dataSetPessoa, listaErros);

                retorno = _adaptador.AdaptarMsgRetornoGet(body, listaErros, identificador);

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

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

                _log.Error(ex);
                _log.TraceMethodEnd();
                return(StatusCode((int)HttpStatusCode.InternalServerError, retorno));
            }
        }
        public RetornoIntegracaoPessoa AtualizarPessoa(ParametroIntegracaoPessoa param, DataSetPessoa dataSetPessoa)
        {
            _log.TraceMethodStart();

            string        stringXML = string.Empty;
            XmlSerializer x         = new XmlSerializer(typeof(DataSetPessoa));

            using (StringWriter textWriter = new StringWriter())
            {
                x.Serialize(textWriter, dataSetPessoa);
                stringXML = textWriter.ToString();
            }

            _log.TraceMethodEnd();

            _log.Trace("XML Gerado: " + stringXML);

            return(AtualizarPessoa(param, stringXML));
        }