public MontarGrupoDTO ObterDadosParaMontagemDeGrupos(Usuario usuarioLogado, int?idCase = null, int?idGrupo = null) { if (!idCase.HasValue && !idGrupo.HasValue) { throw new Exception("Solicitação invélida."); } var response = new MontarGrupoDTO(); CaseDeNegocio caseDeNegocio = null; if (idGrupo.HasValue) { Grupo grupo = ObterPorId(idGrupo.Value); if (grupo == null) { throw new Exception("Grupo inexistente."); } caseDeNegocio = grupo.CaseDeNegocio; response.IdGrupo = idGrupo.Value; response.NomeGrupo = grupo.Nome; response.GritoDeGuerra = grupo.GritoDeGuerra; response.PermiteAlterarMembros = GrupoJaTeveLicaoEntregue(idGrupo.Value); response.Membros = ListarMembros(idGrupo.Value); } else { caseDeNegocio = _caseDeNegocioRepository.GetById(idCase.Value); if (caseDeNegocio == null) { throw new Exception("Case de negócio não encontrado."); } var alunoDoCase = _alunoRepository.Obter(usuarioLogado.Id, caseDeNegocio.Id); if (alunoDoCase != null) { response.Membros.Add(new MembroDoGrupoDTO(usuarioLogado, alunoDoCase)); } response.PermiteAlterarMembros = true; } if (!caseDeNegocio.PermiteMontarGrupos) { throw new Exception("Case de negócio não permite grupos."); } response.IdCase = caseDeNegocio.Id; response.MinimoPermitidoDeAlunos = caseDeNegocio.MinimoDeAlunosPorGrupo; response.MaximoPermitidoDeAlunos = caseDeNegocio.MaximoDeAlunosPorGrupo; return(response); }
public AlunoDoCase ObterAlunoInscritoNoCase(int idUsuario, int IdCaseDeNegocio) { return(_alunoDoCaseRepository.Obter(idUsuario, IdCaseDeNegocio)); }