protected virtual void FillProperties(string xml)
{
FillPropertiesLight(xml);
var xmlDoc = XDocument.Parse(xml);
if (xmlDoc.Root != null)
{
var nodes = xmlDoc.Root.Descendants("oai_marc");
var targetGrpString = GetFixfield(nodes, "008", 22, 22);
if (!string.IsNullOrEmpty(targetGrpString))
TargetGroup = targetGrpString[0].Equals('j') ? "Barn og ungdom" : "Voksne";
IsFiction = GetFixfield(nodes, "008", 33, 33).Equals("1") ? "Fiksjon" : "Fakta";
//Only get languages (041a) if language in base equals "Flerspråklig"
if (Language.Equals("Flerspråklig"))
{
var languages = GetVarfield(nodes, "041", "a").SplitByLength(3).ToList();
for (var i = 0; i < languages.Count(); i++)
{
string languageLookupValue = null;
LanguageDictionary.TryGetValue(languages[i], out languageLookupValue);
languages[i] = languageLookupValue ?? "Språk er ikke registrert";
}
Languages = languages;
}
LocationCode = GetVarfield(nodes, "090", "d");
var involvedPersonsAsString = GetVarfield(nodes, "245", "c");
if (involvedPersonsAsString != null)
{
ResponsiblePersons = involvedPersonsAsString.Split(';');
}
PlacePublished = GetVarfield(nodes, "260", "a");
Publisher = GetVarfield(nodes, "260", "b");
var publisherType = DocType;
string publisherTypeLookup = null;
if (publisherType != null) PublisherTypeDictionary.TryGetValue(publisherType, out publisherTypeLookup);
PublisherType = publisherTypeLookup ?? publisherType;
SeriesTitle = GetVarfield(nodes, "440", "a");
SeriesNumber = GetVarfield(nodes, "440", "v");
}
}