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); } }
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); }