public bool Valido() { AddNotifications(new ValidationContract() .IsTrue(DiaVencimento > 0, "Dia Vencimento", "Informe o dia de vencimento") .IsTrue(ValorContrato > 0, "Valor Contrato", "Informe o valor do contrato") .IsTrue(Ano > 0, "Ano", "Informe o Ano") .IsTrue(MesInicioPagamento > 0, "Mes Inicio Pagamento", "Informe o Mês início de pagamento") .IsTrue(TotalParcelas > 0, "TotalParcelas", "Informe o total de parcelas") .IsTrue((Id <= 0), "Id", "Id informado não é valido") .IsNotNullOrEmpty(DataIncialPagamento.ToShortDateString(), "Data Inicio Pagamento", "Informe a data inicial de pagamento") .IsNotNullOrEmpty(ChaveRegistro.ToString(), "Chave Registros", "Informe a chave de registros") .IsNotNullOrEmpty(IdMatriculaGuid, "Cod-Matricula", "Chave matricula não localizado") ); return(Valid); }
public async Task <IComandoResultado> ManipuladorAsync(MatricularComando comando) { //Obter itens matricula var turmas = (await _repositorio.ObterMatriculaItensTempPor(new Guid(comando.IdMatriculaGuid))).ToList(); if (turmas.Count() <= 0) { AddNotification("Turmas", $"Informe pelo menos uma turma"); } comando.ValorContrato = turmas.Sum(x => x.ValorCalculado); //Criar Entidade var matricula = new Matricula(comando.Id, comando.IdAluno, comando.TotalParcelas, comando.DataContrato, comando.PercentualDesconto, comando.ValorDesconto, comando.ValorMatricula, comando.ValorContrato, comando.DiaVencimento, comando.DataIncialPagamento, ChaveRegistro.Gerar(), comando.Ano, comando.MesInicioPagamento); //check Matricula Existe if (await _repositorio.CheckMatriculaExisteAsync(matricula)) { AddNotification("Matricula", $"Aluno informado ja possui matricula ativa para o ano de {comando.Ano} "); } //Validar Comando comando.Valido(); AddNotifications(comando.Notifications); if (Invalid) { return(new ComandoResultado(false, "Por favor, corrija os campos abaixo", Notifications)); } //Persistir Dados var id = await _repositorio.MatricularAsync(matricula); //Persistir Item foreach (var item in turmas) { await _repositorio.RegistrarItemMatricula(new MatriculaItem( id, item.IdTurma, item.Valor, item.Desconto, item.ValorDesconto, item.ValorCalculado )); //Enturmar Aluno await _repositorioAluno.SalvarTurmaAsync(new TurmaAluno(item.IdTurma, matricula.IdAluno)); } //Deletar Tem item matricula await _repositorio.DeletarItemMatriculaTemp(comando.IdMatriculaGuid, 0); //Persistir Boletos await _repositorio.GerarMensalidade(new Mensalidade(0, matricula.IdAluno, id, matricula.TotalParcelas, Convert.ToDecimal(matricula.ValorContrato), matricula.ValorDesconto, matricula.DataIncialPagamento, 2)); //Persistir Boleto Matricula await _repositorio.GerarMensalidade(new Mensalidade(0, matricula.IdAluno, id, 1, Convert.ToDecimal(matricula.ValorMaricula), matricula.ValorDesconto, matricula.DataIncialPagamento, 1)); // Retornar o resultado para tela return(new ComandoResultado(true, "Matricula realizada com sucesso", new { Id = id, Nome = "Matriculado", Status = true })); }