Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //11. Import Cars
- public static string ImportCars(CarDealerContext context, string inputJson)
- {
- var desCars = JsonConvert.DeserializeObject<CarsInsertDTO[]>(inputJson);
- var validCars = new List<Car>();
- var validPartCars = new List<PartCar>();
- foreach (var car in desCars)
- {
- if (IsValid(car))
- {
- var newCar = new Car { Make = car.Make, Model = car.Model, TravelledDistance = car.TravelledDistance };
- validCars.Add(newCar);
- var partIds = car.PartsID.Distinct().ToList();
- if (partIds == null)
- continue;
- partIds.ForEach(pid =>
- {
- var currentPair = new PartCar()
- {
- Car = newCar,
- PartId = pid
- };
- newCar.PartCars.Add(currentPair);
- });
- }
- }
- context.AddRange(validCars);
- context.SaveChanges();
- return $"Successfully imported {validCars.Count}.";
- }
- public static bool IsValid(object obj)
- {
- var validationContext = new System.ComponentModel.DataAnnotations.ValidationContext(obj);
- var results = new List<ValidationResult>();
- return Validator.TryValidateObject(obj, validationContext, results, true);
- }
- namespace CarDealer.DTO
- {
- public class CarsInsertDTO
- {
- public string Make { get; set; }
- public string Model { get; set; }
- public long TravelledDistance { get; set; }
- public int[] PartsID { get; set; }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement