private void Processamentos(DocumentoCliente documentoCliente_) { //Obtem pasta de destino do arquivo de configuracao string _pastaArquivoAssinatura = ConfigurationManager.AppSettings["Bradesco.PastaArquivoAssinatura"]; string _arquivoAssinatura = ConfigurationManager.AppSettings["Bradesco.ArquivoAssinatura"]; switch (documentoCliente_.DocCliTipoId) { case 1: //Valida CCB processamentoCCB(documentoCliente_, _pastaArquivoAssinatura, _arquivoAssinatura); break; case 2: //Valida CET processamentoCET(documentoCliente_); break; case 3: //Valida Seguro processamentoSeguro(documentoCliente_); break; case 4: //Valida Anexo CCB processamentoSeguro(documentoCliente_); break; } }
public DocumentoCliente Insert(DocumentoCliente DocumentoCliente) { Int64 recordId = new DapperSqlHelper().InsertWithReturnId(DocumentoCliente); DocumentoCliente.ClienteId = recordId; return(DocumentoCliente); }
// <summary> // Verifica quais arquivos foram salvos para exibi-los na situação correspondente na página que informa as informações da proposta consultada // </summary> // <param name = "listaDocumentosCliente" ></ param > public void CarregarArquivoSalvoPorSituacaoDocumento(DocumentoCliente documentoCliente) { //verifica se o documento corresponde a situacao existente na lista IEnumerable <DocumentoClienteSituacao> documentoRetorno = documentoCliente.DocumentoClienteTipo.ListaSituacaoDocumentoCliente.Where(x => x.DocCliSituId == documentoCliente.DocCliSituId && x.DocCliTipoId == documentoCliente.DocCliTipoId); if (documentoRetorno.Count() > 0) { //carrega o nome do arquivo salvo no campo auxiliar documentoRetorno.ToList()[0].NomeArquivoSalvoAux = documentoCliente.DocClienteNomeArquivoOriginal; } }
private void processamentoCCB(DocumentoCliente documentoCliente_, string pastaArquivoAssinatura_, string arquivoAssinatura_) { UtilFileBradesco utilBradesco = new Util.UtilFileBradesco(); string fileArquivoUpload = WorkingFolder + "\\" + documentoCliente_.DocClienteNomeArquivoSalvo; string fileArquivoAssinatura = WorkingFolder + "\\" + pastaArquivoAssinatura_ + "\\" + arquivoAssinatura_; string[] Arquivos = { fileArquivoUpload, fileArquivoAssinatura }; try { string validaCabecalho = ConfigurationManager.AppSettings["Bradesco.ValidaCabecalho_CCB"].ToString(); string diretorioBalde = ConfigurationManager.AppSettings["Bradesco.DiretorioBalde"]; if (!Directory.Exists(WorkingFolder + "\\" + diretorioBalde)) { Directory.CreateDirectory(WorkingFolder + "\\" + diretorioBalde); } string fileAux = WorkingFolder + "\\" + diretorioBalde + "\\" + documentoCliente_.DocClienteNomeArquivoSalvo + "_aux"; string fileAuxAssinatura = WorkingFolder + "\\" + diretorioBalde + "\\" + documentoCliente_.DocClienteNomeArquivoSalvo; if (VerificarCabecalhoContratoCCB(fileArquivoUpload, validaCabecalho)) //Contrato CCB { //Le os dados do Pdf e cria o novo com o modelo utilBradesco.EscreverPdf(WorkingFolder, Arquivos[0], Arquivos[1]); File.Copy(Arquivos[0], fileAux); Arquivos[0] = fileAux; Arquivos[1] = fileAuxAssinatura; //Junta os dois arquivos em um só UtilFileBradesco.MergePDFs(Arquivos, fileArquivoUpload); } } finally { foreach (string file in Arquivos) { if (File.Exists(file)) { File.Delete(file); } } } }
public bool Delete(DocumentoCliente DocumentoCliente) { bool delete = new DapperSqlHelper().Delete <DocumentoCliente>(DocumentoCliente); return(delete); }
public DocumentoCliente Update(DocumentoCliente DocumentoCliente) { bool update = new DapperSqlHelper().Update <DocumentoCliente>(DocumentoCliente); return(DocumentoCliente); }
public async Task <IHttpActionResult> EnviarArquivo(int usuarioId, long clienteId, int docCliTipoId, bool reenvio) { // Check if the request contains multipart/form-data. if (!Request.Content.IsMimeMultipartContent("form-data")) { return(BadRequest("Unsupported media type")); } DocumentoCliente _documentoCliente = new DocumentoCliente(); try { string directory = new UploadFileBL().RecuperarCaminhoPastaDocumentosByClienteId(clienteId); WorkingFolder += "\\" + directory; if (!Directory.Exists(WorkingFolder)) { Directory.CreateDirectory(WorkingFolder); } var streamProvider = new MultipartFormDataStreamProvider(WorkingFolder); await Request.Content.ReadAsMultipartAsync(streamProvider); _documentoCliente = new DocumentoCliente() { UsuarioId = usuarioId, ClienteId = clienteId, DocCliTipoId = docCliTipoId, DocClienteCaminhoCompletoArquivoSalvo = streamProvider.FileData.Select(entry => entry.LocalFileName).First(), DocClienteNomeArquivoSalvo = System.IO.Path.GetFileName(streamProvider.FileData.Select(entry => entry.LocalFileName).First()), DocClienteNomeArquivoOriginal = System.IO.Path.GetFileName(streamProvider.FileData.Select(entry => entry.Headers.ContentDisposition.FileName).First().Replace("\"", "")), DocClienteTipoArquivo = streamProvider.FileData.Select(entry => entry.Headers.ContentType.MediaType).First(), DocClienteDataUpload = DateTime.Now }; #region 1 - Verifica tipo/ versão pdf if (UtilFile.GetMIMEType(_documentoCliente.DocClienteNomeArquivoOriginal).ToLower() != "application/pdf") { throw new Exception("Erro - Documento deve ser do tipo PDF"); } #endregion Cliente cliente = new Cliente() { ClienteId = _documentoCliente.ClienteId }; UploadFileBL uploadFileBL = null; switch (cliente.ClienteNomeEnum) { case Cliente.EnumCliente.Bradesco: uploadFileBL = new UploadFileBradescoBL(); ((UploadFileBradescoBL)uploadFileBL).Reenvio = reenvio; ((UploadFileBradescoBL)uploadFileBL).WorkingFolder = WorkingFolder; _documentoCliente = uploadFileBL.EnviarDocumentoCliente(_documentoCliente); break; default: uploadFileBL = new UploadFileBL(); _documentoCliente = uploadFileBL.EnviarDocumentoCliente(_documentoCliente); break; } return(Ok((new Retorno() { Dados = _documentoCliente, Mensagem = "Arquivo(s) incluído(s) com sucesso.", TipoMensagem = EnumTipoMensagem.Sucesso }))); } catch (BusinessException ex) { if (File.Exists(WorkingFolder + "\\" + _documentoCliente.DocClienteNomeArquivoSalvo)) { File.Delete(WorkingFolder + "\\" + _documentoCliente.DocClienteNomeArquivoSalvo); } return(Ok(ex.GetRetorno())); } catch (Exception ex) { if (File.Exists(WorkingFolder + "\\" + _documentoCliente.DocClienteNomeArquivoSalvo)) { File.Delete(WorkingFolder + "\\" + _documentoCliente.DocClienteNomeArquivoSalvo); } throw new CustomException.CustomException(ex.Message, ex); } }
public virtual DocumentoCliente RetornarArquivo(DocumentoCliente documentoCliente_) { return(new DocumentoClienteDal().GetDocumentoCliente(documentoCliente_.DocClienteId)); }
public virtual DocumentoCliente EnviarDocumentoCliente(DocumentoCliente documentoCliente_) { throw new System.NotImplementedException("Método EnviarDocumentoCliente da classe UploadFileBL não implementado."); }
private void validarConteudoPDF(DocumentoCliente documentoCliente_) { #region Valida conteudo dos PDFs Boolean blnArquivoPDFInvalido = false; StringBuilder sbPDFInvalido = new StringBuilder("Conteudo inválido para o(s) arquivo(s):" + "\n"); string valida = string.Empty; switch (documentoCliente_.DocCliTipoId) { case 1: //Valida CCB valida = ConfigurationManager.AppSettings["Bradesco.Valida_CCB"].ToString().ToUpper().Trim(); if (!VerificarContrato(documentoCliente_.DocClienteNomeArquivoSalvo, valida)) { sbPDFInvalido.Append("CCB: " + documentoCliente_.DocClienteNomeArquivoOriginal + "\n"); blnArquivoPDFInvalido = true; } break; case 2: //Valida CET valida = ConfigurationManager.AppSettings["Bradesco.Valida_CET"].ToString().ToUpper().Trim(); if (!VerificarContrato(documentoCliente_.DocClienteNomeArquivoSalvo, valida)) { sbPDFInvalido.Append("CCT: " + documentoCliente_.DocClienteNomeArquivoOriginal + "\n"); blnArquivoPDFInvalido = true; } break; case 3: //Valida Seguro valida = ConfigurationManager.AppSettings["Bradesco.Valida_Seguro"].ToString().ToUpper().Trim(); if (!VerificarContrato(documentoCliente_.DocClienteNomeArquivoSalvo, valida)) { sbPDFInvalido.Append("Seguro: " + documentoCliente_.DocClienteNomeArquivoOriginal + "\n"); blnArquivoPDFInvalido = true; } break; case 4: //Valida Anexo CCB valida = ConfigurationManager.AppSettings["Bradesco.Valida_AnexoCBB"].ToString().ToUpper().Trim(); if (!VerificarContrato(documentoCliente_.DocClienteNomeArquivoSalvo, valida)) { sbPDFInvalido.Append("Anexo CBB: " + documentoCliente_.DocClienteNomeArquivoOriginal + "\n"); blnArquivoPDFInvalido = true; } break; } if (blnArquivoPDFInvalido) { throw new BusinessException(EnumTipoMensagem.Alerta, sbPDFInvalido.ToString()); } #endregion }
private void processamentoSeguro(DocumentoCliente documentoCliente_) { }
private void processamentoCET(DocumentoCliente documentoCliente_) { }
public override List <DocumentoCliente> EnviarDocumentosCliente(List <DocumentoCliente> documentosCliente_) { UtilFileBradesco utilFileBradesco = new UtilFileBradesco(); //Validações ** //Validações para o tipo CCB Padrão DocumentoCliente DocumentoClienteCCB = documentosCliente_.FindAll(p => p.DocCliTipoId == 1).First(); #region 1 - Verifica tipo/ versão pdf if (UtilFile.GetMIMEType(documentosCliente_.FindAll(p => p.DocCliTipoId == 1).First().DocClienteNomeArquivoOriginal).ToLower() != "application/pdf") { throw new Exception("Erro - Documento deve ser do tipo PDF"); } #endregion #region 2 - Verifica número proposta no PDF DocumentoClienteDados _documentoClienteDados = null; try { _documentoClienteDados = utilFileBradesco.LerPdf(WorkingFolder + "\\" + DocumentoClienteCCB.DocClienteNomeArquivoSalvo); Int64 _valor; if (!Int64.TryParse(_documentoClienteDados.DocCliDadosValor, out _valor)) { throw new Exception("Valor do campo contrato deve ser numérico."); } _documentoClienteDados.ClienteId = DocumentoClienteCCB.ClienteId; //1 --> Tipo CCB _documentoClienteDados.TipoInfoCliId = (new ClienteTipoInformacaoClienteDal().GetAllByIdCliente(_documentoClienteDados.ClienteId).First()).TipoInfoCliId; } catch (Exception ex) { throw new Exception("Erro ao recuperar o número do contrato. Erro [" + ex.Message + "]"); } #endregion #region 3 - Consultar numero proposta por usuário na base //Não pode inserir um numero de proposta na base sem antes verificar se o numero da proposta já existe na base e se a proposta foi cadastrada pelo mesmo usuário que está enviando o arquivo. //Recupera todos os documentos de clientes que possuem o mesmo número de proposta List <DocumentoCliente> _documentosClienteCadastrado = new EnviarArquivoDal().ConsultarNumeroPropostaPorUsuario(_documentoClienteDados.DocCliDadosValor.Trim()).ToList(); if (_documentosClienteCadastrado.FindAll(p => p.UsuarioId != DocumentoClienteCCB.UsuarioId).Count > 0) { throw new BusinessException(0, EnumTipoMensagem.Alerta, "Proposta enviada por outro usuário."); } int docCliSituId; //Consulta as situações List <DocumentoClienteSituacao> _documentosClienteSituacao = new DocumentoClienteSituacaoDal().GetAllDocumentoClienteSituacaoByDocCliTipoId(DocumentoClienteCCB.DocCliTipoId).ToList(); if (_documentosClienteSituacao.Count == 0) { throw new Exception("Situação não cadastrada para este Tipo de Documento."); } docCliSituId = _documentosClienteSituacao.Min(p => p.DocCliSituId); DocumentoClienteCCB.DocCliSituId = docCliSituId; #endregion #region 5 - Consulta arquivos já existentes para o numero de proposta //Caso já exista um tipo e situação do arquivo na base igual ao que o usuário está tentando realizar o upload, irá perguntar ao usuário se ele deseja sobreescrever. if (!Reenvio && _documentosClienteCadastrado.FindAll(p => p.DocCliSituId == DocumentoClienteCCB.DocCliSituId).Count > 0) { // throw new BusinessException(EnumTipoMensagem.Pergunta, "Proposta já cadastrada para este tipo de arquivo e situação."); } #endregion //Fim validações //Validações para todos tipos for (int contador = 0; contador < documentosCliente_.Count; contador++) { #region 1 - Verifica tipo/ versão pdf if (UtilFile.GetMIMEType(documentosCliente_[contador].DocClienteNomeArquivoOriginal).ToLower() != "application/pdf") { throw new Exception("Erro - Documento deve ser do tipo PDF"); } #endregion #region Validar Conteúdo PDF validarConteudoPDF(documentosCliente_[contador]); #endregion #region Processamentos Processamentos(documentosCliente_[contador]); #endregion //Consulta as situações _documentosClienteSituacao = new DocumentoClienteSituacaoDal().GetAllDocumentoClienteSituacaoByDocCliTipoId(documentosCliente_[contador].DocCliTipoId).ToList(); if (_documentosClienteSituacao.Count == 0) { throw new Exception("Situação não cadastrada para este Tipo de Documento."); } docCliSituId = _documentosClienteSituacao.Min(p => p.DocCliSituId); } EnviarArquivoDal daoEnviarArquivo = new EnviarArquivoDal(); try { daoEnviarArquivo.BeginTransaction(); //Carga dos arquivos for (int contador = 0; contador < documentosCliente_.Count; contador++) { //Consulta as situações _documentosClienteSituacao = new DocumentoClienteSituacaoDal().GetAllDocumentoClienteSituacaoByDocCliTipoId(documentosCliente_[contador].DocCliTipoId).ToList(); if (_documentosClienteSituacao.Count == 0) { throw new Exception("Situação não cadastrada para este Tipo de Documento."); } docCliSituId = _documentosClienteSituacao.Min(p => p.DocCliSituId); documentosCliente_[contador].DocCliSituId = docCliSituId; #region 4 - Insere o numero proposta em base //Se o numero da proposta está OK e ainda não existe na base, irá realizar o insert na base, caso já exista irá utilizar o ID do numero de proposta que já existe na base List <DocumentoClienteDados> _documentosClienteDados = new DocumentoClienteDadosDal().GetAllByDocCliDadosValor(_documentoClienteDados.DocCliDadosValor).ToList(); if (_documentosClienteDados.Count == 0) { _documentoClienteDados = daoEnviarArquivo.InserirDocumentoClienteDados(_documentoClienteDados); } else { _documentoClienteDados = _documentosClienteDados.First(); } #endregion #region 6 - Salva arquivo em servidor e faz insert na base List <DocumentoCliente> _documentosClientes = new EnviarArquivoDal().ConsultarDocumentoClientePorDocCliDadosValorDocCliTipoId( _documentoClienteDados.DocCliDadosValor, documentosCliente_[contador].DocCliTipoId).ToList(); if (_documentosClientes.Count > 0) { //Apaga o arquivo if (System.IO.File.Exists(WorkingFolder + "\\" + _documentosClientes.First().DocClienteNomeArquivoSalvo)) { System.IO.File.Delete(WorkingFolder + "\\" + _documentosClientes.First().DocClienteNomeArquivoSalvo); } //Atualiza documentosCliente_[contador].DocClienteId = _documentosClientes.First().DocClienteId; new DocumentoClienteDal().Update(documentosCliente_[contador]); } else //Insere { documentosCliente_[contador] = (DocumentoCliente) new DocumentoClienteDal().Insert(documentosCliente_[contador]); } #endregion #region 7 - Faz insert na base p / relacionar id do documento e do num.de proposta if (_documentosClientes.Count == 0) { DocumentoClienteDadosDoc _documentoClienteDadosDoc = new DocumentoClienteDadosDoc(); _documentoClienteDadosDoc.DocClienteId = documentosCliente_[contador].DocClienteId; _documentoClienteDadosDoc.DocCliDadosId = _documentoClienteDados.DocCliDadosId; _documentoClienteDadosDoc = new DocumentoClienteDadosDocDal().Insert(_documentoClienteDadosDoc); } #endregion } new DocumentoClienteDadosDocDal().Delete(new DocumentoClienteDadosDoc() { DocCliDadosDocId = 85 }); new DocumentoClienteDadosDal().Delete(new DocumentoClienteDados() { DocCliDadosId = 38 }); new DocumentoClienteDal().Delete(new DocumentoCliente() { DocClienteId = 88 }); new DocumentoClienteDadosDocDal().CommitTransaction(); } catch (Exception) { daoEnviarArquivo.RollbackTransaction(); throw; } return(documentosCliente_); }