public async Task <int> Create(TrackCreateDTO track) { var entity = new Track { Name = track.Name, LengthInMeters = track.LengthInMeters, MaxCars = track.MaxCars }; _context.Tracks.Add(entity); await _context.SaveChangesAsync(); return(entity.Id); }
public async Task <(bool ok, string error)> AddCarToRaceAsync(int carId, int raceId, int?startPosition = null) { var car = _context.Cars.Find(carId); var race = _context.Races.Find(raceId); if (car == null) { return(false, "Couldn't find car"); } if (race == null) { return(false, "Couldn't find race"); } var currentNumberOfCars = (from c in _context.CarsInRace where c.Race == race select c).Count(); if (race.ActualStart == null && race.Track.MaxCars > currentNumberOfCars) { var carRace = new CarInRace() { CarId = carId, RaceId = raceId, Car = car, Race = race, }; await _context.CarsInRace.AddAsync(carRace); await _context.SaveChangesAsync(); return(true, "Car has been added"); } else if (race.ActualStart != null) { return(false, "Race started"); } else { return(false, "Race is full"); } }