Solvberget.Domain.Implementation.AlephRepository.PopulateDocument C# (CSharp) Method

PopulateDocument() private method

private PopulateDocument ( System.Xml.Linq.XElement record, bool populateLight ) : Document
record System.Xml.Linq.XElement
populateLight bool
return Solvberget.Domain.DTO.Document
        private Document PopulateDocument(XElement record, bool populateLight)
        {
            var xmlDoc = XDocument.Parse(record.ToString());
            var nodes = xmlDoc.Root.Descendants("oai_marc");

            var docTypeString = Document.GetVarfield(nodes, "019", "b");

            Document returnDocument;

            if (docTypeString != null)
            {
                var className = GetDocumentType(docTypeString.Split(','));

                var type = Type.GetType(className);

                var methodInfo = type.GetMethod(populateLight ? "GetObjectFromFindDocXmlBsMarcLight" : "GetObjectFromFindDocXmlBsMarc");

                returnDocument = (Document)methodInfo.Invoke(type, BindingFlags.InvokeMethod | BindingFlags.Default, null, new object[] { record.ToString() }, CultureInfo.CurrentCulture);

            }
            else
            {
                returnDocument = Document.GetObjectFromFindDocXmlBsMarcLight(record.ToString());
            }
            new Thread(() => _imageRepository.GetDocumentImage(returnDocument.DocumentNumber, null, returnDocument,
                                                               false)).Start();
            return returnDocument;
        }