public async Task <IActionResult> Calendario(int id)
        {
            var perfil     = User.Claims.FirstOrDefault(x => x.Type == "Papel").Value;
            int usuarioId  = Convert.ToInt32(User.Claims.FirstOrDefault(x => x.Type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/sid").Value);
            var turma      = (await _repositorio.ObterTodosPorAsync(id, null, null, null, perfil.Equals("Professor") ? usuarioId : 0)).FirstOrDefault();
            var salas      = new SelectList(await _repositorioSala.ObterTodosAsync(), "Id", "DesSala");
            var diasSemana = new SelectList(await _repositorioAgenda.ObterTodosDiaSemanaAsync(), "Id", "DiaSemana");

            ViewBag.Turma = turma;
            ViewBag.Dias  = diasSemana;
            ViewBag.Salas = salas;
            return(View());
        }
Esempio n. 2
0
        public async Task <IComandoResultado> ManipuladorAsync(CriarTurmaComando comando)
        {
            //Criar Entidades
            var tipoTurma   = new TurmaTipo(comando.TipoTurmaId);
            var funcionario = new Funcionario(comando.IdProfessor);
            var turma       = new Turma(comando.Id, comando.CodTurma, comando.DesTurma, funcionario, tipoTurma, true);

            //verificar turma existente
            if (await _repositorio.CheckTurmaAsync(turma))
            {
                AddNotification("Turma", "A turma informada já está em uso");
            }

            //Validar Comando
            comando.Valido();
            AddNotifications(comando.Notifications);
            AddNotifications(funcionario.Notifications);

            if (Invalid)
            {
                return(new ComandoResultado(
                           false,
                           "Por favor, corrija os campos abaixo",
                           Notifications));
            }
            //Persistir os dados

            var turmaId = await _repositorio.SalvarAsync(turma);

            //Persistir os dados de agendamento

            var listaDia = await _repositorioAgenda.ObterTodosDiaSemanaAsync();

            foreach (var item in comando.Agendamentos)
            {
                var agenda = new Agenda(0, item.Hora, new Turma(turmaId),
                                        new DiaSemana(listaDia.FirstOrDefault(x => x.DiaSemana == item.Dia).Id), new Sala(item.Sala));
                await _repositorioAgenda.SalvarAsync(agenda);
            }
            // Retornar o resultado para tela
            return(new ComandoResultado(true, "Turma cadastrada com sucesso", new
            {
                Id = 0,
                Nome = "",
                Status = true
            }));
        }