public void CheckPublicationOnline(int publicationId)
        {
            PublicationMeta        meta    = null;
            PublicationMetaFactory factory = new PublicationMetaFactory();

            try
            {
                meta = factory.GetMeta(publicationId);
            }
            catch (Exception)
            {
                Log.Error("Couldn't find publication metadata for id: " + publicationId);
            }
            if (meta == null || !IsPublicationOnline(meta))
            {
                throw new TridionDocsApiException($"Unable to find publication {publicationId}");
            }
        }
        public bool IsPublicationOnline(PublicationMeta publicationMeta)
        {
            var customMeta = publicationMeta.CustomMeta;

            if (customMeta == null)
            {
                return(false);
            }
            try
            {
                var status = customMeta.GetFirstValue(PublicationOnlineStatusMeta);
                return(status != null && PublicationOnlineValue.Equals(status.ToString()));
            }
            catch (Exception)
            {
                return(false);
            }
        }
Beispiel #3
0
        private string GetMetadata(int publicationId, string metadataName)
        {
            try
            {
                PublicationMetaFactory factory = new PublicationMetaFactory();
                PublicationMeta        meta    = factory.GetMeta(publicationId);
                if (meta?.CustomMeta == null)
                {
                    throw new TridionDocsApiException(
                              $"Metadata '{metadataName}' is not found for publication {publicationId}.");
                }

                object metadata       = meta.CustomMeta.GetFirstValue(metadataName);
                string metadataString = metadata != null ? (string)metadata : "{}";
                return(metadataString);
            }
            catch (Exception)
            {
                throw new TridionDocsApiException(
                          $"Metadata '{metadataName}' is not found for publication {publicationId}.");
            }
        }
        private Publication BuildPublicationFrom(PublicationMeta publicationMeta)
        {
            Publication publication = new Publication();

            publication.Id = publicationMeta.Id.ToString();
            var customMeta = publicationMeta.CustomMeta;

            if (customMeta == null)
            {
                return(publication);
            }
            if (customMeta.GetFirstValue(PublicationTitleMeta) != null)
            {
                publication.Title = (string)customMeta.GetFirstValue(PublicationTitleMeta);
            }
            else
            {
                publication.Title = publicationMeta.Title;
            }

            if (customMeta.GetFirstValue(PublicationProductfamilynameMeta) != null)
            {
                // Take the generated product family name from the metadata
                NameValuePair pair = (NameValuePair)customMeta.NameValues[PublicationProductfamilynameMeta];
                publication.ProductFamily = new List <string>();
                foreach (var value in pair.MultipleValues)
                {
                    publication.ProductFamily.Add(value?.ToString());
                }
            }

            if (customMeta.GetFirstValue(PublicationProductreleasenameMeta) != null)
            {
                // Take the generated product release name from the metadata
                NameValuePair pair = (NameValuePair)customMeta.NameValues[PublicationProductreleasenameMeta];
                publication.ProductReleaseVersion = new List <string>();
                foreach (var value in pair.MultipleValues)
                {
                    publication.ProductReleaseVersion.Add(value?.ToString());
                }
            }

            if (customMeta.GetFirstValue(PublicationVersionrefMeta) != null)
            {
                string versionRef = (string)customMeta.GetFirstValue(PublicationVersionrefMeta);
                // The value is stored as float on Content Service, so we need to get rid of fractional part
                publication.VersionRef = versionRef.Split('\"', '[', '.', ']')[0];
            }

            if (customMeta.GetFirstValue(PublicationLangMeta) != null)
            {
                publication.Language = (string)customMeta.GetFirstValue(PublicationLangMeta);
            }

            if (customMeta.GetFirstValue(PublicationCratedonMeta) != null)
            {
                publication.CreatedOn = DateTime.Parse((string)customMeta.GetFirstValue(PublicationCratedonMeta));
            }

            if (customMeta.GetFirstValue(PublicationVersionMeta) != null)
            {
                publication.Version = (string)customMeta.GetFirstValue(PublicationVersionMeta);
            }

            if (customMeta.GetFirstValue(PublicationLogicalId) != null)
            {
                publication.LogicalId = (string)customMeta.GetFirstValue(PublicationLogicalId);
            }
            return(publication);
        }