public HttpResponseMessage RetornoMensalidade(HttpRequestMessage request, TokenNotificationGerenciaNet retorno) { return(CreateHttpResponse(request, () => { HttpResponseMessage response = null; var status = new int(); var data = _pagamentoService.ReturnStatusFatura(retorno.Notification); switch (data.Status.StatusAtual) { case "new": status = (int)StatusMensalidade.Gerado; // Assinatura criada, porém nenhuma cobrança foi paga. O termo "new" equivale a "nova". break; case "active": status = (int)StatusMensalidade.Recebido; // Assinatura ativa. Todas as cobranças estão sendo geradas. O termo "active" equivale a "ativa". break; case "paid": status = (int)StatusMensalidade.Recebido; break; case "waiting": status = (int)StatusMensalidade.AguardandoPagamento; break; case "canceled": status = (int)StatusMensalidade.Cancelado; // Assinatura foi cancelada pelo vendedor ou pelo pagador. O termo "canceled" equivale a "cancelada". break; case "expired": status = (int)StatusMensalidade.AssinaturaExpirada; // Assinatura expirada. Todas as cobranças configuradas para a assinatura já foram emitidas. // O termo "expired" equivale a "expirada". break; case "unpaid": status = (int)StatusMensalidade.NaoPago; break; case "settled": status = (int)StatusMensalidade.Recebido; break; case "refunded": status = (int)StatusMensalidade.Devolvido; break; case "contested": status = (int)StatusMensalidade.Contestado; break; } var mensalidade = _mensalidadeRep.GetSingle(data.CustomId); if (status == (int)StatusMensalidade.Recebido) { mensalidade.DtRecebimento = DateTime.Now; mensalidade.Status = (StatusMensalidade)status; mensalidade.Token = retorno.Notification; } else if (mensalidade.Status != StatusMensalidade.Recebido) { mensalidade.Status = (StatusMensalidade)status; mensalidade.Token = retorno.Notification; } _mensalidadeRep.Edit(mensalidade); _unitOfWork.Commit(); response = request.CreateResponse(HttpStatusCode.OK, new { }); return response; })); }
public HttpResponseMessage RetornoFatura(HttpRequestMessage request, TokenNotificationGerenciaNet retorno) { return(CreateHttpResponse(request, () => { HttpResponseMessage response = null; var status = new int(); var data = _pagamentoService.ReturnStatusFatura(retorno.Notification); switch (data.Status.StatusAtual) { case "waiting": status = (int)StatusFatura.AguardandoPagamento; break; case "unpaid": status = (int)StatusFatura.NaoPago; break; case "paid": status = (int)StatusFatura.Recebido; break; case "settled": status = (int)StatusFatura.Recebido; break; case "refunded": status = (int)StatusFatura.Devolvido; break; case "contested": status = (int)StatusFatura.Contestado; break; case "canceled": status = (int)StatusFatura.Cancelado; break; } var fatura = _faturaRep.GetSingle(data.CustomId); if (status > 0) { if (status != (int)StatusFatura.Cancelado && status != (int)StatusFatura.Recebido) { fatura.Status = (StatusFatura)status; fatura.Token = retorno.Notification; _faturaRep.Edit(fatura); _unitOfWork.Commit(); } else if (status == (int)StatusFatura.Recebido) { fatura.Status = (StatusFatura)status; fatura.Token = retorno.Notification; fatura.DtRecebimento = DateTime.Now; _faturaRep.Edit(fatura); _unitOfWork.Commit(); } } //var faturaVM = Mapper.Map<Fatura, FaturaViewModel>(fatura); response = request.CreateResponse(HttpStatusCode.OK, new { }); return response; })); }