private static void ImportCars(CarDealerContext context)
        {
            var objCars = JsonConvert.DeserializeObject <Car[]>(File.ReadAllText("../../../ImportFiles/cars.json"));

            var cars = new List <Car>();

            foreach (var car in objCars)
            {
                var partsNumber = new Random().Next(10, 21);
                for (int i = 0; i < partsNumber; i++)
                {
                    var partId = new Random().Next(1, 132);
                    while (car.Parts.Any(p => p.PartId == partId))
                    {
                        partId = new Random().Next(1, 132);
                    }

                    var partCar = new PartCar()
                    {
                        CarId  = car.Id,
                        PartId = partId
                    };

                    car.Parts.Add(partCar);
                }

                cars.Add(car);
            }

            context.AddRange(cars);
            context.SaveChanges();
        }
Exemplo n.º 2
0
        public static string ImportCars(CarDealerContext context, string inputJson)
        {
            var carsDto = JsonConvert.DeserializeObject <ImportCarDto[]>(inputJson);

            var carsCollection = new List <Car>();
            var carParts       = new List <PartCar>();

            foreach (var carDto in carsDto)
            {
                var car = new Car()
                {
                    Make              = carDto.Make,
                    Model             = carDto.Model,
                    TravelledDistance = carDto.TravelledDistance
                };
                foreach (var part in carDto.PartsId.Distinct())
                {
                    var carPart = new PartCar()
                    {
                        PartId = part,
                        Car    = car
                    };

                    carParts.Add(carPart);
                }
                carsCollection.Add(car);
            }
            context.Cars.AddRange(carsCollection);
            context.PartCars.AddRange(carParts);
            context.SaveChanges();
            return($"Successfully imported {carsDto.Length}.");
        }
Exemplo n.º 3
0
        //------------------- TASK 11 ---- IMPORT CARS ------------------------------------------
        public static string ImportCars(CarDealerContext context, string inputJson)
        {
            ImportCarDto[] carDtos = JsonConvert.DeserializeObject <ImportCarDto[]>(inputJson);

            List <Car>     cars     = new List <Car>();
            List <PartCar> carParts = new List <PartCar>();

            foreach (ImportCarDto carDto in carDtos)
            {
                Car car = new Car()
                {
                    Make              = carDto.Make,
                    Model             = carDto.Model,
                    TravelledDistance = carDto.TravelledDistance,
                };

                //partsId array
                foreach (var partId in carDto.PartsId.Distinct())
                {
                    PartCar carPart = new PartCar()
                    {
                        PartId = partId,
                        Car    = car,
                    };
                    carParts.Add(carPart);
                }
                cars.Add(car);
            }

            context.Cars.AddRange(cars);
            context.PartCars.AddRange(carParts);
            context.SaveChanges();

            return($"Successfully imported {cars.Count}.");
        }
Exemplo n.º 4
0
        public static string ImportCars(CarDealerContext context, string inputJson)
        {
            JArray cars = JArray.Parse(inputJson);

            foreach (var carJson in cars)
            {
                var car = JsonConvert.DeserializeObject <Car>(carJson.ToString());
                context.Cars.Add(car);

                foreach (var partJson in carJson["partsId"].Distinct())
                {
                    PartCar partCar = new PartCar
                    {
                        PartId = int.Parse(partJson.ToString()),
                        CarId  = car.Id
                    };

                    if (!context.PartCars.Contains(partCar))
                    {
                        car.PartCars.Add(partCar);
                    }
                }
            }
            context.SaveChanges();

            return($"Successfully imported {context.Cars.Local.Count}.");
        }
Exemplo n.º 5
0
        //cars
        public static string ImportCars(CarDealerContext context, string inputJson)
        {
            CarDTO[] cars = JsonConvert.DeserializeObject <CarDTO[]>(inputJson);

            foreach (var car in cars)
            {
                var newCar = new Car
                {
                    Make              = car.Make,
                    Model             = car.Model,
                    TravelledDistance = car.TravelledDistance
                };

                context.Cars.Add(newCar);

                foreach (var part in car.Parts)
                {
                    var carPart = new PartCar
                    {
                        CarId  = newCar.Id,
                        PartId = part
                    };

                    if (!newCar.PartCars.Any(pc => pc.PartId == carPart.PartId))
                    {
                        context.PartCars.Add(carPart);
                    }
                }
            }

            context.SaveChanges();

            return($"Successfully imported {cars.Length}.");
        }
Exemplo n.º 6
0
        //11.ImportCars
        public static string ImportCars(CarDealerContext context, string inputJson)
        {
            var json = JsonConvert.DeserializeObject <IEnumerable <ImportCarsInputModel> >(inputJson);

            foreach (var carDto in json)
            {
                Car car = new Car
                {
                    Make              = carDto.Make,
                    Model             = carDto.Model,
                    TravelledDistance = carDto.TravelledDistance
                };

                context.Cars.Add(car);

                foreach (var partId in carDto.PartsId)
                {
                    PartCar partCar = new PartCar
                    {
                        CarId  = car.Id,
                        PartId = partId
                    };

                    if (car.PartCars.FirstOrDefault(p => p.PartId == partId) == null)
                    {
                        context.PartCars.Add(partCar);
                    }
                }
            }

            context.SaveChanges();

            return($"Successfully imported {json.Count()}.");
        }
Exemplo n.º 7
0
        private static void ImportPartCars(CarDealerContext context)
        {
            var carIds = context.Cars.Select(c => c.Id);

            var partCars = new List <PartCar>();

            foreach (var carId in carIds)
            {
                var partIds = new List <int>();
                for (int i = 1; i < 132; i++)
                {
                    partIds.Add(i);
                }

                var partsCount = new Random().Next(10, 21);
                for (int j = 0; j < partsCount; j++)
                {
                    var partCar = new PartCar
                    {
                        CarId  = carId,
                        PartId = partIds[new Random().Next(0, partIds.Count - 1)]
                    };

                    partIds.Remove(partCar.PartId);
                    partCars.Add(partCar);
                }
            }

            context.PartCars.AddRange(partCars);
            context.SaveChanges();
        }
Exemplo n.º 8
0
        //Problem 11
        public static string ImportCars(CarDealerContext context, string inputJson)
        {
            var cars = JsonConvert.DeserializeObject <List <CarDTO> >(inputJson);

            foreach (var car in cars)
            {
                var newCar = new Car
                {
                    Make              = car.Make,
                    Model             = car.Model,
                    TravelledDistance = car.TravelledDistance
                };

                context.Cars.Add(newCar);

                foreach (var part in car.PartsId.Distinct())
                {
                    var newPartCar = new PartCar
                    {
                        PartId = part,
                        Car    = newCar
                    };

                    context.PartCars.Add(newPartCar);
                }
            }

            context.SaveChanges();

            return($"Successfully imported {cars.Count}.");
        }
Exemplo n.º 9
0
        public void Create(string make, string model, long travelledDistance, IEnumerable <int> partsIds)
        {
            IEnumerable <int> existingPartsIds = this.database
                                                 .Parts
                                                 .Where(p => partsIds.Contains(p.Id))
                                                 .Select(p => p.Id)
                                                 .ToList();

            Car car = new Car
            {
                Make              = make,
                Model             = model,
                TravelledDistance = travelledDistance,
            };

            IList <PartCar> parts = new List <PartCar>();

            foreach (int partId in existingPartsIds)
            {
                PartCar part = new PartCar
                {
                    PartId = partId,
                    CarId  = car.Id
                };

                parts.Add(part);
            }

            car.Parts = parts;

            this.database.Cars.Add(car);
            this.database.SaveChanges();
        }
        public static void ImportCars(CarDealershipContext context, string carsAsString)
        {
            var cars = JsonConvert.DeserializeObject <Car[]>(carsAsString);

            context.Cars.AddRange(cars);
            context.SaveChanges();

            var partsId   = context.Parts.Select(x => x.Id).ToArray();
            var carsId    = context.Cars.Select(x => x.Id).ToArray();
            var random    = new Random();
            var carsParts = new List <PartCar>();

            for (int i = 0; i < carsId.Length; i++)
            {
                for (int j = 0; j < random.Next(15, 20); j++)
                {
                    var carPart = new PartCar()
                    {
                        CarId  = carsId[i],
                        PartId = partsId[random.Next(1, partsId.Length)]
                    };
                    if (carsParts.Any(x => x.CarId == carPart.CarId && x.PartId == carPart.PartId))
                    {
                        continue;
                    }
                    carsParts.Add(carPart);
                }
            }

            context.PartCars.AddRange(carsParts);
            context.SaveChanges();
        }
Exemplo n.º 11
0
        public static string ImportCars(CarDealerContext context, string inputJson)
        {
            var carsDto = JsonConvert.DeserializeObject <CarInputDto[]>(inputJson);

            foreach (var ImportCarsDTO in carsDto)
            {
                Car car = new Car
                {
                    Make              = ImportCarsDTO.Make,
                    Model             = ImportCarsDTO.Model,
                    TravelledDistance = ImportCarsDTO.TravelledDistance
                };

                context.Cars.Add(car);

                foreach (var partId in ImportCarsDTO.PartsId)
                {
                    PartCar partCar = new PartCar
                    {
                        CarId  = car.Id,
                        PartId = partId
                    };

                    if (car.PartCars.FirstOrDefault(p => p.PartId == partId) == null)
                    {
                        context.PartCars.Add(partCar);
                    }
                }
            }
            context.SaveChanges();

            return($"Successfully imported {carsDto.Length}.");
        }
Exemplo n.º 12
0
        //Problem 3
        public static string ImportCars(CarDealerContext context, string inputJson)
        {
            var config   = new MapperConfiguration(cfg => cfg.AddProfile <CarDealerProfile>());
            var mapper   = config.CreateMapper();
            var carsData = JsonConvert.DeserializeObject <CarInsertModel[]>(inputJson);
            var cars     = new List <Car>();
            var partsCar = new List <PartCar>();

            foreach (var carObj in carsData)
            {
                var car = mapper.Map <CarInsertModel, Car>(carObj);
                foreach (var part in carObj.PartsId.Distinct())
                {
                    var partCar = new PartCar();
                    partCar.PartId = part;
                    partCar.Car    = car;
                    partsCar.Add(partCar);
                }
                cars.Add(car);
            }

            context.Cars.AddRange(cars);
            context.PartCars.AddRange(partsCar);
            context.SaveChanges();
            return($"Successfully imported {cars.Count()}.");
        }
Exemplo n.º 13
0
        public static string ImportCars(CarDealerContext context, string inputJson)
        {
            InitializeMapper();
            List <CarsInputDto> carsDto    = JsonConvert.DeserializeObject <List <CarsInputDto> >(inputJson);
            List <Car>          mappedCars = new List <Car>();

            foreach (CarsInputDto car in carsDto)
            {
                Car vehicle = mapper.Map <CarsInputDto, Car>(car);
                mappedCars.Add(vehicle);

                List <int> partIds = car.PartsId.Distinct().ToList();


                if (partIds == null)
                {
                    continue;
                }

                partIds.ForEach(pid =>
                {
                    PartCar currentPair = new PartCar()
                    {
                        Car    = vehicle,
                        PartId = pid
                    };
                    vehicle.PartCars.Add(currentPair);
                });
            }

            context.Cars.AddRange(mappedCars);
            context.SaveChanges();

            return($"Successfully imported {mappedCars.Count}.");
        }
Exemplo n.º 14
0
        private static void ImportPartCarsRecords(CarDealerContext context)
        {
            List <PartCar> partCars = new List <PartCar>();
            Random         random   = new Random();

            for (int i = 1; i <= 358; i++)
            {
                int        randomNumberOfParts = random.Next(10, 21);
                List <int> partIds             = new List <int>();

                for (int j = 0; j < randomNumberOfParts; j++)
                {
                    int randomPartId = random.Next(1, 132);

                    if (partIds.Contains(randomPartId))
                    {
                        continue;
                    }

                    partIds.Add(randomPartId);

                    var part = new PartCar {
                        CarId = i, PartId = randomPartId
                    };
                    partCars.Add(part);
                }
            }
            context.PartCars.AddRange(partCars);
            context.SaveChanges();
        }
Exemplo n.º 15
0
        //Problem 3
        public static string ImportCars(CarDealerContext context, string inputXml)
        {
            var serializer = new XmlSerializer(typeof(List <CarDto>), new XmlRootAttribute("Cars"));
            var carsDto    = (List <CarDto>)serializer.Deserialize(new StringReader(inputXml));

            foreach (var carDto in carsDto)
            {
                var car = Mapper.Map <Car>(carDto);
                context.Cars.Add(car);

                foreach (var PartIds in carDto.Parts.PartIds)
                {
                    if (car.PartCars.FirstOrDefault(x => x.PartId == PartIds.Id) == null &&
                        context.Parts.Find(PartIds.Id) != null)
                    {
                        var autoPart = new PartCar()
                        {
                            PartId = PartIds.Id,
                            CarId  = car.Id
                        };

                        context.PartCars.Add(autoPart);
                    }
                }
            }
            ;

            context.SaveChanges();

            return($"Successfully imported {carsDto.Count}");
        }
Exemplo n.º 16
0
        public static string ImportCars(CarDealerContext context, string inputXml)
        {
            var xmlSerializer = new XmlSerializer(typeof(ImportCarsDto[]), new XmlRootAttribute("Cars"));

            var carsDtos = (ImportCarsDto[])xmlSerializer.Deserialize(new StringReader(inputXml));

            List <Car> cars = new List <Car>();

            foreach (var carDto in carsDtos)
            {
                var car = Mapper.Map <Car>(carDto);

                context.Cars.Add(car);

                foreach (var part in carDto.Parts.PartsId)
                {
                    if (car.PartCars
                        .FirstOrDefault(x => x.PartId == part.PartId) == null &&
                        context.Parts.Find(part.PartId) != null)
                    {
                        var partCar = new PartCar
                        {
                            CarId  = car.Id,
                            PartId = part.PartId
                        };
                        car.PartCars.Add(partCar);
                    }
                }
                cars.Add(car);
            }

            context.SaveChanges();
            return($"Successfully imported {cars.Count}");
        }
Exemplo n.º 17
0
        private static void ImportPartCars()
        {
            List <PartCar> partCars = new List <PartCar>();

            for (int i = 1; i <= 358; i++)
            {
                var parts = Enumerable.Range(1, 131).OrderBy(x => new Random().Next()).Take(new Random().Next(10, 21)).ToArray();

                for (int n = 0; n < parts.Length; n++)
                {
                    int partId = parts[n];

                    var partCar = new PartCar()
                    {
                        CarId  = i,
                        PartId = partId
                    };

                    partCars.Add(partCar);
                }
            }

            var ctx = new CarDealerDbContext();

            ctx.PartCars.AddRange(partCars);
            ctx.SaveChanges();
        }
Exemplo n.º 18
0
        public static string ImportCars(CarDealerContext context, string inputXml)
        {
            var serializer = new XmlSerializer(typeof(Cars), new XmlRootAttribute("Cars"));
            var cars       = ((Cars)serializer.Deserialize(new StringReader(inputXml))).Car;

            foreach (var car in cars)
            {
                var actualCar = new Car()
                {
                    Make              = car.make,
                    Model             = car.model,
                    TravelledDistance = car.TraveledDistance,
                };
                var parts = new HashSet <int>();
                foreach (var part in car.parts)
                {
                    if (!parts.Contains(part.id))
                    {
                        var partCar = new PartCar()
                        {
                            Car    = actualCar,
                            PartId = part.id
                        };
                        context.PartCars.Add(partCar);
                        actualCar.PartCars.Add(partCar);
                    }
                    parts.Add(part.id);
                }

                context.Cars.Add(actualCar);
            }
            context.SaveChanges();

            return($"Successfully imported {cars.Count()}");
        }
        public static string ImportCars(CarDealerContext context, string inputJson)
        {
            InicializeAutoMapper();

            var dtoCars = JsonConvert.DeserializeObject <IEnumerable <CarsInputModel> >(inputJson);
            var cars    = new List <Car>();

            //var cars = mapper.Map<IEnumerable<Car>>(dtoCars);
            foreach (var car in dtoCars)
            {
                var automobile = mapper.Map <Car>(car);
                cars.Add(automobile);

                var partIds = car
                              .PartsId
                              .Distinct()
                              .ToList();

                foreach (var id in partIds)
                {
                    var partCar = new PartCar
                    {
                        PartId = id,
                        Car    = automobile
                    };
                    automobile.PartCars.Add(partCar);
                }
            }
            ;

            context.Cars.AddRange(cars);

            context.SaveChanges();
            return($"Successfully imported {cars.Count()}.");
        }
Exemplo n.º 20
0
        //11. Import Cars
        public static string ImportCars(CarDealerContext context, string inputJson)
        {
            var carsDTO = JsonConvert.DeserializeObject <IEnumerable <CarDTO> >(inputJson);

            var cars = new List <Car>();

            foreach (var carDTO in carsDTO)
            {
                var car = new Car()
                {
                    Make              = carDTO.Make,
                    Model             = carDTO.Model,
                    TravelledDistance = carDTO.TravelledDistance
                };

                foreach (var partId in carDTO.PartsId.Distinct())
                {
                    var partCard = new PartCar()
                    {
                        PartId = partId,
                        Car    = car
                    };

                    car.PartCars.Add(partCard);
                }

                cars.Add(car);
            }

            context.Cars.AddRange(cars);
            context.SaveChanges();

            return($"Successfully imported {cars.Count()}.");
        }
Exemplo n.º 21
0
        private static void ExtractPartCarsData(CarDealerContext context)
        {
            List <PartCar> partCars   = new List <PartCar>();
            Random         randomizer = new Random();

            for (int i = 1; i <= 358; i++)
            {
                int randomNumberOfParts = randomizer.Next(10, 21);

                List <int> partIds = new List <int>();
                for (int j = 0; j < randomNumberOfParts; j++)
                {
                    int randomPartId = randomizer.Next(1, 132);
                    if (partIds.Contains(randomPartId))
                    {
                        continue;
                    }

                    partIds.Add(randomPartId);

                    PartCar currentPartCar = new PartCar
                    {
                        CarId  = i,
                        PartId = randomPartId
                    };

                    partCars.Add(currentPartCar);
                }
            }
            context.PartCars.AddRange(partCars);
            context.SaveChanges();
        }
        public static string ImportCars(CarDealerContext context, string inputJson)
        {
            var carDTO       = JsonConvert.DeserializeObject <CarImportDTO[]>(inputJson);
            var carsToImport = JsonConvert.DeserializeObject <Car[]>(inputJson);

            context.Cars.AddRange(carsToImport);
            context.SaveChanges();

            foreach (var car in carDTO)
            {
                var currentCarParts = car.PartsId.ToHashSet();
                var currentCar      = context
                                      .Cars
                                      .Where(x => x.Make == car.Make && x.Model == car.Model && x.TravelledDistance == car.TravelledDistance)
                                      .FirstOrDefault();

                foreach (var partId in currentCarParts)
                {
                    var partCar = new PartCar
                    {
                        CarId  = currentCar.Id,
                        PartId = partId
                    };

                    context.PartCars.Add(partCar);
                }
            }

            context.SaveChanges();

            return($"Successfully imported {context.Cars.Count()}.");
        }
Exemplo n.º 23
0
        public static string ImportCars(CarDealerContext context, string inputJson)
        {
            var cars = JsonConvert
                       .DeserializeObject <IEnumerable <ImportCarDTO> >(inputJson)
                       .Where(c => c.Make != null && c.Model != null);

            foreach (var car in cars)
            {
                var carToAdd = new Car {
                    Make              = car.Make,
                    Model             = car.Model,
                    TravelledDistance = car.TravelledDistance
                };

                context.Cars.Add(carToAdd);

                foreach (var partId in car.PartsId)
                {
                    var partCar = new PartCar()
                    {
                        CarId  = carToAdd.Id,
                        PartId = partId
                    };

                    if (carToAdd.PartCars.FirstOrDefault(c => c.PartId == partId) == null)
                    {
                        context.PartCars.Add(partCar);
                    }
                }
            }
            context.SaveChanges();

            return($"Successfully imported {cars.Count()}.");
        }
Exemplo n.º 24
0
        public static string ImportCars(CarDealerContext context, string inputJson)
        {
            var carDTOs = JsonConvert.DeserializeObject <List <CarDTO> >(inputJson);

            var config = new MapperConfiguration(cfg =>
            {
                cfg.AddProfile <CarDealerProfile>();
            });

            IMapper mapper = new Mapper(config);

            foreach (var carDTO in carDTOs)
            {
                var carToAdd = mapper.Map <CarDTO, Car>(carDTO);

                foreach (var partId in carDTO.PartsId.Distinct())
                {
                    var partCarEntity = new PartCar()
                    {
                        PartId = partId,
                        Car    = carToAdd
                    };

                    context.PartCars.Add(partCarEntity);
                }
            }

            context.SaveChanges();

            var result = $"Successfully imported {carDTOs.Count}.";

            return(result);
        }
Exemplo n.º 25
0
        public static string ImportCars(CarDealerContext context, string inputXml)
        {
            XmlSerializer xmlSerializer = new XmlSerializer(typeof(List <ImportCarDto>), new XmlRootAttribute("Cars"));

            var carDtos = (List <ImportCarDto>)xmlSerializer.Deserialize(new StringReader(inputXml));
            var cars    = new List <Car>();

            foreach (var carDto in carDtos)
            {
                var car = Mapper.Map <Car>(carDto);

                foreach (var part in carDto.Parts)
                {
                    var parForCarExist = car.PartCars
                                         .FirstOrDefault(x => x.PartId == part.PartId) != null;

                    if (!parForCarExist && context.Parts.Any(p => p.Id == part.PartId))
                    {
                        var partCar = new PartCar
                        {
                            CarId  = car.Id,
                            PartId = part.PartId
                        };

                        car.PartCars.Add(partCar);
                    }
                }
                cars.Add(car);
            }

            context.Cars.AddRange(cars);
            context.SaveChanges();

            return($"Successfully imported {context.Cars.Count()}");
        }
        private static void CreatePartCars(Car car, List <Part> allParts, CarDealerContext context)
        {
            Random random = new Random();

            int numberOfPartsToAdd = random.Next(10, 20);

            for (int i = 0; i < numberOfPartsToAdd; i++)
            {
                int partIndex = random.Next(0, allParts.Count - 1);

                Part part = allParts[partIndex];

                bool partExists = car.PartCars.Any(pc => pc.Part == part);
                while (partExists)
                {
                    partIndex = random.Next(0, allParts.Count - 1);
                    part      = allParts[partIndex];

                    partExists = car.PartCars.Any(pc => pc.Part == part);
                }

                PartCar partCar = new PartCar
                {
                    Car  = car,
                    Part = part,
                };

                context.PartsCars.Add(partCar);
            }
            context.SaveChanges();
        }
        public static string ImportCars(CarDealerContext context, string inputJson)
        {
            var carsImport = JsonConvert.DeserializeObject <CarImportDto[]>(inputJson);

            var readyCars = Mapper.Map <CarImportDto[], Car[]>(carsImport);

            context.AddRange(readyCars);

            context.SaveChanges();

            HashSet <int>     partIds       = context.Parts.Select(x => x.Id).ToHashSet();
            HashSet <Part>    parts         = context.Parts.ToHashSet();
            HashSet <Car>     cars          = context.Cars.ToHashSet();
            HashSet <PartCar> addedCarParts = new HashSet <PartCar>();

            List <PartCar> partsList = new List <PartCar>();

            foreach (var car in carsImport)
            {
                car.PartsId = car.PartsId.Distinct().ToList();

                Car currentCar = cars.Where(x => x.Make == car.Make && x.Model == car.Model && x.TravelledDistance == car.TravelledDistance).FirstOrDefault();

                if (currentCar == null)
                {
                    continue;
                }

                foreach (var id in car.PartsId)
                {
                    if (!partIds.Contains(id))
                    {
                        continue;
                    }

                    PartCar partCar = new PartCar
                    {
                        CarId  = currentCar.Id,
                        PartId = id
                    };

                    if (!addedCarParts.Contains(partCar))
                    {
                        partsList.Add(partCar);
                        addedCarParts.Add(partCar);
                    }
                }

                if (partsList != null)
                {
                    currentCar.PartCars = partsList;
                    context.PartCars.AddRange(partsList);
                    partsList.Clear();
                }
            }

            int rowsCount = context.SaveChanges();

            return($"Successfully imported {cars.Count}.");
        }
Exemplo n.º 28
0
        /// <summary>
        /// 11. Import Cars
        /// </summary>
        public static string ImportCars(CarDealerContext context, string inputJson)
        {
            var jsonCars   = JsonConvert.DeserializeObject <CarImportDto[]>(inputJson);
            var mappedCars = new List <Car>();

            foreach (var car in jsonCars)
            {
                var mappedCar = new Car()
                {
                    Make              = car.Make,
                    Model             = car.Model,
                    TravelledDistance = car.TravelledDistance
                };

                var partsIds = car.PartsId.Distinct().ToList();

                foreach (var partId in partsIds)
                {
                    var partCar = new PartCar()
                    {
                        PartId = partId
                    };

                    mappedCar.PartCars.Add(partCar);
                }

                mappedCars.Add(mappedCar);
            }

            context.Cars.AddRange(mappedCars);
            context.SaveChanges();

            return($"Successfully imported {mappedCars.Count}.");
        }
Exemplo n.º 29
0
        public static string ImportCars(CarDealerContext context, string inputXml)
        {
            var config     = new MapperConfiguration(cfg => cfg.AddProfile <CarDealerProfile>());
            var mapper     = config.CreateMapper();
            var serializer = new XmlSerializer(typeof(CarImportDTO[]), new XmlRootAttribute("Cars"));
            var cars       = (CarImportDTO[])serializer.Deserialize(new StringReader(inputXml));
            var partsIds   = context.Parts.Select(x => x.Id).ToList();

            foreach (var car in cars)
            {
                var cCar = mapper.Map <CarImportDTO, Car>(car);
                context.Cars.Add(cCar);
                foreach (var part in car.Parts.Select(x => x.Id).ToHashSet())
                {
                    if (partsIds.Any(x => x == part))
                    {
                        var partCar = new PartCar
                        {
                            PartId = part,
                            Car    = cCar
                        };
                        context.PartCars.Add(partCar);
                    }
                }
            }
            context.SaveChanges();
            return($"Successfully imported {cars.Count()}");
        }
Exemplo n.º 30
0
        public static string ImportCars(CarDealerContext context, string inputJson)
        {
            var carsDto = JsonConvert.DeserializeObject <List <ImportCarDTO> >(inputJson, new JsonSerializerSettings()
            {
            });

            var cars     = new List <Car>();
            var carParts = new List <PartCar>();

            foreach (var c in carsDto)
            {
                var car = new Car();
                car.Make              = c.make;
                car.Model             = c.model;
                car.TravelledDistance = c.travelledDistance;

                foreach (var p in c.partsId.Distinct())
                {
                    var carPart = new PartCar()
                    {
                        PartId = p,
                        Car    = car
                    };
                    carParts.Add(carPart);
                }

                cars.Add(car);
            }
            context.Cars.AddRange(cars);
            context.PartCars.AddRange(carParts);
            context.SaveChanges();

            return($"Successfully imported {cars.Count}.");
        }