Advertisement
dragonbs

Untitled

Dec 2nd, 2023
669
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.68 KB | None | 0 0
  1. public void ImportDataFromJson(string jsonFilePath)
  2. {
  3.     try
  4.     {
  5.         string jsonContent = File.ReadAllText(jsonFilePath);
  6.         List<Pharmacy> pharmacies = JsonConvert.DeserializeObject<List<Pharmacy>>(jsonContent);
  7.  
  8.         foreach (var pharmacy in pharmacies)
  9.         {
  10.             if (IsValidPharmacy(pharmacy))
  11.             {
  12.                 _context.Pharmacies.Add(pharmacy);
  13.  
  14.                 foreach (var medicine in pharmacy.Medicines)
  15.                 {
  16.                     if (IsValidMedicine(medicine, pharmacy.Id))
  17.                     {
  18.                         _context.Medicines.Add(medicine);
  19.                     }
  20.                     else
  21.                     {
  22.                         PrintErrorMessage($"Medicine {medicine.Name} with producer {medicine.Producer} already exists in the current pharmacy.");
  23.                     }
  24.                 }
  25.             }
  26.             else
  27.             {
  28.                 PrintErrorMessage();
  29.             }
  30.         }
  31.  
  32.         _context.SaveChanges();
  33.     }
  34.     catch (Exception ex)
  35.     {
  36.         Console.WriteLine($"An error occurred while importing data from JSON: {ex.Message}");
  37.     }
  38. }
  39.  
  40. public void ImportDataFromXml(string xmlFilePath)
  41. {
  42.     try
  43.     {
  44.         XElement root = XElement.Load(xmlFilePath);
  45.         List<Pharmacy> pharmacies = root.Elements("Pharmacy")
  46.             .Select(pharmacyElement => new Pharmacy
  47.             {
  48.                 Id = Convert.ToInt32(pharmacyElement.Element("Id").Value),
  49.                 Name = pharmacyElement.Element("Name").Value,
  50.                 PhoneNumber = pharmacyElement.Element("PhoneNumber").Value,
  51.                 IsNonStop = Convert.ToBoolean(pharmacyElement.Element("IsNonStop").Value),
  52.                 Medicines = pharmacyElement.Elements("Medicine")
  53.                     .Select(medicineElement => new Medicine
  54.                     {
  55.                         // Map properties accordingly
  56.                     })
  57.                     .ToList()
  58.             })
  59.             .ToList();
  60.  
  61.         foreach (var pharmacy in pharmacies)
  62.         {
  63.             if (IsValidPharmacy(pharmacy))
  64.             {
  65.                 _context.Pharmacies.Add(pharmacy);
  66.  
  67.                 foreach (var medicine in pharmacy.Medicines)
  68.                 {
  69.                     if (IsValidMedicine(medicine, pharmacy.Id))
  70.                     {
  71.                         _context.Medicines.Add(medicine);
  72.                     }
  73.                     else
  74.                     {
  75.                         PrintErrorMessage($"Medicine {medicine.Name} with producer {medicine.Producer} already exists in the current pharmacy.");
  76.                     }
  77.                 }
  78.             }
  79.             else
  80.             {
  81.                 PrintErrorMessage();
  82.             }
  83.         }
  84.  
  85.         _context.SaveChanges();
  86.     }
  87.     catch (Exception ex)
  88.     {
  89.         Console.WriteLine($"An error occurred while importing data from XML: {ex.Message}");
  90.     }
  91. }
  92.  
  93. private bool IsValidMedicine(Medicine medicine, int currentPharmacyId)
  94. {
  95.     // Check if the medicine already exists in the current pharmacy
  96.     var existingMedicine = _context.Medicines
  97.         .FirstOrDefault(m => m.Name == medicine.Name && m.Producer == medicine.Producer && m.PharmacyId == currentPharmacyId);
  98.  
  99.     // Check if the medicine exists in another pharmacy with the same name and producer
  100.     var sameMedicineInOtherPharmacy = _context.Medicines
  101.         .Any(m => m.Name == medicine.Name && m.Producer == medicine.Producer && m.PharmacyId != currentPharmacyId);
  102.  
  103.     return existingMedicine == null || sameMedicineInOtherPharmacy;
  104. }
  105.  
  106. private void PrintErrorMessage(string message)
  107. {
  108.     Console.WriteLine($"Invalid Data! {message}");
  109. }
  110.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement