public static PatientInterview ToPatientInterview(this XmlInterview xmlInterview) { var resultInterview = new PatientInterview(); foreach (var item in xmlInterview.Items) { var xmlHeader = item as XmlHeader; if (xmlHeader != null) { var header = xmlHeader; resultInterview.TransactionId = header.TransactionId; resultInterview.TransactionTime = DateTime.Parse(header.TransactionTime); } var xmlPatients = item as XmlPatients; if (xmlPatients != null) { var patients = xmlPatients.Patient; foreach (var patient in patients) { resultInterview.Patients.Add(patient.ToPatient()); } } } return resultInterview; }
public void Setup() { // Normally I would trust the EF doing the right job // and I'll mock most these repositories var dbFactory = new DbFactory(); _nokRepo = new Repository<NextOfKin>(dbFactory); _gpRepo = new Repository<GpDetails>(dbFactory); _patientRepo = new PatientRepository(dbFactory, _gpRepo); _interviewRepository = new PatientInterviewRepository(dbFactory, _patientRepo); var patientSchema = InterviewReader.GetSchemaFromResources(typeof(XmlInterview).Assembly, XmlPatientsXSDResourcePath); var settings = InterviewReader.CreateSchemaSettings(patientSchema); XmlInterview interviews; using (var fileStream = Assembly.GetExecutingAssembly().GetManifestResourceStream(XmlPatientsPath)) { interviews = InterviewReader.DeserializeXmlInterview(fileStream, settings); } _xmlInterview = interviews.ToPatientInterview(); _gpForTest = _xmlInterview.Patients.First().GpDetails; _interviewRepository.Save(_xmlInterview); }