public string GravaAssinaturaApi(CreateSubscriptionRequest assinaturaApi) { // Secret key fornecida pela Mundipagg var basicAuthUserName = SistemaSingleton.Instancia.TokenApi; // Senha em branco. Passando apenas a secret key var basicAuthPassword = ""; var client = new MundiAPIClient(basicAuthUserName, basicAuthPassword); var response = client.Subscriptions.CreateSubscription(assinaturaApi); assinaturaDal.AssinaturaGravadaNaApiAtualizaBanco(assinaturaApi.Metadata["id"], response.Id); assinaturaDal.GravaIdApiListaItens(response.Items, assinaturaApi.Metadata["id"]); var clienteDal = new ClienteDal(); var codCliente = clienteDal.GetClienteByAssinatura(assinaturaApi.Metadata["id"]); clienteDal.ClienteGravado(codCliente, response.Customer.Id); var cartaoDal = new CartaoDal(); var codCard = cartaoDal.getCardByIdAssinatura(assinaturaApi.Metadata["id"]); cartaoDal.CartaoGravadoNaApiAtualizaBanco(codCard, response.Card.Id); return(response.Id); }
/// <summary> /// Busca as assinatura pelo id d tabela /// </summary> /// <param name="_id">id da tabela rec_assinatura</param> /// <returns>Model assinaturaDb com os itens populados</returns> public AssinaturaDb GetAssinaturaDb(string _id) { const string metodo = "GetAssinaturaDb"; var clienteDal = new ClienteDal(); var meioPagamentoDal = new CartaoDal(); var assinatura = new AssinaturaDb(); try { var sql = new StringBuilder(); sql.Append(" select a.id, a.dt_inicio, a.intervalo, a.intervalo_quantidade, "); sql.Append(" a.dia_cobranca, a.quant_parcelas, a.texto_fatura, a.valor_minimo, a.status, "); sql.Append(" a.id_cliente, a.id_cartao, a.id_api "); sql.Append(" from rec_assinatura a "); sql.Append(" where a.id = @id "); using (var conn = ConexaoBd.GetConnection()) { using (var cmd = new SqlCommand(sql.ToString(), conn)) { cmd.Parameters.Clear(); cmd.Parameters.AddWithValue("@id", _id); using (var dr = cmd.ExecuteReader()) { while (dr.Read()) { assinatura.Id = Convert.ToInt32(dr["id"]); assinatura.Dt_Inicio = dr.GetDateTime(dr.GetOrdinal("dt_inicio")); assinatura.Intervalo = dr["intervalo"].ToString(); assinatura.Intervalo_Quantidade = Convert.ToInt32(dr["intervalo_quantidade"]); assinatura.Dia_Cobranca = Convert.ToInt32(dr["dia_cobranca"]); assinatura.Quant_Parcelas = Convert.ToInt32(dr["quant_parcelas"]); assinatura.Texto_Fatura = dr["texto_fatura"].ToString(); assinatura.Valor_Minimo = Convert.ToDouble(dr["valor_minimo"]); assinatura.Status = dr["status"].ToString(); assinatura.Cliente = clienteDal.GetClienteDb(dr["id_cliente"].ToString()); assinatura.MeioPagamento = meioPagamentoDal.GetCartaoDb(dr["id_cartao"].ToString()); assinatura.Id_Api = dr["id_api"].ToString(); // popular o model com os itens da assinatura . Pode colocar aqui ou em um método privado assinatura.ItensAssinatura = GetItensAssinatura(assinatura.Id); } } } } return(assinatura);; } 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; } }