Exemple #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
            });
        }
Exemple #2
0
        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();
            }
        }
Exemple #4
0
        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
            }));
        }