Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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");
            }
        }