dimitrix85

Untitled

Mar 27th, 2019
86
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  public static string ImportCars(CarDealerContext context, string inputJson)
  2.         {
  3.             var carDtos = JsonConvert.DeserializeObject<CarDto[]>(inputJson);
  4.  
  5.             List<CarDto> validCarDtos = new List<CarDto>();
  6.             HashSet<int> partIds = context.Parts.Select(x => x.Id).ToHashSet();
  7.  
  8.             var config = new MapperConfiguration(cfg =>
  9.             {
  10.                 cfg.CreateMap<CarDto, Car>();
  11.             });
  12.  
  13.             var mapper = config.CreateMapper();
  14.  
  15.             foreach (var car in carDtos)
  16.             {
  17.                 bool isValid = false;
  18.  
  19.                 foreach (var part in car.PartsId.Distinct())
  20.                 {
  21.                     if (partIds.Contains(part))
  22.                     {
  23.                         isValid = true;
  24.                     }
  25.                     else
  26.                     {
  27.                         isValid = false;
  28.                         break;
  29.                     }
  30.                 }
  31.  
  32.                 if (isValid)
  33.                 {
  34.                    
  35.                     validCarDtos.Add(car);
  36.                 }
  37.             }
  38.  
  39.  
  40.             for (int i = 0; i < validCarDtos.Count; i++)
  41.             {
  42.                 var carTemp = mapper.Map<Car>(validCarDtos[i]);
  43.  
  44.                 foreach (var part in validCarDtos[i].PartsId.Distinct())
  45.                 {
  46.                     carTemp.PartCars.Add(new PartCar() { CarId = i + 1, PartId = part });
  47.                 }
  48.  
  49.                 context.Cars.AddRange(carTemp);
  50.             }
  51.  
  52.  
  53.  
  54.             var result = validCarDtos.Count();
  55.                 context.SaveChanges();
  56.  
  57.             return $"Successfully imported {result}.";
  58.         }
RAW Paste Data