Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static string ImportCars(CarDealerContext context, string inputJson)
- {
- var carDtos = JsonConvert.DeserializeObject<CarDto[]>(inputJson);
- List<CarDto> validCarDtos = new List<CarDto>();
- HashSet<int> partIds = context.Parts.Select(x => x.Id).ToHashSet();
- var config = new MapperConfiguration(cfg =>
- {
- cfg.CreateMap<CarDto, Car>();
- });
- var mapper = config.CreateMapper();
- foreach (var car in carDtos)
- {
- bool isValid = false;
- foreach (var part in car.PartsId.Distinct())
- {
- if (partIds.Contains(part))
- {
- isValid = true;
- }
- else
- {
- isValid = false;
- break;
- }
- }
- if (isValid)
- {
- validCarDtos.Add(car);
- }
- }
- for (int i = 0; i < validCarDtos.Count; i++)
- {
- var carTemp = mapper.Map<Car>(validCarDtos[i]);
- foreach (var part in validCarDtos[i].PartsId.Distinct())
- {
- carTemp.PartCars.Add(new PartCar() { CarId = i + 1, PartId = part });
- }
- context.Cars.AddRange(carTemp);
- }
- var result = validCarDtos.Count();
- context.SaveChanges();
- return $"Successfully imported {result}.";
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement