예제 #1
0
        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();
            }
        }
예제 #3
0
 public IActionResult GetFirefighterActions([FromQuery] int actionId, AssignTruckRequest req)
 {
     try
     {
         return(Ok(_fireFightersService.AssignTruck(req)));
     }
     catch (Exception ex)
     {
         return(BadRequest(ex.Message));
     }
 }
예제 #4
0
 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!"));
 }