private FiltroAtividadeAvaliativaDto MapearDtoParaFiltroValidacao(AtividadeAvaliativaDto atividadeAvaliativaDto) { return(new FiltroAtividadeAvaliativaDto() { DataAvaliacao = atividadeAvaliativaDto.DataAvaliacao, DisciplinaContidaRegenciaId = atividadeAvaliativaDto.DisciplinaContidaRegenciaId, DreId = atividadeAvaliativaDto.DreId, Nome = atividadeAvaliativaDto.Nome, TipoAvaliacaoId = (int)atividadeAvaliativaDto.TipoAvaliacaoId, TurmaId = atividadeAvaliativaDto.TurmaId, UeID = atividadeAvaliativaDto.UeId, DisciplinasId = atividadeAvaliativaDto.DisciplinasId }); }
private AtividadeAvaliativa MapearDtoParaEntidade(AtividadeAvaliativaDto dto, long id, string usuarioRf, bool ehRegencia) { AtividadeAvaliativa atividadeAvaliativa = new AtividadeAvaliativa(); if (id > 0L) { atividadeAvaliativa = repositorioAtividadeAvaliativa.ObterPorId(id); } if (string.IsNullOrEmpty(atividadeAvaliativa.ProfessorRf)) { atividadeAvaliativa.ProfessorRf = usuarioRf; } atividadeAvaliativa.UeId = dto.UeId; atividadeAvaliativa.DreId = dto.DreId; atividadeAvaliativa.TurmaId = dto.TurmaId; atividadeAvaliativa.Categoria = dto.CategoriaId; atividadeAvaliativa.TipoAvaliacaoId = dto.TipoAvaliacaoId; atividadeAvaliativa.NomeAvaliacao = dto.Nome; atividadeAvaliativa.DescricaoAvaliacao = dto.Descricao; atividadeAvaliativa.DataAvaliacao = dto.DataAvaliacao.Local(); atividadeAvaliativa.EhRegencia = ehRegencia; return(atividadeAvaliativa); }
public async Task <IEnumerable <RetornoCopiarAtividadeAvaliativaDto> > Alterar(AtividadeAvaliativaDto dto, long id) { var mensagens = new List <RetornoCopiarAtividadeAvaliativaDto>(); var usuario = await servicoUsuario.ObterUsuarioLogado(); var disciplina = ObterDisciplina(dto.DisciplinasId[0]); var atividadeAvaliativa = MapearDtoParaEntidade(dto, id, usuario.CodigoRf, disciplina.Regencia); var atividadeDisciplinas = await repositorioAtividadeAvaliativaDisciplina.ListarPorIdAtividade(id); atividadeAvaliativa.PodeSerAlterada(usuario); await VerificaSeProfessorPodePersistirTurma(usuario.CodigoRf, atividadeAvaliativa.TurmaId, dto.DisciplinasId[0], atividadeAvaliativa.DataAvaliacao, usuario); unitOfWork.IniciarTransacao(); if (disciplina.Regencia) { var regencias = await repositorioAtividadeAvaliativaRegencia.Listar(atividadeAvaliativa.Id); foreach (var regencia in regencias) { repositorioAtividadeAvaliativaRegencia.Remover(regencia); } foreach (string idRegencia in dto.DisciplinaContidaRegenciaId) { var ativRegencia = new AtividadeAvaliativaRegencia { AtividadeAvaliativaId = atividadeAvaliativa.Id, DisciplinaContidaRegenciaId = idRegencia }; await repositorioAtividadeAvaliativaRegencia.SalvarAsync(ativRegencia); } } foreach (var atividadeDisciplina in atividadeDisciplinas) { atividadeDisciplina.Excluir(); var existeDisciplina = dto.DisciplinasId.Any(a => a == atividadeDisciplina.DisciplinaId); if (existeDisciplina) { atividadeDisciplina.Excluido = false; } await repositorioAtividadeAvaliativaDisciplina.SalvarAsync(atividadeDisciplina); } foreach (var disciplinaId in dto.DisciplinasId) { var existeDisciplina = atividadeDisciplinas.Any(a => a.DisciplinaId == disciplinaId); if (!existeDisciplina) { var novaDisciplina = new AtividadeAvaliativaDisciplina { AtividadeAvaliativaId = atividadeAvaliativa.Id, DisciplinaId = disciplinaId }; await repositorioAtividadeAvaliativaDisciplina.SalvarAsync(novaDisciplina); } } await repositorioAtividadeAvaliativa.SalvarAsync(atividadeAvaliativa); unitOfWork.PersistirTransacao(); mensagens.Add(new RetornoCopiarAtividadeAvaliativaDto("Atividade Avaliativa alterada com sucesso", true)); mensagens.AddRange(await CopiarAtividadeAvaliativa(dto, atividadeAvaliativa.ProfessorRf)); return(mensagens); }
private async Task <IEnumerable <RetornoCopiarAtividadeAvaliativaDto> > ValidarCopias(AtividadeAvaliativaDto atividadeAvaliativaDto, string codigoRf) { var mensagens = new List <RetornoCopiarAtividadeAvaliativaDto>(); var turmasAtribuidasAoProfessor = await ObterTurmasAtribuidasAoProfessor(codigoRf, long.Parse(atividadeAvaliativaDto.DisciplinasId[0])); if (atividadeAvaliativaDto.TurmasParaCopiar != null && atividadeAvaliativaDto.TurmasParaCopiar.Any()) { var idsTurmasSelecionadas = atividadeAvaliativaDto.TurmasParaCopiar.Select(x => x.TurmaId).ToList(); idsTurmasSelecionadas.Add(atividadeAvaliativaDto.TurmaId); mensagens.AddRange(ValidaTurmasProfessor(turmasAtribuidasAoProfessor, idsTurmasSelecionadas)); if (mensagens.Any()) { return(mensagens); } mensagens.AddRange(ValidaTurmasAno(turmasAtribuidasAoProfessor, idsTurmasSelecionadas)); } return(mensagens); }
private async Task <IEnumerable <RetornoCopiarAtividadeAvaliativaDto> > Salvar(AtividadeAvaliativa atividadeAvaliativa, AtividadeAvaliativaDto dto, bool ehCopia = false) { var mensagens = new List <RetornoCopiarAtividadeAvaliativaDto>(); foreach (var id in dto.DisciplinasId) { await VerificaSeProfessorPodePersistirTurma(atividadeAvaliativa.ProfessorRf, atividadeAvaliativa.TurmaId, id, atividadeAvaliativa.DataAvaliacao.Date); } unitOfWork.IniciarTransacao(); await repositorioAtividadeAvaliativa.SalvarAsync(atividadeAvaliativa); if (atividadeAvaliativa.EhRegencia) { if (dto.DisciplinaContidaRegenciaId.Length == 0) { throw new NegocioException("É necessário informar as disciplinas da regência"); } foreach (string id in dto.DisciplinaContidaRegenciaId) { var ativRegencia = new AtividadeAvaliativaRegencia { AtividadeAvaliativaId = atividadeAvaliativa.Id, DisciplinaContidaRegenciaId = id }; await repositorioAtividadeAvaliativaRegencia.SalvarAsync(ativRegencia); } } foreach (var id in dto.DisciplinasId) { var ativDisciplina = new AtividadeAvaliativaDisciplina { AtividadeAvaliativaId = atividadeAvaliativa.Id, DisciplinaId = id }; await repositorioAtividadeAvaliativaDisciplina.SalvarAsync(ativDisciplina); } unitOfWork.PersistirTransacao(); if (!ehCopia) { mensagens.Add(new RetornoCopiarAtividadeAvaliativaDto("Atividade Avaliativa criada com sucesso", true)); } return(mensagens); }
private AtividadeAvaliativa MapearDtoParaEntidade(AtividadeAvaliativa atividadeAvaliativa, AtividadeAvaliativaDto dto, string usuarioRf) { atividadeAvaliativa.ProfessorRf = usuarioRf; atividadeAvaliativa.UeId = dto.UeId; atividadeAvaliativa.DreId = dto.DreId; atividadeAvaliativa.TurmaId = dto.TurmaId; atividadeAvaliativa.Categoria = dto.CategoriaId; atividadeAvaliativa.TipoAvaliacaoId = dto.TipoAvaliacaoId; atividadeAvaliativa.NomeAvaliacao = dto.Nome; atividadeAvaliativa.DescricaoAvaliacao = dto.Descricao; atividadeAvaliativa.DataAvaliacao = dto.DataAvaliacao.Local(); atividadeAvaliativa.EhRegencia = dto.EhRegencia; return(atividadeAvaliativa); }
private async Task <IEnumerable <RetornoCopiarAtividadeAvaliativaDto> > CopiarAtividadeAvaliativa(AtividadeAvaliativaDto atividadeAvaliativaDto, string usuarioRf) { var mensagens = new List <RetornoCopiarAtividadeAvaliativaDto>(); if (atividadeAvaliativaDto.TurmasParaCopiar != null && atividadeAvaliativaDto.TurmasParaCopiar.Any()) { mensagens.AddRange(await ValidarCopias(atividadeAvaliativaDto, usuarioRf)); if (mensagens.Any()) { return(mensagens); } foreach (var turma in atividadeAvaliativaDto.TurmasParaCopiar) { atividadeAvaliativaDto.TurmaId = turma.TurmaId; atividadeAvaliativaDto.DataAvaliacao = turma.DataAtividadeAvaliativa; try { await Validar(MapearDtoParaFiltroValidacao(atividadeAvaliativaDto)); var atividadeParaCopiar = MapearDtoParaEntidade(new AtividadeAvaliativa(), atividadeAvaliativaDto, usuarioRf); await Salvar(atividadeParaCopiar, atividadeAvaliativaDto, true); mensagens.Add(new RetornoCopiarAtividadeAvaliativaDto($"Atividade copiada para a turma: '{turma.TurmaId}' na data '{turma.DataAtividadeAvaliativa.ToString("dd/MM/yyyy")}'.", true)); } catch (NegocioException nex) { mensagens.Add(new RetornoCopiarAtividadeAvaliativaDto($"Erro ao copiar para a turma: '{turma.TurmaId}' na data '{turma.DataAtividadeAvaliativa.ToString("dd/MM/yyyy")}'. {nex.Message}")); } } } return(mensagens); }
public async Task <IEnumerable <RetornoCopiarAtividadeAvaliativaDto> > Inserir(AtividadeAvaliativaDto dto) { var mensagens = new List <RetornoCopiarAtividadeAvaliativaDto>(); var usuario = await servicoUsuario.ObterUsuarioLogado(); var disciplina = ObterDisciplina(dto.DisciplinasId[0]); var atividadeAvaliativa = MapearDtoParaEntidade(dto, 0L, usuario.CodigoRf, disciplina.Regencia); mensagens.AddRange(await Salvar(atividadeAvaliativa, dto)); mensagens.AddRange(await CopiarAtividadeAvaliativa(dto, atividadeAvaliativa.ProfessorRf)); return(mensagens); }
public async Task <IActionResult> PostAsync([FromBody] AtividadeAvaliativaDto atividadeAvaliativaDto) { return(Ok(await comandoAtividadeAvaliativa.Inserir(atividadeAvaliativaDto))); }
public async Task <IActionResult> Alterar([FromBody] AtividadeAvaliativaDto atividadeAvaliativaDto, long id) { return(Ok(await comandoAtividadeAvaliativa.Alterar(atividadeAvaliativaDto, id))); }
private async Task <IEnumerable <RetornoCopiarAtividadeAvaliativaDto> > Salvar(AtividadeAvaliativa atividadeAvaliativa, AtividadeAvaliativaDto dto, bool ehCopia = false) { var mensagens = new List <RetornoCopiarAtividadeAvaliativaDto>(); var usuario = await servicoUsuario.ObterUsuarioLogado(); foreach (var id in dto.DisciplinasId) { await VerificaSeProfessorPodePersistirTurma(atividadeAvaliativa.ProfessorRf, atividadeAvaliativa.TurmaId, id, atividadeAvaliativa.DataAvaliacao.Date, usuario); } unitOfWork.IniciarTransacao(); await repositorioAtividadeAvaliativa.SalvarAsync(atividadeAvaliativa); if (atividadeAvaliativa.EhRegencia) { if (dto.DisciplinaContidaRegenciaId.Length == 0) { throw new NegocioException("É necessário informar as disciplinas da regência"); } foreach (string id in dto.DisciplinaContidaRegenciaId) { var ativRegencia = new AtividadeAvaliativaRegencia { AtividadeAvaliativaId = atividadeAvaliativa.Id, DisciplinaContidaRegenciaId = id }; await repositorioAtividadeAvaliativaRegencia.SalvarAsync(ativRegencia); } } foreach (var id in dto.DisciplinasId) { var ativDisciplina = new AtividadeAvaliativaDisciplina { AtividadeAvaliativaId = atividadeAvaliativa.Id, DisciplinaId = id }; await repositorioAtividadeAvaliativaDisciplina.SalvarAsync(ativDisciplina); } unitOfWork.PersistirTransacao(); // Verifica Pendencia de avaliação para o professor await mediator.Send(new PublicaFilaExcluirPendenciaAusenciaAvaliacaoCommand(dto.TurmaId, dto.DisciplinasId, usuario, dto.DataAvaliacao)); if (!ehCopia) { mensagens.Add(new RetornoCopiarAtividadeAvaliativaDto("Atividade Avaliativa criada com sucesso", true)); } return(mensagens); }