public async Task <IActionResult> AddCarAsync([FromBody] CarInputDto carInputDto) { if (ModelState.IsValid) { await _carService.AddCarAsync(carInputDto); return(Ok()); } return(BadRequest()); }
public async Task AddCarAsync(CarInputDto carInputDto) { Color color = await AddColor(carInputDto.Color); var fuel = await _fuelRepository.FirstOrDefaultAsync(x => x.Name.ToLower() == carInputDto.Fuel.ToLower()); if (fuel == null) { await _fuelRepository.AddAsync(new Fuel { Name = carInputDto.Fuel }); fuel = await _fuelRepository.FirstOrDefaultAsync(x => x.Name.ToLower() == carInputDto.Fuel.ToLower()); } var owners = new List <Owner>(); foreach (var ownerId in carInputDto.OwnersId) { var owner = await _ownerRepository.FirstOrDefaultAsync(x => x.Id == ownerId); if (owner != null) { owners.Add(owner); } } if (!DateTime.TryParse(carInputDto.CreatedDate, out DateTime createdDate)) { throw new DateTimeParseException("invalid datetime string"); } var carEntity = new Car { Color = color, Fuel = fuel, CreatedDate = createdDate, VinCode = carInputDto.VinCode, MarkEng = carInputDto.MarkEng, MarkGeo = carInputDto.MarkGeo, ModelEng = carInputDto.ModelEng, ModelGeo = carInputDto.ModelGeo, Owners = owners, Image = carInputDto.Image, TransportNumber = carInputDto.TransportNumber, }; await _carRepository.AddAsync(carEntity); }