public async Task <IActionResult> RemoveEquipment([FromBody] ChangeEquipment ent) { var equip = await DbContext.Equipamento .SingleOrDefaultAsync(e => e.Id == ent.equipmentId); if (equip == null) { return(NotFound()); } equip.EmUso = false; DbContext.Entry(equip).State = EntityState.Modified; await DbContext.SaveChangesAsync(); return(StatusCode(StatusCodes.Status204NoContent)); }
public async Task <IActionResult> AddEquipment([FromBody] ChangeEquipment ent) { var equip = await DbContext.Equipamento .SingleOrDefaultAsync(e => e.Id == ent.equipmentId); if (equip == null) { return(NotFound()); } if (equip.EmUso == true) { throw new ValidationExn("Equipamento já está em uso."); } var task = await DbContext.Tarefa .Where(t => t.Destino == ent.userId && t.FinalizadoEm == null) .OrderByDescending(t => t.IniciadoEm) .FirstOrDefaultAsync(); if (task == null) { throw new ValidationExn("Usuário sem tarefas abertas."); } if (!await DbContext.TarefaEquipamentos.AnyAsync(x => x.EquipamentoId == ent.equipmentId && x.TarefaId == task.Id)) { task.TarefaEquipamentos.Add(new TarefaEquipamentos { EquipamentoId = ent.equipmentId }); } equip.EmUso = true; DbContext.Entry(task).State = EntityState.Modified; DbContext.Entry(equip).State = EntityState.Modified; await DbContext.SaveChangesAsync(); return(StatusCode(StatusCodes.Status204NoContent)); }