示例#1
0
        public static void PubliserLeveranse(string id, NinRavenDb arkiv, IUserDatabase userDb)
        {
            Log.i("DDL", "Publiser dataleveranse #" + id);

            var dataDelivery = arkiv.HentDataleveranse(id);

            switch (dataDelivery.Publisering)
            {
            case Status.Gjeldende:
                throw new Exception("Leveransen er allerede gjeldende.");

            case Status.Utgått:
                throw new Exception("Leveransen er utgått og kan ikke publiseres.");
            }

            var dataDeliveryMsSql = new Dataleveranse(dataDelivery);

            MapProjection.ConvertGeometry(dataDeliveryMsSql);

            var userInstitution = userDb.GetUserInstitution(dataDelivery.Username);

            foreach (var natureArea in dataDeliveryMsSql.Metadata.NatureAreas)
            {
                natureArea.Institution = userInstitution;
            }

            SqlServer.DeleteDataDelivery(dataDeliveryMsSql.Metadata.UniqueId.LocalId);
            SqlServer.LagreDataleveranse(dataDeliveryMsSql);

            MarkerSistGjeldendeLeveranseSomUtgått(arkiv, dataDelivery);

            dataDelivery.Publisering = Status.Gjeldende;
            arkiv.LagreDataleveranse(dataDelivery);
            arkiv.SaveChanges();
        }
示例#2
0
        public override void Execute()
        {
            Types.RavenDb.Dataleveranse dataleveranse;
            using (var streamReader = File.OpenText(dataFile))
            {
                var fileContent = streamReader.ReadToEnd();

                XDocument dataDeliveryXml = XDocument.Parse(fileContent);
                dataleveranse = DataleveranseXmlGreier.ParseDataDelivery(dataDeliveryXml);
            }
            //DataleveranseXmlGreier.ValidateDataDeliveryContent(dataDelivery);

            var dataDeliveryMsSql = new Dataleveranse(dataleveranse);

            MapProjection.ConvertGeometry(dataDeliveryMsSql);
            foreach (var natureArea in dataDeliveryMsSql.Metadata.NatureAreas)
            {
                natureArea.Institution = "Institution";
            }

            dataDeliveryMsSql.Id      = "1";
            dataDeliveryMsSql.Created = DateTime.Now;
            SqlServer.DeleteDataDelivery(dataDeliveryMsSql.Metadata.UniqueId.LocalId);
            SqlServer.LagreDataleveranse(dataDeliveryMsSql);
        }
示例#3
0
        public static GridLayer FromXml(XDocument gridXml)
        {
            var gridLayer = (GridLayer)ParseXml(gridXml);

            if (gridXml.Root.Name.LocalName.Equals("OmraadeKart"))
            {
                foreach (var gridLayerCell in gridLayer.Cells)
                {
                    MapProjection.ConvertGeometry((GridLayerCellCustom)gridLayerCell);
                }
            }
            return(gridLayer);
        }
示例#4
0
        public IActionResult GetExpiredMetadatasByNatureAreaLocalId(string localId)
        {
            var metadatas = SqlServer.GetMetadatasByNatureAreaLocalIds(new List <string> {
                localId
            }, false);

            var dataDeliveriesWithNatureArea = new List <Dataleveranse>();

            if (metadatas.Count == 1)
            {
                var dataDeliveries = ninRavenDb.HentDataleveranserGjeldendeOgUtgåtte(metadatas[0].UniqueId.LocalId);

                foreach (var dataDelivery in dataDeliveries)
                {
                    foreach (var natureArea in dataDelivery.Metadata.NatureAreas)
                    {
                        if (!natureArea.UniqueId.LocalId.Equals(new Guid(localId)))
                        {
                            continue;
                        }

                        dataDelivery.Metadata.NatureAreas.Clear();
                        var natureAreaExport = new Nin.Types.RavenDb.NatureAreaExport(natureArea);
                        AddCodeHierarchyInfo(natureAreaExport.Parameters);
                        dataDelivery.Metadata.NatureAreas.Add(natureAreaExport);
                        MapProjection.ConvertGeometry(dataDelivery, metadatas[0].GetAreaEpsgCode());
                        natureAreaExport.Areas =
                            SqlServer.GetAreaLinkInfos(natureAreaExport.Area, natureAreaExport.AreaEpsgCode);
                        dataDeliveriesWithNatureArea.Add(dataDelivery);
                        break;
                    }
                }
            }

            var metadatasJson = JsonConvert.SerializeObject(dataDeliveriesWithNatureArea, jsonSerializerSettings);

            var contentResult = new NinJsonResult(metadatasJson);

            return(contentResult);
        }