Advertisement
dragonbs

xml

Dec 2nd, 2023
806
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.60 KB | None | 0 0
  1. using Medicines.Data;
  2. using System;
  3. using System.Globalization;
  4. using System.IO;
  5. using System.Linq;
  6. using System.Xml.Linq;
  7.  
  8. public class Deserializer
  9. {
  10.     private readonly MedicinesContext _context;
  11.  
  12.     public Deserializer(MedicinesContext context)
  13.     {
  14.         _context = context;
  15.     }
  16.  
  17.     public void ImportPharmaciesFromXml(string xmlFilePath)
  18.     {
  19.         try
  20.         {
  21.             XElement root = XElement.Load(xmlFilePath);
  22.             var pharmacies = root.Elements("Pharmacy")
  23.                 .Select(pharmacyElement => new Pharmacy
  24.                 {
  25.                     Id = Convert.ToInt32(pharmacyElement.Element("Id").Value),
  26.                     Name = pharmacyElement.Element("Name").Value,
  27.                     PhoneNumber = pharmacyElement.Element("PhoneNumber").Value,
  28.                     IsNonStop = Convert.ToBoolean(pharmacyElement.Element("IsNonStop").Value),
  29.                     Medicines = pharmacyElement.Elements("Medicine")
  30.                         .Select(medicineElement => new Medicine
  31.                         {
  32.                            
  33.                         })
  34.                         .ToList()
  35.                 })
  36.                 .ToList();
  37.  
  38.             foreach (var pharmacy in pharmacies)
  39.             {
  40.                 if (IsValidPharmacy(pharmacy))
  41.                 {
  42.                     _context.Pharmacies.Add(pharmacy);
  43.  
  44.                     foreach (var medicine in pharmacy.Medicines)
  45.                     {
  46.                         if (IsValidMedicine(medicine, pharmacy.Id))
  47.                         {
  48.                             _context.Medicines.Add(medicine);
  49.                         }
  50.                         else
  51.                         {
  52.                             PrintErrorMessage($"Medicine {medicine.Name} with producer {medicine.Producer} has validation errors and was not imported.");
  53.                         }
  54.                     }
  55.                 }
  56.                 else
  57.                 {
  58.                     PrintErrorMessage($"Pharmacy {pharmacy.Name} has validation errors and was not imported.");
  59.                 }
  60.             }
  61.  
  62.             _context.SaveChanges();
  63.         }
  64.         catch (Exception ex)
  65.         {
  66.             Console.WriteLine($"An error occurred while importing data from XML: {ex.Message}");
  67.         }
  68.     }
  69.  
  70.     private bool IsValidPharmacy(Pharmacy pharmacy)
  71.     {
  72.  
  73.     }
  74.  
  75.     private bool IsValidMedicine(Medicine medicine, int currentPharmacyId)
  76.     {
  77.        
  78.     }
  79.  
  80.     private void PrintErrorMessage(string message)
  81.     {
  82.         Console.WriteLine($"Invalid Data! {message}");
  83.     }
  84. }
  85.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement