public void StoreDataDeliveryTest()
        {
            var identification = new Identification
            {
                LocalId   = Guid.NewGuid(),
                NameSpace = "DataAccessTest",
                VersionId = "1.0"
            };

            var natureArea = new NatureArea
            {
                UniqueId = identification,
                Version  = "2.0",
                Nivå     = NatureLevel.Natursystem,
                //Area = SqlGeometry.STPolyFromText(new SqlChars("POLYGON ((5 5, 10 5, 10 10, 5 5))"), 0),
                //Area = SqlGeometry.STPolyFromText(new SqlChars("POLYGON ((-11 55, -10 35, -5.5 36, -1 36, 1 38, 5 38, 11 38, 14 36, 26 33, 29 36, 26 39, 29 46, 39 47, 40 49, 27 56, 27 60, 25 60, 20 58, 21 56, 19 55, 11 55, 10 57, 7 57, 8 54, 3 53, -2 60, -8 58, -11 55))"), 0),
                Area         = "POLYGON ((-11 55, -10 35, -5.5 36, -1 36, 1 38, 5 38, 11 38, 14 36, 26 33, 29 36, 26 39, 29 46, 39 47, 40 49, 27 56, 27 60, 25 60, 20 58, 21 56, 19 55, 11 55, 10 57, 7 57, 8 54, 3 53, -2 60, -8 58, -11 55))",
                AreaEpsgCode = 25832,
                Surveyer     = new Contact
                {
                    Company       = "Norconsult informasjonssystemer AS",
                    ContactPerson = "Magne Tøndel",
                    Email         = "*****@*****.**",
                    Phone         = "+4748164614",
                    Homesite      = "www.nois.no"
                },
                Surveyed    = new DateTime(2015, 9, 18, 19, 00, 00),
                Description = "Description"
            };

            natureArea.Documents.Add(new Document
            {
                Title       = "NatureAreaDocumentOne",
                Description = "Description",
                Author      = new Contact
                {
                    Company       = "Norconsult informasjonssystemer AS",
                    ContactPerson = "Magne Tøndel",
                    Email         = "*****@*****.**",
                    Phone         = "+4748164614",
                    Homesite      = "www.nois.no"
                },
                FileName = "C:\\Document\\TestNatureAreaOne"
            });
            natureArea.Documents.Add(new Document
            {
                Title       = "NatureAreaDocumentTwo",
                Description = "Description",
                Author      = new Contact
                {
                    Company       = "Norconsult informasjonssystemer AS",
                    ContactPerson = "Magne Tøndel",
                    Email         = "*****@*****.**",
                    Phone         = "+4748164614",
                    Homesite      = "www.nois.no"
                },
                FileName = "C:\\Document\\TestNatureAreaTwo"
            });

            var metadata = new Metadata
            {
                UniqueId           = identification,
                Program            = "Program",
                ProjectName        = "ProjectName",
                ProjectDescription = "ProjectDescription",

                Quality = new Quality
                {
                    MeasuringMethod       = "Terrengmålt: Uspesifisert måleinstrument",
                    Accuracy              = 1,
                    Visibility            = "Fullt ut synlig/gjenfinnbar i terrenget",
                    MeasuringMethodHeight = "Terrengmålt: Totalstasjon",
                    AccuracyHeight        = 2,
                    MaxDeviation          = 3,
                },
            };

            metadata.NatureAreas.Add(natureArea);

            metadata.Documents.Add(
                new Document
            {
                Title       = "NatureAreaDocument",
                Description = "Description",
                FileName    = "C:\\Document\\TestMetadata"
            }
                );

            var dataDelivery = new Dataleveranse
            {
                Name         = "DataDeliveryTest",
                DeliveryDate = DateTime.Now,
                Metadata     = metadata,
                Created      = new DateTime(2015, 9, 17, 12, 30, 30),
                Publisering  = Status.Importert
            };

            var id = dbInterface.LagreDataleveranse(dataDelivery);

            Assert.IsNotEmpty(id);
        }
        private static Metadata ParseMetadata(XElement xElement)
        {
            var metadata = new Metadata();

            if (xElement == null)
            {
                return(metadata);
            }
            var metadataElement = NinXmlParser.GetChildElements(xElement, "Metadata", TillatAntall.AkkuratEn);

            var e0 = metadataElement[0];
            var metadataUniqueIds =
                NinXmlParser.GetChildElements(e0, "unikId", TillatAntall.AkkuratEn);

            metadata.UniqueId = ParseIdentification(metadataUniqueIds[0]);

            var metadataPrograms =
                NinXmlParser.GetChildElements(e0, "program", TillatAntall.AkkuratEn);

            metadata.Program = metadataPrograms[0].Value;

            var metadataProjectNames =
                NinXmlParser.GetChildElements(e0, "prosjektnavn", TillatAntall.AkkuratEn);

            metadata.ProjectName = metadataProjectNames[0].Value;

            var metadataProjectDescriptions = NinXmlParser.GetChildElements(e0, "prosjektbeskrivelse",
                                                                            TillatAntall.MaksimaltEn);

            if (metadataProjectDescriptions.Count == 1)
            {
                metadata.ProjectDescription = metadataProjectDescriptions[0].Value;
            }

            var metadataPurposes = NinXmlParser.GetChildElements(e0, "formaal",
                                                                 TillatAntall.MaksimaltEn);

            if (metadataPurposes.Count == 1)
            {
                metadata.Purpose = metadataPurposes[0].Value;
            }

            var metadataContractors =
                NinXmlParser.GetChildElements(e0, "oppdragsgiver", TillatAntall.AkkuratEn);

            metadata.Contractor = NinXmlParser.ParseContact(metadataContractors[0]);

            var metadataOwners = NinXmlParser.GetChildElements(e0, "eier", TillatAntall.AkkuratEn);

            metadata.Owner = NinXmlParser.ParseContact(metadataOwners[0]);

            var metadataSurveyedFromDates = NinXmlParser.GetChildElements(e0, "kartlagtFraDato",
                                                                          TillatAntall.AkkuratEn);

            metadata.SurveyedFrom = Convert.ToDateTime(metadataSurveyedFromDates[0].Value);

            var metadataSurveyedToDates =
                NinXmlParser.GetChildElements(e0, "kartlagtTilDato", TillatAntall.AkkuratEn);

            metadata.SurveyedTo = Convert.ToDateTime(metadataSurveyedToDates[0].Value);

            var metadataSurveyScales = NinXmlParser.GetChildElements(e0, "kartleggingsMaalestokk",
                                                                     TillatAntall.AkkuratEn);

            metadata.SurveyScale = metadataSurveyScales[0].Value;

            var metadataResolutions = NinXmlParser.GetChildElements(e0, "opploesning",
                                                                    TillatAntall.MaksimaltEn);

            if (metadataResolutions.Count == 1)
            {
                metadata.Resolution = metadataResolutions[0].Value;
            }

            var metadataAreas =
                NinXmlParser.GetChildElements(e0, "dekningsOmraade", TillatAntall.AkkuratEn);
            int metadataAreaEspgCode;

            metadata.Area         = NinXmlParser.ParseGeometry(metadataAreas[0], out metadataAreaEspgCode);
            metadata.AreaEpsgCode = metadataAreaEspgCode;

            var metadataQualities =
                NinXmlParser.GetChildElements(e0, "kvalitet", TillatAntall.AkkuratEn);

            metadata.Quality = ParseQuality(metadataQualities[0]);

            var metadataDocuments = NinXmlParser.GetChildElements(e0, "dokumenter",
                                                                  TillatAntall.NullEllerFlere);

            foreach (var metadataDocument in metadataDocuments)
            {
                metadata.Documents.Add(NinXmlParser.ParseDocument(metadataDocument));
            }

            var metadataNatureAreas = NinXmlParser.GetChildElements(e0, "naturOmraader",
                                                                    TillatAntall.EnEllerFlere);

            foreach (var metadataNatureArea in metadataNatureAreas)
            {
                metadata.NatureAreas.AddRange(ParseNatureArea(metadataNatureArea));
            }

            var metadataVariableDefinitions = NinXmlParser.GetChildElements(e0, "variabelDefinisjoner",
                                                                            TillatAntall.EnEllerFlere);

            foreach (var metadataVariableDefinition in metadataVariableDefinitions)
            {
                metadata.VariabelDefinitions.Add(ParseVariableDefinition(metadataVariableDefinition));
            }

            return(metadata);
        }