private void RegistrarPagamento(string forma, string externalReference, string orderId, long paymentId, string status, string paymentStatusDetail, decimal valor, string tipoPagamento) { ExternalReference extRef = new ExternalReference(externalReference); Pagamento pagamento = new Pagamento { //AlunoId = extRef.AlunoId, //CursoId = extRef.CursoId, Forma = forma, Data = DateTime.Now, OrderId = orderId, PaymentId = paymentId, Status = status, Valor = valor, StatusDetail = paymentStatusDetail, TipoPagamento = tipoPagamento, Cupom = extRef.CodigoCupom }; _context.Pagamentos.Add(pagamento); Cupom cupom = _context.Cupons.Where(c => c.Codigo == extRef.CodigoCupom).SingleOrDefault(); if (cupom != null) { cupom.Utilizado = true; } _context.SaveChanges(); if (status == "approved") { RegistrarMatricula(extRef.AlunoId, extRef.CursoId, pagamento.Id); } }
public IActionResult Index(int alunoId, int?cursoId) { SalaAulaVM salaAulaVM = new SalaAulaVM(); Matricula matricula = _dbContext.Matriculas.Where(m => m.CursoId == cursoId && m.AlunoId == alunoId).SingleOrDefault(); Curso curso = _dbContext.Cursos.Find(cursoId); IEnumerable <Modulo> modulos = _dbContext.Modulos .OrderBy(m => m.NumeroModulo) .Where(m => m.CursoId == cursoId).ToList(); salaAulaVM.Curso = curso; foreach (var modulo in salaAulaVM.Curso.Modulos) { IEnumerable <Aula> aulas = _dbContext.Aulas.OrderBy(a => a.NumeroAula).Where(a => a.ModuloId == modulo.Id).ToList(); } StatusAulas statusAulas = _dbContext.StatusAulas .Include(sa => sa.Matricula.Aluno) .Include(sa => sa.AulasAssistidas) .Where(sa => sa.MatriculaId == matricula.Id) .SingleOrDefault(); if (statusAulas == null) { int aulaAssistindoId = salaAulaVM.Curso.Modulos[0].Aulas[0].Id; int aulaPodeMarcarAssistidaId = aulaAssistindoId; int ultimoModuloLiberado = salaAulaVM.Curso.Modulos[0].Id; StatusAulas sa = new StatusAulas { MatriculaId = matricula.Id, AulaAssistindoId = aulaAssistindoId, AulaPodeMarcarAssistidaId = aulaPodeMarcarAssistidaId, UltimoModuloLiberadoId = ultimoModuloLiberado, AulasAssistidas = new List <AulaAssistida>() }; _dbContext.StatusAulas.Add(sa); _dbContext.SaveChanges(); salaAulaVM.StatusAulas = sa; } else { salaAulaVM.StatusAulas = statusAulas; } foreach (var modulo in salaAulaVM.Curso.Modulos) { Modulo m = _dbContext.Modulos.Find(salaAulaVM.StatusAulas.UltimoModuloLiberadoId); if (m.NumeroModulo >= modulo.NumeroModulo) { modulo.Liberado = true; if (salaAulaVM.StatusAulas.AvaliacaoLiberadaId == modulo.AvaliacaoId) { modulo.AvaliacaoLiberada = true; } foreach (var aula in modulo.Aulas) { AulaAssistida aulaAssistida = salaAulaVM.StatusAulas.AulasAssistidas.FirstOrDefault(aa => aa.AulaId == aula.Id); if (aulaAssistida != null) { aula.Assistida = true; } if (aula.Id == salaAulaVM.StatusAulas.AulaAssistindoId) { aula.Assistindo = true; AnotacaoAula anotacaoAula = _dbContext.AnotacoesAulas .Where(aa => aa.AulaId == aula.Id && aa.AlunoId == salaAulaVM.StatusAulas.Matricula.AlunoId) .FirstOrDefault(); if (anotacaoAula != null) { aula.Anotacoes = anotacaoAula.Anotacao; } } if (aula.Id == salaAulaVM.StatusAulas.AulaPodeMarcarAssistidaId) { aula.PodeMarcarAssistida = true; } } } } return(View(salaAulaVM)); }