Beispiel #1
0
        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));
        }
Beispiel #2
0
        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));
        }