public List <Comunicados> Crear(ComunicadoDto comunicado) { if (string.IsNullOrEmpty(comunicado.Descripcion)) { return(null); } var comunicados = new List <Comunicados>(); if (!comunicado.IdUsuario.Any()) { comunicado.IdUsuario = _context.EstudianteCurso.Where(x => x.IdCurso == comunicado.IdCurso) .Select(u => u.IdUsuario).ToList(); } foreach (var idUsuarios in comunicado.IdUsuario) { var comunicadoBase = new Comunicados { Descripcion = comunicado.Descripcion }; comunicadoBase.IdUsuario = idUsuarios; comunicados.Add(comunicadoBase); } _context.Comunicados.AddRange(comunicados); _context.SaveChanges(); return(comunicados); }
private async Task ValidarAbrangenciaDre(ComunicadoDto filtroDto) { var abrangenciaDres = await consultasAbrangencia.ObterDres(null); var dre = abrangenciaDres.FirstOrDefault(x => x.Codigo.Equals(filtroDto.CodigoDre)); if (dre == null) { throw new NegocioException($"Usuário não possui permissão para visualizar comunicados da DRE com codigo {filtroDto.CodigoDre}"); } }
private async Task ValidarAbrangenciaTurma(ComunicadoDto filtroDto) { foreach (var turma in filtroDto.Turmas) { var abrangenciaTurmas = await consultasAbrangencia.ObterAbrangenciaTurma(turma.CodigoTurma); if (abrangenciaTurmas == null) { throw new NegocioException($"Usuário não possui permissão para visualizar comunicados da Turma com codigo {turma.CodigoTurma}"); } } }
private async Task <bool> ValidarAbrangenciaListagem(FiltroComunicadoDto filtroDto) { try { ComunicadoDto comunicado = MapearFiltroDtoValidacao(filtroDto); await ValidarAbrangenciaUsuario(comunicado); return(true); } catch (NegocioException) { return(false); } }
private async Task ValidarAbrangenciaUE(ComunicadoDto filtroDto) { var abrangenciaUes = await consultasAbrangencia.ObterUes(filtroDto.CodigoDre, null); var ue = abrangenciaUes.FirstOrDefault(x => x.Codigo.Equals(filtroDto.CodigoUe)); if (ue == null) { throw new NegocioException($"Usuário não possui permissão para visualizar comunicados da UE com codigo {filtroDto.CodigoUe}"); } if (filtroDto.Turmas != null && filtroDto.Turmas.Any()) { await ValidarAbrangenciaTurma(filtroDto); } }
private async Task ValidarAbrangenciaUsuario(ComunicadoDto filtroDto) { //var usuarioLogado = await servicoUsuario.ObterUsuarioLogado(); //if ((filtroDto.CodigoDre?.Equals(TODAS) ?? true) && !usuarioLogado.EhPerfilSME()) // throw new NegocioException("Apenas usuários SME podem visualizar comunicados de todas as DREs"); //if ((filtroDto.CodigoUe?.Equals(TODAS) ?? true) && !(usuarioLogado.EhPerfilDRE() || usuarioLogado.EhPerfilSME())) // throw new NegocioException("Apenas usuários SME e DRE podem visualizar comunicados de todas as Escolas"); //if (usuarioLogado.EhPerfilDRE() && (!filtroDto.CodigoDre?.Equals(TODAS) ?? false)) // await ValidarAbrangenciaDre(filtroDto); //if (usuarioLogado.EhPerfilUE() && (!filtroDto.CodigoUe?.Equals(TodTODASas) ?? false)) // await ValidarAbrangenciaUE(filtroDto); }
public async Task <ActionResult <List <Comunicados> > > CrearComunicado(ComunicadoDto comunicado) { return(comunicadoRepository.Crear(comunicado)); }