private CompensacaoAusencia MapearEntidade(CompensacaoAusenciaDto compensacaoDto, CompensacaoAusencia compensacao) { compensacao.DisciplinaId = compensacaoDto.DisciplinaId; compensacao.Bimestre = compensacaoDto.Bimestre; compensacao.Nome = compensacaoDto.Atividade; compensacao.Descricao = compensacaoDto.Descricao; return(compensacao); }
public async Task <string> Copiar(CompensacaoAusenciaCopiaDto compensacaoCopia) { var compensacaoOrigem = repositorioCompensacaoAusencia.ObterPorId(compensacaoCopia.CompensacaoOrigemId); if (compensacaoOrigem == null) { throw new NegocioException("Compensação de origem não localizada com o identificador informado."); } var turmasCopiadas = new StringBuilder(""); var turmasComErro = new StringBuilder(""); foreach (var turmaId in compensacaoCopia.TurmasIds) { var turma = await repositorioTurma.ObterPorCodigo(turmaId); CompensacaoAusenciaDto compensacaoDto = new CompensacaoAusenciaDto() { TurmaId = turmaId, Bimestre = compensacaoCopia.Bimestre, DisciplinaId = compensacaoOrigem.DisciplinaId, Atividade = compensacaoOrigem.Nome, Descricao = compensacaoOrigem.Descricao, DisciplinasRegenciaIds = new List <string>(), Alunos = new List <CompensacaoAusenciaAlunoDto>() }; var disciplinasRegencia = await repositorioCompensacaoAusenciaDisciplinaRegencia.ObterPorCompensacao(compensacaoOrigem.Id); if (disciplinasRegencia != null && disciplinasRegencia.Any()) { compensacaoDto.DisciplinasRegenciaIds = disciplinasRegencia.Select(s => s.DisciplinaId); } try { await Salvar(0, compensacaoDto); turmasCopiadas.Append(turmasCopiadas.ToString().Length > 0 ? ", " + turma.Nome : turma.Nome); } catch (Exception e) { turmasComErro.AppendLine($"A cópia para a turma {turma.Nome} não foi realizada: {e.Message}\n"); } } var respTurmasCopiadas = turmasCopiadas.ToString(); var textoTurmas = respTurmasCopiadas.Contains(",") ? "as turmas" : "a turma"; var respostaSucesso = respTurmasCopiadas.Length > 0 ? $"A cópia para {textoTurmas} {respTurmasCopiadas} foi realizada com sucesso" : ""; var respTurmasComErro = turmasComErro.ToString(); if (respTurmasComErro.Length > 0) { throw new NegocioException($"{respTurmasComErro} {respostaSucesso}"); } return(respostaSucesso); }
private CompensacaoAusencia MapearEntidade(long id, CompensacaoAusenciaDto compensacaoDto) { CompensacaoAusencia compensacaoBanco = new CompensacaoAusencia(); if (id > 0) { compensacaoBanco = repositorioCompensacaoAusencia.ObterPorId(id); } return(MapearEntidade(compensacaoDto, compensacaoBanco)); }
public async Task Salvar(long id, CompensacaoAusenciaDto compensacaoDto) { // Busca dados da turma var turma = BuscaTurma(compensacaoDto.TurmaId); // Consiste periodo var periodo = BuscaPeriodo(turma.AnoLetivo, turma.ModalidadeCodigo, compensacaoDto.Bimestre, turma.Semestre); var usuario = await servicoUsuario.ObterUsuarioLogado(); ValidaProfessorPodePersistirTurma(compensacaoDto.TurmaId, usuario.CodigoRf, periodo.PeriodoFim); // Valida mesma compensação no ano var compensacaoExistente = await repositorioCompensacaoAusencia.ObterPorAnoTurmaENome(turma.AnoLetivo, turma.Id, compensacaoDto.Atividade, id); if (compensacaoExistente != null) { throw new NegocioException($"Já existe essa compensação cadastrada para turma no ano letivo."); } // Carrega dasdos da disciplina no EOL ConsisteDisciplina(long.Parse(compensacaoDto.DisciplinaId), compensacaoDto.DisciplinasRegenciaIds); // Persiste os dados var compensacao = MapearEntidade(id, compensacaoDto); compensacao.TurmaId = turma.Id; compensacao.AnoLetivo = turma.AnoLetivo; List <string> codigosAlunosCompensacao = new List <string>(); unitOfWork.IniciarTransacao(); try { await repositorioCompensacaoAusencia.SalvarAsync(compensacao); await GravarDisciplinasRegencia(id > 0, compensacao.Id, compensacaoDto.DisciplinasRegenciaIds); codigosAlunosCompensacao = await GravarCompensacaoAlunos(id > 0, compensacao.Id, compensacaoDto.TurmaId, compensacaoDto.DisciplinaId, compensacaoDto.Alunos, periodo); unitOfWork.PersistirTransacao(); } catch (Exception) { unitOfWork.Rollback(); throw; } if (codigosAlunosCompensacao.Any()) { Cliente.Executar <IServicoCalculoFrequencia>(c => c.CalcularFrequenciaPorTurma(codigosAlunosCompensacao, periodo.PeriodoFim, compensacaoDto.TurmaId, compensacaoDto.DisciplinaId)); } Cliente.Executar <IServicoNotificacaoFrequencia>(c => c.NotificarCompensacaoAusencia(compensacao.Id)); }
private CompensacaoAusencia MapearEntidade(long id, CompensacaoAusenciaDto compensacaoDto) { CompensacaoAusencia compensacao = new CompensacaoAusencia(); if (id > 0) { compensacao = repositorioCompensacaoAusencia.ObterPorId(id); } compensacao.DisciplinaId = compensacaoDto.DisciplinaId; compensacao.Bimestre = compensacaoDto.Bimestre; compensacao.Nome = compensacaoDto.Atividade; compensacao.Descricao = compensacaoDto.Descricao; return(compensacao); }
public async Task <IActionResult> Alterar(long id, [FromBody] CompensacaoAusenciaDto compensacao, [FromServices] IComandosCompensacaoAusencia comandos) { await comandos.Alterar(id, compensacao); return(Ok()); }
public async Task <IActionResult> Inserir([FromBody] CompensacaoAusenciaDto compensacao, [FromServices] IComandosCompensacaoAusencia comandos) { await comandos.Inserir(compensacao); return(Ok()); }
public async Task Inserir(CompensacaoAusenciaDto compensacao) => await servicoCompensacaoAusencia.Salvar(0, compensacao);
public async Task Alterar(long id, CompensacaoAusenciaDto compensacao) => await servicoCompensacaoAusencia.Salvar(id, compensacao);