Kartverket.MetadataEditor.Models.SimpleMetadataService.GetMetadataModel C# (CSharp) Method

GetMetadataModel() public method

public GetMetadataModel ( string uuid ) : SimpleMetadataViewModel
uuid string
return SimpleMetadataViewModel
        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;
        }

Usage Example

        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);
        }
All Usage Examples Of Kartverket.MetadataEditor.Models.SimpleMetadataService::GetMetadataModel