public void AtualizarPorAssinatura(string idTabela) { try { var assinatura = assinaturaDal.GetAssinaturaDb(idTabela); ListInvoicesResponse faturasDaAssinatura = faturaApi.ListaFaturasPorAssinatura(assinatura.Id_Api); if (faturasDaAssinatura.Data.Count > 0) { var auxNex = faturasDaAssinatura.Paging.Next; do { foreach (var fatura in faturasDaAssinatura.Data) { FaturaDb faturaDb = faturaDTO.ConverteApiEmDB(fatura); faturaDal.RegistraFatura(faturaDb); } if (auxNex != null) { var nextPage = Convert.ToInt32(auxNex.Substring(auxNex.IndexOf("?") + 5, 1)); faturasDaAssinatura = faturaApi.ListaFaturasPorAssinatura(assinatura.Id_Api, nextPage); } } while (auxNex != null); } } catch (Exception ex) { throw new Exception(ex.Message); } }
public FaturaDb ConverteApiEmDB(GetInvoiceResponse fatura) { try { var cliente = clienteDal.GetClienteByIdApi(fatura.Customer.Id); var faturaDb = new FaturaDb { CodCli = Convert.ToInt32(cliente.Codigo), IdApi = fatura.Id, Url = fatura.Url, Valor = fatura.Amount / 100, FormaPagamento = fatura.PaymentMethod, QuantParcelas = fatura.Subscription.Installments, Status = fatura.Status, DtCobranca = fatura.DueAt, DtVencimento = fatura.Cycle.BillingAt, DtCriacao = fatura.CreatedAt, IdAssinatura = Convert.ToInt32(fatura.Subscription.Metadata["id"]), TotalDescontos = fatura.TotalDiscount / 100, TotalAcrescimos = fatura.TotalIncrement / 100 }; if (fatura.CanceledAt != null) { faturaDb.DtCancelamento = fatura.CanceledAt; } return(faturaDb); } catch (Exception ex) { throw new Exception(ex.Message); } }
public void CancelarFatura(string idTabela) { try { FaturaDb faturaDb = faturaDal.GetFaturaDb(idTabela); faturaApi.CancelaAssinaturaApi(faturaDb); } catch (Exception ex) { throw new Exception(ex.Message); } }
public void RegistraFatura(FaturaDb faturaDb) { var faturaExistente = this.GetFaturaDbByIdApi(faturaDb.IdApi); if (faturaExistente == null) { this.CriaNoDb(faturaDb); } else { faturaDb.Id = faturaExistente.Id; this.AtualizaNoDb(faturaDb); } }
public void CancelaAssinaturaApi(FaturaDb faturaDb) { try { // Secret key fornecida pela Mundipagg string basicAuthUserName = SistemaSingleton.Instancia.TokenApi; // Senha em branco. Passando apenas a secret key string basicAuthPassword = ""; var client = new MundiAPIClient(basicAuthUserName, basicAuthPassword); var response = client.Invoices.CancelInvoice(faturaDb.IdApi); faturaDal.FaturaCanceladaAtualizaStatus(response, faturaDb.Id); } catch (Exception ex) { throw new Exception(ex.Message); } }
public FaturaDb GetFaturaDbByIdApi(string idApi) { const string metodo = "GetFaturaDbByIdApi"; try { FaturaDb fatura = null; var sql = new StringBuilder(); sql.Append(" SELECT id, url, valor, forma_pagamento, quant_parcelas, status, dt_cobranca, dt_vencimento, "); sql.Append(" dt_criacao, dt_cancelamento, id_assinatura, cod_cli, total_descontos, total_acrescimos, id_api "); sql.Append(" FROM rec_fatura "); sql.Append("where id_api = @id_api"); using (var conn = ConexaoBd.GetConnection()) { using (var cmd = new SqlCommand(sql.ToString(), conn)) { cmd.Parameters.Clear(); cmd.Parameters.AddWithValue("@id_api", idApi); using (var dr = cmd.ExecuteReader()) { while (dr.Read()) { fatura = new FaturaDb { Id = Convert.ToInt32(dr["id"]), Url = dr["url"].ToString(), Valor = Convert.ToDouble(dr["valor"]), FormaPagamento = dr["forma_pagamento"].ToString(), QuantParcelas = Convert.ToInt32(dr["quant_parcelas"]), Status = dr["status"].ToString(), DtCobranca = Convert.ToDateTime(dr["dt_cobranca"]), DtVencimento = Convert.ToDateTime(dr["dt_vencimento"]), DtCriacao = Convert.ToDateTime(dr["dt_criacao"]), IdAssinatura = Convert.ToInt32(dr["id_assinatura"]), CodCli = Convert.ToInt32(dr["cod_cli"]), TotalDescontos = Convert.ToDouble(dr["total_descontos"]), TotalAcrescimos = Convert.ToDouble(dr["total_acrescimos"]), IdApi = dr["id_api"].ToString() }; if (fatura.DtCancelamento != null) { fatura.DtCancelamento = Convert.ToDateTime(dr["dt_cancelamento"]); } } } } } return(fatura); } catch (SqlException sqlException) { string strMensagem = ""; strMensagem = LogDatabaseErrorUtil.CreateErrorDatabaseMessage(sqlException); LogDatabaseErrorUtil.LogFileWrite(strMensagem, metodo); sqlException.Data["MensagemCustomizada"] = LogDatabaseErrorUtil.ValidateDataBaseErrorNumber(sqlException.Number); sqlException.Data["Metodo"] = metodo; sqlException.Data["Classe"] = Camada; sqlException.Data["Hora"] = DateTime.Now; throw; } catch (Exception ex) { string strMensagem = ""; strMensagem = LogDatabaseErrorUtil.CreateErrorMessage(ex); LogDatabaseErrorUtil.LogFileWrite(strMensagem, metodo); ex.Data["MensagemCustomizada"] = "Ocorreu um erro ao tentar executar a operação."; ex.Data["Metodo"] = metodo; ex.Data["Classe"] = Camada; ex.Data["Hora"] = DateTime.Now; throw; } }
private void AtualizaNoDb(FaturaDb fatura) { const string metodo = "AtualizaFaturnaNoDb"; try { var sql = new StringBuilder(); sql.Append("UPDATE rec_fatura SET url=@url, valor=@valor, forma_pagamento=@forma_pagamento, quant_parcelas=@quant_parcelas, "); sql.Append(" status=@status, dt_cobranca=@dt_cobranca, dt_vencimento=@dt_vencimento, dt_criacao=@dt_criacao, dt_cancelamento=@dt_cancelamento, "); sql.Append(" id_assinatura=@id_assinatura, cod_cli=@cod_cli, total_descontos=@total_descontos, total_acrescimos=@total_acrescimos, id_api=@id_api "); sql.Append(" WHERE id=@id "); using (var conn = ConexaoBd.GetConnection()) { using (var cmd = new SqlCommand(sql.ToString(), conn)) { cmd.Parameters.Clear(); cmd.Parameters.AddWithValue("@url", fatura.Url); cmd.Parameters.AddWithValue("@valor", fatura.Valor); cmd.Parameters.AddWithValue("@forma_pagamento", fatura.FormaPagamento); cmd.Parameters.AddWithValue("@quant_parcelas", fatura.QuantParcelas); cmd.Parameters.AddWithValue("@status", fatura.Status); cmd.Parameters.AddWithValue("@dt_cobranca", fatura.DtCobranca); cmd.Parameters.AddWithValue("@dt_vencimento", fatura.DtVencimento); cmd.Parameters.AddWithValue("@dt_criacao", fatura.DtCriacao); if (fatura.DtCancelamento != null) { cmd.Parameters.AddWithValue("@dt_cancelamento", fatura.DtCancelamento); } else { cmd.Parameters.AddWithValue("@dt_cancelamento", DBNull.Value); } cmd.Parameters.AddWithValue("@id_assinatura", fatura.IdAssinatura); cmd.Parameters.AddWithValue("@cod_cli", fatura.CodCli); cmd.Parameters.AddWithValue("@total_descontos", fatura.TotalDescontos); cmd.Parameters.AddWithValue("@total_acrescimos", fatura.TotalAcrescimos); cmd.Parameters.AddWithValue("@id_api", fatura.IdApi); cmd.Parameters.AddWithValue("@id", fatura.Id); cmd.ExecuteNonQuery(); } } } catch (SqlException sqlException) { string strMensagem = ""; strMensagem = LogDatabaseErrorUtil.CreateErrorDatabaseMessage(sqlException); LogDatabaseErrorUtil.LogFileWrite(strMensagem, metodo); sqlException.Data["MensagemCustomizada"] = LogDatabaseErrorUtil.ValidateDataBaseErrorNumber(sqlException.Number); sqlException.Data["Metodo"] = metodo; sqlException.Data["Classe"] = Camada; sqlException.Data["Hora"] = DateTime.Now; throw; } catch (Exception ex) { string strMensagem = ""; strMensagem = LogDatabaseErrorUtil.CreateErrorMessage(ex); LogDatabaseErrorUtil.LogFileWrite(strMensagem, metodo); ex.Data["MensagemCustomizada"] = "Ocorreu um erro ao tentar executar a operação."; ex.Data["Metodo"] = metodo; ex.Data["Classe"] = Camada; ex.Data["Hora"] = DateTime.Now; throw; } }