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 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 GetFirefighterActions([FromQuery] int actionId, AssignTruckRequest req) { try { return(Ok(_fireFightersService.AssignTruck(req))); } catch (Exception ex) { return(BadRequest(ex.Message)); } }
public IActionResult AssighFireTruck(AssignTruckRequest request) { try { _service.AssignTruck(request); } catch (NoSuchActionEx ex) { return(BadRequest("No Action")); } catch (NoSuchTruckEx ex) { return(BadRequest("No Truck")); } return(Ok("ok!")); }