public AssignTruckResponse AssignTruck(AssignTruckRequest req) { var action = _context.Actions.Where(a => a.IdAction.Equals(req.idAction)).FirstOrDefault(); if (action == null) { throw new Exception("Action not found!"); } var truck = _context.FireTrucks.Where(ft => ft.IdFireTruck.Equals(req.idFireTruck)).FirstOrDefault(); if (truck == null) { throw new Exception("Fire Truck not found!"); } if (action.NeedSpecialEquipment == true && truck.SpecialEquipment == false) { throw new Exception("Fire Truck needs special equipment"); } var fireTruckAction = new FireTruck_Action { IdAction = action.IdAction, IdFireTruck = truck.IdFireTruck, AssigmentDate = DateTime.Now }; _context.Add(fireTruckAction); _context.SaveChanges(); return(new AssignTruckResponse { AssigmentDate = fireTruckAction.AssigmentDate, Action = action, FireTruck = truck }); }
public IActionResult Action(FireTruckRequest request) { if (request.IdFireTruck == null) { return(BadRequest("Nie podano id wozu")); } else { var result = _context.FireTruck.SingleOrDefault(b => b.IdFireTruck == request.IdFireTruck); var action = _context.Action.SingleOrDefault(a => a.IdAction == request.IdAction); if (result != null) { if (result.SpecialEquipment == action.NeedSpecialEquipment) { var newAction = new FireTruck_Action { IdFireTruck = request.IdFireTruck, IdAction = request.IdAction, AssigmentDate = new DateTime(2020, 6, 27, 0, 0, 0, 0, DateTimeKind.Local), }; _context.FireTruck_Action.Add(newAction); } else { return(BadRequest("Woz nie posiada wymaganego sprzetu")); } } } _context.SaveChanges(); return(StatusCode(201, "Przypisano")); }
public void AssignTruck(AssignTruckRequest request) { if (_context.Action.Where(a => a.IdAction == request.IdAction).Count() == 0) { throw new NoSuchActionEx(); } else { bool needEquipment = _context.Action.Where(a => a.IdAction == request.IdAction).Select(a => a.NeedSpecialEquipment).FirstOrDefault(); if (_context.FireTruck.Where(f => f.IdFireTruck == request.IdFireTruck && f.SpecialEquipment == needEquipment).Count() == 0) { throw new NoSuchTruckEx(); } } using (var tra = _context.Database.BeginTransaction()) { FireTruck_Action fireTruck_Action = new FireTruck_Action() { IdFireTruck = request.IdFireTruck, IdAction = request.IdAction, AssignmentDate = DateTime.Now }; _context.Add <FireTruck_Action>(fireTruck_Action); _context.SaveChanges(); tra.Commit(); } }
public IActionResult addTruckToAction(int id, AddTruckToActionRequest request) { if (id != request.IdAction) { return(BadRequest("Niepoprawne id akcji")); } FireTruck fireTruck; Models.Action action; try { fireTruck = _context.FireTrucks.Where(f => f.IdFireTruck == request.IdFireTruck).Single(); } catch (Exception e) { return(NotFound("Brak podanego wozu w bazie")); } try { action = _context.Actions.Where(f => f.IdAction == request.IdAction).Single(); } catch (Exception e) { return(NotFound("Brak podanej akcji w bazie")); } if (action.NeedSpecialEquipment && !fireTruck.SpecialEquipment) { return(BadRequest("Wybrany woz nie posiada wymaganego wyposazenia")); } if (_context.FireTruck_Actions .Where(fa => fa.IdFireTruck == request.IdFireTruck) .Include(fa => fa.Action) .Where(e => e.Action.EndTime == null).Any()) { return(BadRequest("Wybrany woz jest zajety")); } FireTruck_Action fireTruck_Action = new FireTruck_Action { IdAction = request.IdAction, IdFireTruck = request.IdFireTruck, AssigmentDate = DateTime.Now }; _context.Add(fireTruck_Action); _context.SaveChanges(); return(Created("", new FireTruckAssignment { IdFireTruck = fireTruck_Action.IdFireTruck, IdAction = fireTruck_Action.IdAction, AssigmentDate = fireTruck_Action.AssigmentDate })); }