public async Task <IActionResult> AddCarAsync([FromBody] CarInputDto carInputDto)
        {
            if (ModelState.IsValid)
            {
                await _carService.AddCarAsync(carInputDto);

                return(Ok());
            }

            return(BadRequest());
        }
Пример #2
0
        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);
        }