Beispiel #1
0
        public async Task <Car> CreateAsync(Car car)
        {
            if (car == null)
            {
                throw new ArgumentException(nameof(car));
            }

            if (!car.CategoryId.HasValue)
            {
                throw new ArgumentException(nameof(car.CategoryId));
            }

            if (!car.GarageId.HasValue)
            {
                throw new ArgumentException(nameof(car.GarageId));
            }

            if (!_garageRepository.AnyAsync(g => g.Id == car.GarageId).Result)
            {
                throw new Exception("Bad Request: garage is not exists");
            }

            if (!_carCategoryRepository.AnyAsync(c => c.Id == car.CategoryId).Result)
            {
                throw new Exception("Bad Request: car category is not exists");
            }

            var carEntity = new CarEntity
            {
                DateCreated = DateTime.Now
            };

            PopulateCarData(carEntity, car);

            _carRepository.Add(carEntity);
            await _carRepository.SaveChangesAsync();

            return(Mapper.Map <Car>(carEntity));
        }