Advertisement
krasizorbov

Import Cars

Nov 15th, 2019
176
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.81 KB | None | 0 0
  1. //11. Import Cars
  2.         public static string ImportCars(CarDealerContext context, string inputJson)
  3.         {
  4.             var desCars = JsonConvert.DeserializeObject<CarsInsertDTO[]>(inputJson);
  5.  
  6.             var validCars = new List<Car>();
  7.  
  8.             var validPartCars = new List<PartCar>();
  9.  
  10.             foreach (var car in desCars)
  11.             {
  12.                 if (IsValid(car))
  13.                 {
  14.                     var newCar = new Car { Make = car.Make, Model = car.Model, TravelledDistance = car.TravelledDistance };
  15.                     validCars.Add(newCar);
  16.                     var partIds = car.PartsID.Distinct().ToList();
  17.  
  18.                     if (partIds == null)
  19.                         continue;
  20.  
  21.                     partIds.ForEach(pid =>
  22.                     {
  23.                         var currentPair = new PartCar()
  24.                         {
  25.                             Car = newCar,
  26.                             PartId = pid
  27.                         };
  28.                         newCar.PartCars.Add(currentPair);
  29.                     });
  30.                 }
  31.             }
  32.             context.AddRange(validCars);
  33.  
  34.             context.SaveChanges();
  35.  
  36.             return $"Successfully imported {validCars.Count}.";
  37.         }
  38.  
  39. public static bool IsValid(object obj)
  40.         {
  41.             var validationContext = new System.ComponentModel.DataAnnotations.ValidationContext(obj);
  42.  
  43.             var results = new List<ValidationResult>();
  44.  
  45.             return Validator.TryValidateObject(obj, validationContext, results, true);
  46.         }
  47.  
  48.  
  49. namespace CarDealer.DTO
  50. {
  51.     public class CarsInsertDTO
  52.     {
  53.         public string Make { get; set; }
  54.         public string Model { get; set; }
  55.         public long TravelledDistance { get; set; }
  56.         public int[] PartsID { get; set; }
  57.     }
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement