Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static string ImportProcedures(PetClinicContext context, string xmlString)
- {
- var xmlSerializer = new XmlSerializer(typeof(ProcedureImportDto[]), new XmlRootAttribute("Procedures"));
- var procedureDtos = (ProcedureImportDto[])xmlSerializer.Deserialize(new StringReader(xmlString));
- var animals = context.Animals.ToHashSet();
- var animalAids = context.AnimalAids.ToHashSet();
- var vets = context.Vets.ToHashSet();
- var proceduresList = new List<Procedure>();
- var result = new StringBuilder();
- foreach (var dto in procedureDtos)
- {
- if (IsValid(dto) == false)
- {
- result.AppendLine("Error: Invalid data.");
- continue;
- }
- try
- {
- var procedure = new Procedure
- {
- Animal = animals.First(a => a.PassportSerialNumber == dto.AnimalSerialNumber),
- Vet = vets.First(v => v.Name == dto.VetName),
- DateTime = DateTime.ParseExact(dto.DateTime, "dd-MM-yyyy", CultureInfo.InvariantCulture)
- };
- foreach (var item in dto.AnimalAidNames)
- {
- var animalAidId = animalAids.First(a => a.Name == item.Name).Id;
- if (procedure.ProcedureAnimalAids.Any(paa => paa.AnimalAidId == animalAidId))
- {
- throw new Exception();
- }
- procedure.ProcedureAnimalAids.Add(new ProcedureAnimalAid { AnimalAidId = animalAidId });
- }
- proceduresList.Add(procedure);
- result.AppendLine($"Record successfully imported.");
- }
- catch (Exception)
- {
- result.AppendLine("Error: Invalid data.");
- continue;
- }
- }
- context.Procedures.AddRange(proceduresList);
- context.SaveChanges();
- return result.ToString().Trim();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement