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; } } }
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" }); }
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" })); }
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" }); }