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)); }