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);
        }