Exemple #1
0
        public async Task <ActionResult <UsuarioDisciplina> > PostUsuarioDisciplina(UsuarioDisciplinaCreateAndUpdateViewModel usuarioDisciplinaViewModel)
        {
            try
            {
                UsuarioDisciplina usuarioDisciplina = _mapper.Map <UsuarioDisciplina>(usuarioDisciplinaViewModel);
                _context.UsuarioDisciplina.Add(usuarioDisciplina);

                await _context.SaveChangesAsync();

                usuarioDisciplina.UsuarioCpfNavigation = await _context.Usuario.Where(usr => usr.Cpf == usuarioDisciplina.UsuarioCpf).FirstOrDefaultAsync();


                return(CreatedAtAction("GetUsuarioDisciplina", new { email = usuarioDisciplina.UsuarioCpfNavigation.Email }, usuarioDisciplina));
            }
            catch (DbUpdateException)
            {
                if (UsuarioDisciplinaExists(usuarioDisciplinaViewModel.UsuarioCpf, usuarioDisciplinaViewModel.DisciplinaIdDisciplina))
                {
                    return(Conflict(new { msg = "O usuário informado já existe na disciplina" }));
                }
                else if (!CpfOrDisciplinaNotExists(usuarioDisciplinaViewModel.UsuarioCpf, usuarioDisciplinaViewModel.DisciplinaIdDisciplina))
                {
                    return(BadRequest(new { msg = "O usuário ou disciplina informada não existe" }));
                }
                else
                {
                    throw;
                }
            }
        }
Exemple #2
0
        public async Task<IActionResult> PutDisciplina(int id, DisciplinaViewModel model)
        {
            var existingParent = _context.Disciplina
                                .Where(p => p.IdDisciplina == id)
                                .Include(p => p.UsuarioDisciplina)
                                .SingleOrDefault();

            if (existingParent != null)
            {
                DisciplinaViewModel parentValues = new DisciplinaViewModel
                {
                    Descricao = model.Descricao,
                    Materia = model.Materia,
                    Turno = model.Turno,
                    IdDisciplina = model.IdDisciplina
                };
                // Update parent
                _context.Entry(existingParent).CurrentValues.SetValues(parentValues);
                
                foreach (var existingChild in existingParent.UsuarioDisciplina.ToList())
                {
                    if (!model.UsuarioDisciplina.Any(c => c.DisciplinaIdDisciplina == existingChild.DisciplinaIdDisciplina && c.UsuarioCpf == existingChild.UsuarioCpf))
                        _context.UsuarioDisciplina.Remove(existingChild);
                }
                foreach (var childModel in model.UsuarioDisciplina)
                {
                    if (!_context.UsuarioDisciplina.Any(usr => usr.DisciplinaIdDisciplina == childModel.DisciplinaIdDisciplina && usr.UsuarioCpf == childModel.UsuarioCpf) && childModel.DisciplinaIdDisciplina != 0)
                    {
                        UsuarioDisciplina usrDisc = _mapper.Map<UsuarioDisciplina>(childModel);
                        existingParent.UsuarioDisciplina.Add(usrDisc);
                    }
                }
            }
            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!DisciplinaExists(id))
                {
                    return NotFound(new { msg = "Não foi possível encontrar a disciplina" });
                }
                else
                {
                    throw;
                }
            }
            return StatusCode(200, new { msg = $"Disciplina {existingParent.Materia} alterada com sucesso" });
        }
Exemple #3
0
        public async Task <IActionResult> PutUsuarioDisciplina([FromQuery] int IdUsuarioDisciplina, [FromBody] int IdDisciplina)
        {
            UsuarioDisciplina usuarioDisciplina = await _context.UsuarioDisciplina.FindAsync(IdUsuarioDisciplina);

            usuarioDisciplina.DisciplinaIdDisciplina = IdDisciplina;
            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!UsuarioDisciplinaExists(usuarioDisciplina.UsuarioCpf, IdDisciplina))
                {
                    return(NotFound(new { msg = "Usuário não encontrado na disciplina" }));
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(200, new { msg = $"Usuário {usuarioDisciplina.UsuarioCpfNavigation.NomeSobrenome} alterado de disciplina com sucesso" }));
        }
Exemple #4
0
        public async Task<dynamic> PostInserirAluno([FromBody] UsuarioDisciplinaCreateAndUpdateViewModel model)
        {
            UsuarioDisciplina usuarioDisciplina = _mapper.Map<UsuarioDisciplina>(model);
            _context.UsuarioDisciplina.Add(usuarioDisciplina);

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateException)
            {
                if (!DisciplinaExists(usuarioDisciplina.DisciplinaIdDisciplina))
                {
                    return NotFound(new { msg = "Não foi possível encontrar a disciplina" });
                }
                else
                {
                    throw;
                }
            }

            CreatedAtAction("GetDisciplina", new { id = usuarioDisciplina.IdUsuarioDisciplina }, usuarioDisciplina);
            return StatusCode(200, new { msg = $"Cpf {usuarioDisciplina.UsuarioCpf} cadastrado com sucesso" });
        }