Solvberget.Domain.DTO.Document.FillProperties C# (CSharp) Method

FillProperties() protected method

protected FillProperties ( string xml ) : void
xml string
return void
        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");

            }
        }

Usage Example

Exemplo n.º 1
0
 public static Document GetObjectFromFindDocXmlBsMarc(string xml)
 {
     var document = new Document();
     document.FillProperties(xml);
     return document;
 }