public void Import(string jsonImportFilePath) { var jsonText = this.CheckIfFileExsists(jsonImportFilePath); var convertedColection = JsonConvert.DeserializeObject<List<JsonCar>>(jsonText); var saveFrequency = 100; var objectCount = 0; foreach (var car in convertedColection) { var carToAddToDatabes = new Car { Model = car.Model, Year = car.Year, Manufacturer = this.AddManufacturer(car), Dealer = this.AddDealer(car), TransmisionType = (TransmisionType)car.TransmisionType, Price = car.Price }; this.databaseContext.Cars.Add(carToAddToDatabes); this.logger.Log("."); objectCount += 1; if (objectCount % saveFrequency == 0) { this.databaseContext.SaveChanges(); } } }
public HttpResponseMessage PostCar([FromBody] CarDetailedModel car, [ValueProvider(typeof(HeaderValueProviderFactory<string>))] string sessionKey) { var messageResponse = this.TryExecuteOperation<HttpResponseMessage>(() => { var user = unitOfWork.userRepository.All().Single(x => x.SessionKey == sessionKey); ValidateUser(user); ValidateMaker(car.Maker); ValidateModel(car.Model); ValidateProductionYear(car.ProductionYear); ValidatePrice(car.Price); ValidateEngine(car.Engine); ValidateFuelType(car.FuelType); ValidateEngineVolume(car.EngineVolume); ValidateHp(car.HP); ValidateMileage(car.Mileage); ValidateGear(car.Gear); ValidateDoors(car.Doors); ValidateImageUrl(car.ImageUrl); var newCar = new Car() { Maker = car.Maker, Model = car.Model, ProductionYear = car.ProductionYear, Price = car.Price, Engine = car.Engine, HP = car.HP, Gear = car.Gear, ImageUrl = car.ImageUrl, Doors = car.Doors, EngineVolume = car.EngineVolume, FuelType = car.FuelType, Mileage = car.Mileage, Owner = user, }; if (car.Extras != null) { foreach (var extra in car.Extras) { var newExtra = new Extra(); var existingExtra = this.unitOfWork.extraRepository.All().FirstOrDefault(x => x.Name == extra.Name); if (existingExtra == null) { newExtra.Name = extra.Name; } else { newExtra = existingExtra; } newCar.Extras.Add(newExtra); } } unitOfWork.carRepository.Add(newCar); return Request.CreateResponse(HttpStatusCode.Created, car); }); return messageResponse; }