Created
January 23, 2021 11:26
-
-
Save alasvant/c446b68cda607ab734110af73aef317b to your computer and use it in GitHub Desktop.
Some sample helper extension methods to be used in custom Episerver import processing to get Episerver properties.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/// <summary> | |
/// Sets the content status to draft. | |
/// </summary> | |
/// <param name="rawProperties">Import raw properties</param> | |
/// <returns>True if the status was set to draft otherwise false.</returns> | |
public static bool SetAsDraft(this Dictionary<string, RawProperty> rawProperties) | |
{ | |
bool isSet = false; | |
// TODO: should we add the properties if missing? | |
// should we remove the return value and just log a message? | |
if (rawProperties.HasEntries()) | |
{ | |
// set pending publish | |
if (rawProperties.ContainsKey(MetaDataProperties.PagePendingPublish)) | |
{ | |
rawProperties[MetaDataProperties.PagePendingPublish].Value = bool.TrueString; | |
isSet = true; | |
} | |
if (rawProperties.ContainsKey(MetaDataProperties.PageWorkStatus)) | |
{ | |
// value 2, CheckOut, The version is currently in progress | |
// valie 3, CheckedIn, A writer has checked in the version and waits for the version to be approved and published | |
// the import doesn't actually at the moment care about this value, only the PagePendingPublish | |
// set it CheckOut and if someday the import uses VersionStatus this should be changed to 3, so that the page is in Ready for publish status | |
rawProperties[MetaDataProperties.PageWorkStatus].Value = ((int)VersionStatus.CheckedOut).ToString(CultureInfo.InvariantCulture); | |
} | |
if (rawProperties.ContainsKey(MetaDataProperties.PageDeleted)) | |
{ | |
rawProperties[MetaDataProperties.PagePendingPublish].Value = bool.TrueString; | |
} | |
if (rawProperties.ContainsKey(MetaDataProperties.PageDeletedBy)) | |
{ | |
rawProperties[MetaDataProperties.PageDeletedBy].Value = null; | |
} | |
if (rawProperties.ContainsKey(MetaDataProperties.PageDeletedDate)) | |
{ | |
rawProperties[MetaDataProperties.PageDeletedDate].Value = null; | |
} | |
if (rawProperties.ContainsKey(MetaDataProperties.PageStartPublish)) | |
{ | |
rawProperties[MetaDataProperties.PageStartPublish].Value = null; | |
} | |
if (rawProperties.ContainsKey(MetaDataProperties.PageStopPublish)) | |
{ | |
rawProperties[MetaDataProperties.PageStopPublish].Value = null; | |
} | |
} | |
return isSet; | |
} | |
/// <summary> | |
/// Sets the content type id. | |
/// </summary> | |
/// <param name="rawProperties">Raw properties dictionary.</param> | |
/// <param name="guidString">Value for the content type id.</param> | |
/// <returns>True if the property was set otherwise false.</returns> | |
public static bool SetContentTypeId(this Dictionary<string, RawProperty> rawProperties, string guidString) | |
{ | |
// we don't validate the "arguments", done by the SetRawPropertyValue method | |
return rawProperties.SetRawPropertyValue(MetaDataProperties.PageTypeID, guidString); | |
} | |
/// <summary> | |
/// Gets the content name value. | |
/// </summary> | |
/// <param name="rawProperties">Raw properties dictionary.</param> | |
/// <returns>Content name value or null if the property doesn't exist..</returns> | |
public static string GetContentName(this Dictionary<string, RawProperty> rawProperties) | |
{ | |
string contentName = null; | |
if (rawProperties.HasEntries() && rawProperties.ContainsKey(MetaDataProperties.PageName)) | |
{ | |
contentName = rawProperties[MetaDataProperties.PageName].Value; | |
} | |
return contentName; | |
} | |
/// <summary> | |
/// Gets the content type name value. | |
/// </summary> | |
/// <param name="rawProperties">Raw properties dictionary.</param> | |
/// <returns>Content type name value or null if the property doesn't exist..</returns> | |
public static string GetContentTypeName(this Dictionary<string, RawProperty> rawProperties) | |
{ | |
string contentTypeName = null; | |
if (rawProperties.HasEntries() && rawProperties.ContainsKey(MetaDataProperties.PageTypeName)) | |
{ | |
contentTypeName = rawProperties[MetaDataProperties.PageTypeName].Value; | |
} | |
return contentTypeName; | |
} | |
/// <summary> | |
/// Gets the language branch identifier (like en, sv, fi, etc) value. | |
/// </summary> | |
/// <param name="rawProperties">Raw properties dictionary.</param> | |
/// <returns>Language branch identifier value or null if the property doesn't exist</returns> | |
public static string GetLanguageId(this Dictionary<string, RawProperty> rawProperties) | |
{ | |
string languageId = null; | |
if (rawProperties.HasEntries() && rawProperties.ContainsKey(MetaDataProperties.PageLanguageBranch)) | |
{ | |
languageId = rawProperties[MetaDataProperties.PageLanguageBranch].Value; | |
} | |
return languageId; | |
} | |
/// <summary> | |
/// Gets the content guid value. | |
/// </summary> | |
/// <param name="rawProperties">Raw properties dictionary.</param> | |
/// <returns>Content guid value or null if the property doesn't exist.</returns> | |
public static string GetContentGuid(this Dictionary<string, RawProperty> rawProperties) | |
{ | |
string contentGuid = null; | |
if (rawProperties.HasEntries() && rawProperties.ContainsKey(MetaDataProperties.PageGUID)) | |
{ | |
contentGuid = rawProperties[MetaDataProperties.PageGUID].Value; | |
} | |
return contentGuid; | |
} | |
/// <summary> | |
/// Gets the content type id value. | |
/// </summary> | |
/// <param name="rawProperties">Raw properties dictionary.</param> | |
/// <returns>Content type id value or null if the property doesn't exist.</returns> | |
public static string GetContentTypeId(this Dictionary<string, RawProperty> rawProperties) | |
{ | |
string contentTypeId = null; | |
if (rawProperties.HasEntries() && rawProperties.ContainsKey(MetaDataProperties.PageTypeID)) | |
{ | |
contentTypeId = rawProperties[MetaDataProperties.PageTypeID].Value; | |
} | |
return contentTypeId; | |
} | |
/// <summary> | |
/// Gets the content url segment value. | |
/// </summary> | |
/// <param name="rawProperties">Raw properties dictionary.</param> | |
/// <returns>Content url segment value or null if the property doesn't exist.</returns> | |
public static string GetUrlSegment(this Dictionary<string, RawProperty> rawProperties) | |
{ | |
string urlSegement = null; | |
if (rawProperties.HasEntries() && rawProperties.ContainsKey(MetaDataProperties.PageURLSegment)) | |
{ | |
urlSegement = rawProperties[MetaDataProperties.PageURLSegment].Value; | |
} | |
return urlSegement; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment