コード例 #1
0
        public SimpleMetadataViewModel GetMetadataModel(string uuid)
        {
            SimpleMetadata metadata = new SimpleMetadata(_geoNorge.GetRecordByUuid(uuid));

            var model = new SimpleMetadataViewModel()
            {
                Uuid             = metadata.Uuid,
                Title            = metadata.Title,
                HierarchyLevel   = metadata.HierarchyLevel,
                ParentIdentifier = metadata.ParentIdentifier,
                MetadataStandard = metadata.MetadataStandard,
                Abstract         = metadata.Abstract != null?metadata.Abstract.Replace("...", "") : "",

                                       ContactMetadata  = new Contact(metadata.ContactMetadata, "pointOfContact"),
                                       ContactPublisher = new Contact(metadata.ContactPublisher, "publisher"),
                                       ContactOwner     = new Contact(metadata.ContactOwner, "owner"),

                                       SupplementalDescription = metadata.SupplementalDescription,
                                       SpecificUsage           = metadata.SpecificUsage,

                                       ProcessHistory = metadata.ProcessHistory,
                                       ProductPageUrl = metadata.ProductPageUrl,

                                       DistributionUrl      = metadata.DistributionDetails != null ? metadata.DistributionDetails.URL : null,
                                       DistributionProtocol = metadata.DistributionDetails != null ? metadata.DistributionDetails.Protocol : null,

                                       MaintenanceFrequency = metadata.MaintenanceFrequency,
                                       DateUpdated          = metadata.DateUpdated,
                                       DateMetadataUpdated  = metadata.DateMetadataUpdated,

                                       KeywordsPlace = CreateListOfKeywords(SimpleKeyword.Filter(metadata.Keywords, SimpleKeyword.TYPE_PLACE, null)),
                                       KeywordsNationalInitiative = CreateListOfKeywords(SimpleKeyword.Filter(metadata.Keywords, null, SimpleKeyword.THESAURUS_NATIONAL_INITIATIVE)),
                                       KeywordsNationalTheme      = CreateListOfKeywords(SimpleKeyword.Filter(metadata.Keywords, null, SimpleKeyword.THESAURUS_NATIONAL_THEME)),
                                       KeywordsEnglish            = CreateDictionaryOfEnglishKeywords(metadata.Keywords),

                                       UseConstraints           = metadata.Constraints != null ? metadata.Constraints.UseConstraints : null,
                                       OtherConstraintsLink     = metadata.Constraints != null ? metadata.Constraints.OtherConstraintsLink : null,
                                       OtherConstraintsLinkText = metadata.Constraints != null ? metadata.Constraints.OtherConstraintsLinkText : null,
                                       OtherConstraintsAccess   = metadata.Constraints != null ? metadata.Constraints.OtherConstraintsAccess : null,

                                       EnglishTitle    = metadata.EnglishTitle,
                                       EnglishAbstract = metadata.EnglishAbstract,
                                       EnglishContactMetadataOrganization  = metadata.ContactMetadata != null ? metadata.ContactMetadata.OrganizationEnglish : null,
                                       EnglishContactPublisherOrganization = metadata.ContactPublisher != null ? metadata.ContactPublisher.OrganizationEnglish : null,
                                       EnglishContactOwnerOrganization     = metadata.ContactOwner != null ? metadata.ContactOwner.OrganizationEnglish : null
            };

            if (metadata.BoundingBox != null)
            {
                model.BoundingBoxEast  = ConvertCoordinateWithCommaToPoint(metadata.BoundingBox.EastBoundLongitude);
                model.BoundingBoxWest  = ConvertCoordinateWithCommaToPoint(metadata.BoundingBox.WestBoundLongitude);
                model.BoundingBoxNorth = ConvertCoordinateWithCommaToPoint(metadata.BoundingBox.NorthBoundLatitude);
                model.BoundingBoxSouth = ConvertCoordinateWithCommaToPoint(metadata.BoundingBox.SouthBoundLatitude);
            }

            // Translations
            model.TitleFromSelectedLanguage = model.TitleTranslated();
            return(model);
        }
コード例 #2
0
        public void SaveMetadataModel(SimpleMetadataViewModel model, string username)
        {
            SimpleMetadata metadata = new SimpleMetadata(_geoNorge.GetRecordByUuid(model.Uuid));

            UpdateMetadataFromModel(model, metadata);

            _geoNorge.MetadataUpdate(metadata.GetMetadata(), CreateAdditionalHeadersWithUsername(username, model.Published));
        }
コード例 #3
0
 private void SaveMetadataToCswServer(SimpleMetadataViewModel model)
 {
     try
     {
         _metadataService.SaveMetadataModel(model, GetUsername());
         TempData["success"] = UI.Metadata_Edit_Saved_Success;
     }
     catch (Exception e)
     {
         Log.Error("Error while editing metadata with uuid = " + model.Uuid, e);
         TempData["failure"] = String.Format(UI.Metadata_Edit_Saved_Failure, e.Message);
     }
 }
コード例 #4
0
        private void PrepareViewBagForEditing(SimpleMetadataViewModel model)
        {
            ViewBag.MaintenanceFrequencyValues = new SelectList(GetListOfMaintenanceFrequencyValues(), "Key", "Value", model.MaintenanceFrequency);

            ViewBag.CreateProductSheetUrl =
                System.Web.Configuration.WebConfigurationManager.AppSettings["ProductSheetGeneratorUrl"] + model.Uuid;
            ViewBag.DatasetUrl =
                System.Web.Configuration.WebConfigurationManager.AppSettings["DownloadDatasetUrl"];
            ViewBag.GeoNetworkViewUrl = GeoNetworkUtil.GetViewUrl(model.Uuid);
            ViewBag.GeoNetworkXmlDownloadUrl = GeoNetworkUtil.GetXmlDownloadUrl(model.Uuid);
            var seoUrl = new SeoUrl("", model.Title);
            ViewBag.KartkatalogViewUrl = System.Web.Configuration.WebConfigurationManager.AppSettings["KartkatalogUrl"] + "Metadata/" + seoUrl.Title + "/" + model.Uuid;
            ViewBag.predefinedDistributionProtocols = new SelectList(GetListOfpredefinedDistributionProtocols(), "Key", "Value");

            Dictionary<string, string> OrganizationList = GetListOfOrganizations();

            if (string.IsNullOrEmpty(model.ContactMetadata.Organization))
            {
                if (Request.Form["ContactMetadata.Organization.Old"] != null || !string.IsNullOrWhiteSpace(Request.Form["ContactMetadata.Organization.Old"]))
                {
                    model.ContactMetadata.Organization = Request.Form["ContactMetadata.Organization.Old"].ToString();
                }
            }

            if (string.IsNullOrEmpty(model.ContactPublisher.Organization))
            {
                if (Request.Form["ContactPublisher.Organization.Old"] != null || !string.IsNullOrWhiteSpace(Request.Form["ContactPublisher.Organization.Old"]))
                {
                    model.ContactPublisher.Organization = Request["ContactPublisher.Organization.Old"].ToString();
                }
            }

            if (string.IsNullOrEmpty(model.ContactOwner.Organization))
            {
                if (Request.Form["ContactOwner.Organization.Old"] != null || !string.IsNullOrWhiteSpace(Request.Form["ContactOwner.Organization.Old"]))
                {
                    model.ContactOwner.Organization = Request["ContactOwner.Organization.Old"].ToString();
                }
            }

            ViewBag.OrganizationContactMetadataValues = new SelectList(OrganizationList, "Key", "Value", model.ContactMetadata.Organization);
            ViewBag.OrganizationContactPublisherValues = new SelectList(OrganizationList, "Key", "Value", model.ContactPublisher.Organization);
            ViewBag.OrganizationContactOwnerValues = new SelectList(OrganizationList, "Key", "Value", model.ContactOwner.Organization);

            ViewBag.NationalThemeValues = new SelectList(GetListOfNationalTheme(), "Key", "Value");
            ViewBag.NationalInitiativeValues = new SelectList(GetListOfNationalInitiative(), "Key", "Value");
            ViewBag.InspireValues = new SelectList(GetListOfInspire(), "Key", "Value");

            ViewBag.UseConstraintValues = new SelectList(GetListOfRestrictionValues(), "Key", "Value", model.UseConstraints);
            ViewBag.LicenseTypesValues = new SelectList(GetListOfLicenseTypes(), "Key", "Value", model.OtherConstraintsLink);

            ViewBag.ValideringUrl = System.Web.Configuration.WebConfigurationManager.AppSettings["ValideringUrl"] + "api/metadata/" + model.Uuid;

            ViewBag.Municipalities = new KomDataService().GetListOfMunicipalityOrganizations();
        }
コード例 #5
0
 private bool HasAccessToMetadata(SimpleMetadataViewModel model)
 {
     string organization = GetSecurityClaim("organization");
     string role = GetSecurityClaim("role");
     bool isAdmin = !string.IsNullOrWhiteSpace(role) && role.Equals("nd.metadata_admin");
     return isAdmin || model.HasAccess(organization);
 }
コード例 #6
0
        public ActionResult Edit(string uuid, string action, SimpleMetadataViewModel model, string ignoreValidationError)
        {
            ViewBag.IsAdmin = "0";
            string role = GetSecurityClaim("role");
            if (!string.IsNullOrWhiteSpace(role) && role.Equals("nd.metadata_admin"))
            {
                ViewBag.IsAdmin = "1";
            }

            if (ModelState.IsValid)
            {

                    SaveMetadataToCswServer(model);
                    if (action.Equals(UI.Button_Validate))
                    {
                        ValidateMetadata(uuid);
                    }

                    return RedirectToAction("Edit", new { uuid = model.Uuid });

            }
            else
            {
                string messages = string.Join("; ", ModelState.Values
                                        .SelectMany(x => x.Errors)
                                        .Select(x => x.ErrorMessage));
                Log.Debug("Model for " + uuid + " is not valid: " + messages);
            }

            PrepareViewBagForEditing(model);
            return View(model);
        }
コード例 #7
0
        private void UpdateMetadataFromModel(SimpleMetadataViewModel model, SimpleMetadata metadata)
        {
            metadata.ParentIdentifier = model.ParentIdentifier;

            metadata.Title    = model.Title;
            metadata.Abstract = model.Abstract;

            metadata.SupplementalDescription = model.SupplementalDescription;

            metadata.SpecificUsage = !string.IsNullOrWhiteSpace(model.SpecificUsage) ? model.SpecificUsage : " ";

            metadata.ProcessHistory = !string.IsNullOrWhiteSpace(model.ProcessHistory) ? model.ProcessHistory : " ";

            metadata.ProductPageUrl = model.ProductPageUrl;

            var contactMetadata = model.ContactMetadata.ToSimpleContact();

            if (!string.IsNullOrWhiteSpace(model.EnglishContactMetadataOrganization))
            {
                contactMetadata.OrganizationEnglish = model.EnglishContactMetadataOrganization;
            }

            metadata.ContactMetadata = contactMetadata;

            var contactPublisher = model.ContactPublisher.ToSimpleContact();

            if (!string.IsNullOrWhiteSpace(model.EnglishContactPublisherOrganization))
            {
                contactPublisher.OrganizationEnglish = model.EnglishContactPublisherOrganization;
            }

            metadata.ContactPublisher = contactPublisher;

            var contactOwner = model.ContactOwner.ToSimpleContact();

            if (!string.IsNullOrWhiteSpace(model.EnglishContactOwnerOrganization))
            {
                contactOwner.OrganizationEnglish = model.EnglishContactOwnerOrganization;
            }

            metadata.ContactOwner = contactOwner;

            if (!string.IsNullOrWhiteSpace(model.BoundingBoxEast))
            {
                metadata.BoundingBox = new SimpleBoundingBox
                {
                    EastBoundLongitude = model.BoundingBoxEast,
                    WestBoundLongitude = model.BoundingBoxWest,
                    NorthBoundLatitude = model.BoundingBoxNorth,
                    SouthBoundLatitude = model.BoundingBoxSouth
                };
            }

            string accessConstraintsSelected = "";

            if (!string.IsNullOrEmpty(model.OtherConstraintsAccess))
            {
                if (model.OtherConstraintsAccess.ToLower() == "no restrictions")
                {
                    accessConstraintsSelected = "otherRestrictions";
                }
            }



            if (!string.IsNullOrWhiteSpace(model.MaintenanceFrequency))
            {
                metadata.MaintenanceFrequency = model.MaintenanceFrequency;
            }

            metadata.DateUpdated = model.DateUpdated;

            //Keep if other keywords than in model
            List <SimpleKeyword> keywordsNotInModel = metadata.Keywords.Where(k => k.Thesaurus != SimpleKeyword.THESAURUS_NATIONAL_INITIATIVE &&
                                                                              k.Thesaurus != SimpleKeyword.THESAURUS_NATIONAL_THEME &&
                                                                              k.Type != SimpleKeyword.TYPE_PLACE).ToList();
            //Get keywords in model
            List <SimpleKeyword> keywordsToUpdate = model.GetAllKeywords();

            bool hasEnglishFields = false;

            // don't create PT_FreeText fields if it isn't necessary
            if (!string.IsNullOrWhiteSpace(model.EnglishTitle))
            {
                metadata.EnglishTitle = model.EnglishTitle;
                hasEnglishFields      = true;
            }
            if (!string.IsNullOrWhiteSpace(model.EnglishAbstract))
            {
                metadata.EnglishAbstract = model.EnglishAbstract;
                hasEnglishFields         = true;
            }

            if (hasEnglishFields)
            {
                metadata.SetLocale(SimpleMetadata.LOCALE_ENG);
            }


            metadata.Keywords = keywordsNotInModel.Concat(keywordsToUpdate).ToList();


            metadata.DistributionDetails = new SimpleDistributionDetails
            {
                URL      = model.DistributionUrl,
                Protocol = model.DistributionProtocol
            };


            metadata.Constraints = new SimpleConstraints
            {
                UseConstraints           = "license",
                OtherConstraints         = !string.IsNullOrWhiteSpace(accessConstraintsSelected) ? accessConstraintsSelected : null,
                OtherConstraintsLink     = !string.IsNullOrWhiteSpace(model.OtherConstraintsLink) ? model.OtherConstraintsLink : null,
                OtherConstraintsLinkText = !string.IsNullOrWhiteSpace(model.OtherConstraintsLinkText) ? model.OtherConstraintsLinkText : null,
                OtherConstraintsAccess   = !string.IsNullOrWhiteSpace(model.OtherConstraintsAccess) ? model.OtherConstraintsAccess : null
            };



            SetDefaultValuesOnMetadata(metadata);
        }
コード例 #8
0
        public MetaDataEntry ValidateMetadata(string uuid)
        {
            MetaDataEntry metadata = new MetaDataEntry();

            metadata.Errors = new List <Error>();

            try
            {
                Kartverket.MetadataEditor.Models.MetadataViewModel model = _metadataService.GetMetadataModel(uuid);


                if (model != null)
                {
                    string role = GetSecurityClaim("role");
                    if (!string.IsNullOrWhiteSpace(role) && role.Equals("nd.metadata_admin"))
                    {
                        model.ValidateAllRequirements = true;
                    }

                    metadata.Uuid             = model.Uuid;
                    metadata.Title            = model.Title;
                    metadata.OrganizationName = model.ContactMetadata.Organization != null ? model.ContactMetadata.Organization : "";
                    metadata.ContactEmail     = model.ContactMetadata.Email != null ? model.ContactMetadata.Email : "";

                    if (model.MetadataStandard == "ISO19115:Norsk versjon")
                    {
                        Kartverket.MetadataEditor.Models.SimpleMetadataService   _simpleMetadataService = new Kartverket.MetadataEditor.Models.SimpleMetadataService();
                        Kartverket.MetadataEditor.Models.SimpleMetadataViewModel modelSimple            = _simpleMetadataService.GetMetadataModel(uuid);

                        Validate(modelSimple);

                        var errors = ModelState.Where(n => n.Value.Errors.Count > 0).ToList();

                        foreach (var error in errors)
                        {
                            metadata.Errors.Add(new Error {
                                Key = error.Key.ToString(), Message = error.Value.Errors[0].ErrorMessage
                            });
                        }
                    }

                    else
                    {
                        var thumb = model.Thumbnails.Where(t => t.Type == "thumbnail" || t.Type == "miniatyrbilde");
                        if (thumb.Count() == 0)
                        {
                            ModelState.AddModelError("ThumbnailMissing", "Det er påkrevd å fylle ut illustrasjonsbilde");
                        }
                        else if (thumb.Count() > 0)
                        {
                            try
                            {
                                //Disable SSL sertificate errors
                                System.Net.ServicePointManager.ServerCertificateValidationCallback +=
                                    delegate(object sender, System.Security.Cryptography.X509Certificates.X509Certificate certificate,
                                             System.Security.Cryptography.X509Certificates.X509Chain chain,
                                             System.Net.Security.SslPolicyErrors sslPolicyErrors)
                                {
                                    return(true); // **** Always accept
                                };
                                using (var client = new HttpClient())
                                {
                                    client.DefaultRequestHeaders.Accept.Clear();
                                    string Url = thumb.Select(t => t.URL).FirstOrDefault().ToString();
                                    HttpResponseMessage response = client.GetAsync(new Uri(Url)).Result;
                                    if (response.StatusCode != HttpStatusCode.OK)
                                    {
                                        metadata.Errors.Add(new Error {
                                            Key = "ThumbnailNotFound", Message = "Feil ressurslenke til illustrasjonsbilde"
                                        });
                                    }
                                }
                            }
                            catch (Exception ex)
                            {
                                metadata.Errors.Add(new Error {
                                    Key = "Error", Message = ex.Message
                                });
                            }
                        }

                        Validate(model);

                        var errors = ModelState.Where(n => n.Value.Errors.Count > 0).ToList();

                        foreach (var error in errors)
                        {
                            metadata.Errors.Add(new Error {
                                Key = error.Key.ToString(), Message = error.Value.Errors[0].ErrorMessage
                            });
                        }
                    }
                }
            }
            catch (Exception ex) {
                metadata.Errors.Add(new Error {
                    Key = "Error", Message = ex.Message
                });
            }

            if (metadata.Errors.Count > 0)
            {
                metadata.Status = "ERRORS";
            }
            else
            {
                metadata.Status = "OK";
            }

            return(metadata);
        }
コード例 #9
0
        private void UpdateMetadataFromModel(SimpleMetadataViewModel model, SimpleMetadata metadata)
        {
            metadata.ParentIdentifier = model.ParentIdentifier;

            metadata.Title = model.Title;
            metadata.Abstract = model.Abstract;

            metadata.SupplementalDescription = model.SupplementalDescription;

            metadata.SpecificUsage = !string.IsNullOrWhiteSpace(model.SpecificUsage) ? model.SpecificUsage : " ";

            metadata.ProcessHistory = !string.IsNullOrWhiteSpace(model.ProcessHistory) ? model.ProcessHistory : " ";

            metadata.ProductPageUrl = model.ProductPageUrl;

            var contactMetadata = model.ContactMetadata.ToSimpleContact();
            if (!string.IsNullOrWhiteSpace(model.EnglishContactMetadataOrganization))
            {
                contactMetadata.OrganizationEnglish = model.EnglishContactMetadataOrganization;
            }

            metadata.ContactMetadata = contactMetadata;

            var contactPublisher = model.ContactPublisher.ToSimpleContact();
            if (!string.IsNullOrWhiteSpace(model.EnglishContactPublisherOrganization))
            {
                contactPublisher.OrganizationEnglish = model.EnglishContactPublisherOrganization;
            }

            metadata.ContactPublisher = contactPublisher;

            var contactOwner = model.ContactOwner.ToSimpleContact();
            if (!string.IsNullOrWhiteSpace(model.EnglishContactOwnerOrganization))
            {
                contactOwner.OrganizationEnglish = model.EnglishContactOwnerOrganization;
            }

            metadata.ContactOwner = contactOwner;

            if (!string.IsNullOrWhiteSpace(model.BoundingBoxEast))
            {
                metadata.BoundingBox = new SimpleBoundingBox
                {
                    EastBoundLongitude = model.BoundingBoxEast,
                    WestBoundLongitude = model.BoundingBoxWest,
                    NorthBoundLatitude = model.BoundingBoxNorth,
                    SouthBoundLatitude = model.BoundingBoxSouth
                };
            }

            string accessConstraintsSelected = "";
            if (!string.IsNullOrEmpty(model.OtherConstraintsAccess))
            {
                if (model.OtherConstraintsAccess.ToLower() == "no restrictions")
                {
                    accessConstraintsSelected = "otherRestrictions";
                }
            }

            if (!string.IsNullOrWhiteSpace(model.MaintenanceFrequency))
                metadata.MaintenanceFrequency = model.MaintenanceFrequency;

            metadata.DateUpdated = model.DateUpdated;

            //Keep if other keywords than in model
            List<SimpleKeyword> keywordsNotInModel = metadata.Keywords.Where(k => k.Thesaurus != SimpleKeyword.THESAURUS_NATIONAL_INITIATIVE
                                                        && k.Thesaurus != SimpleKeyword.THESAURUS_NATIONAL_THEME
                                                        && k.Type != SimpleKeyword.TYPE_PLACE).ToList();
            //Get keywords in model
            List<SimpleKeyword> keywordsToUpdate = model.GetAllKeywords();

            bool hasEnglishFields = false;
            // don't create PT_FreeText fields if it isn't necessary
            if (!string.IsNullOrWhiteSpace(model.EnglishTitle))
            {
                metadata.EnglishTitle = model.EnglishTitle;
                hasEnglishFields = true;
            }
            if (!string.IsNullOrWhiteSpace(model.EnglishAbstract))
            {
                metadata.EnglishAbstract = model.EnglishAbstract;
                hasEnglishFields = true;
            }

            if (hasEnglishFields)
                metadata.SetLocale(SimpleMetadata.LOCALE_ENG);

            metadata.Keywords = keywordsNotInModel.Concat(keywordsToUpdate).ToList();

                metadata.DistributionDetails = new SimpleDistributionDetails
                {
                    URL = model.DistributionUrl,
                    Protocol = model.DistributionProtocol
                };

            metadata.Constraints = new SimpleConstraints
            {
                UseConstraints = "license",
                OtherConstraints = !string.IsNullOrWhiteSpace(accessConstraintsSelected) ? accessConstraintsSelected : null,
                OtherConstraintsLink = !string.IsNullOrWhiteSpace(model.OtherConstraintsLink) ? model.OtherConstraintsLink : null,
                OtherConstraintsLinkText = !string.IsNullOrWhiteSpace(model.OtherConstraintsLinkText) ? model.OtherConstraintsLinkText : null,
                OtherConstraintsAccess = !string.IsNullOrWhiteSpace(model.OtherConstraintsAccess) ? model.OtherConstraintsAccess : null
            };

            SetDefaultValuesOnMetadata(metadata);
        }
コード例 #10
0
        public SimpleMetadataViewModel GetMetadataModel(string uuid)
        {
            SimpleMetadata metadata = new SimpleMetadata(_geoNorge.GetRecordByUuid(uuid));

            var model = new SimpleMetadataViewModel()
            {
                Uuid = metadata.Uuid,
                Title = metadata.Title,
                HierarchyLevel = metadata.HierarchyLevel,
                ParentIdentifier = metadata.ParentIdentifier,
                MetadataStandard = metadata.MetadataStandard,
                Abstract = metadata.Abstract != null ? metadata.Abstract.Replace("...", "") : "",

                ContactMetadata = new Contact(metadata.ContactMetadata, "pointOfContact"),
                ContactPublisher = new Contact(metadata.ContactPublisher, "publisher"),
                ContactOwner = new Contact(metadata.ContactOwner, "owner"),

                SupplementalDescription = metadata.SupplementalDescription,
                SpecificUsage = metadata.SpecificUsage,

                ProcessHistory = metadata.ProcessHistory,
                ProductPageUrl = metadata.ProductPageUrl,

                DistributionUrl = metadata.DistributionDetails != null ? metadata.DistributionDetails.URL : null,
                DistributionProtocol = metadata.DistributionDetails != null ? metadata.DistributionDetails.Protocol : null,

                MaintenanceFrequency = metadata.MaintenanceFrequency,
                DateUpdated = metadata.DateUpdated,
                DateMetadataUpdated = metadata.DateMetadataUpdated,

                KeywordsPlace = CreateListOfKeywords(SimpleKeyword.Filter(metadata.Keywords, SimpleKeyword.TYPE_PLACE, null)),
                KeywordsNationalInitiative = CreateListOfKeywords(SimpleKeyword.Filter(metadata.Keywords, null, SimpleKeyword.THESAURUS_NATIONAL_INITIATIVE)),
                KeywordsNationalTheme = CreateListOfKeywords(SimpleKeyword.Filter(metadata.Keywords, null, SimpleKeyword.THESAURUS_NATIONAL_THEME)),
                KeywordsEnglish = CreateDictionaryOfEnglishKeywords(metadata.Keywords),

                UseConstraints = metadata.Constraints != null ? metadata.Constraints.UseConstraints : null,
                OtherConstraintsLink = metadata.Constraints != null ? metadata.Constraints.OtherConstraintsLink : null,
                OtherConstraintsLinkText = metadata.Constraints != null ? metadata.Constraints.OtherConstraintsLinkText : null,
                OtherConstraintsAccess = metadata.Constraints != null ? metadata.Constraints.OtherConstraintsAccess : null,

                EnglishTitle = metadata.EnglishTitle,
                EnglishAbstract = metadata.EnglishAbstract,
                EnglishContactMetadataOrganization = metadata.ContactMetadata != null ? metadata.ContactMetadata.OrganizationEnglish : null,
                EnglishContactPublisherOrganization = metadata.ContactPublisher != null ? metadata.ContactPublisher.OrganizationEnglish : null,
                EnglishContactOwnerOrganization = metadata.ContactOwner != null ? metadata.ContactOwner.OrganizationEnglish : null

            };

            if (metadata.BoundingBox != null)
            {
                model.BoundingBoxEast = ConvertCoordinateWithCommaToPoint(metadata.BoundingBox.EastBoundLongitude);
                model.BoundingBoxWest = ConvertCoordinateWithCommaToPoint(metadata.BoundingBox.WestBoundLongitude);
                model.BoundingBoxNorth = ConvertCoordinateWithCommaToPoint(metadata.BoundingBox.NorthBoundLatitude);
                model.BoundingBoxSouth = ConvertCoordinateWithCommaToPoint(metadata.BoundingBox.SouthBoundLatitude);
            }

            return model;
        }
コード例 #11
0
        public void SaveMetadataModel(SimpleMetadataViewModel model, string username)
        {
            SimpleMetadata metadata = new SimpleMetadata(_geoNorge.GetRecordByUuid(model.Uuid));

            UpdateMetadataFromModel(model, metadata);

            _geoNorge.MetadataUpdate(metadata.GetMetadata(), CreateAdditionalHeadersWithUsername(username, model.Published));
        }