Skip to content

Instantly share code, notes, and snippets.

@carlwoodhouse
Created March 21, 2017 09:50
Show Gist options
  • Select an option

  • Save carlwoodhouse/88dc0973b337a253cc7a683521cf71e9 to your computer and use it in GitHub Desktop.

Select an option

Save carlwoodhouse/88dc0973b337a253cc7a683521cf71e9 to your computer and use it in GitHub Desktop.
using System;
using System.Linq;
using Orchard.ContentManagement;
using Orchard.MediaLibrary.Fields;
using Orchard.MediaLibrary.Models;
namespace Patient.Core.Extensions {
public static class FieldExtensions {
public static MediaPart GetDefaultMediaPart(this MediaLibraryPickerField field) {
if (field == null) {
return null;
}
return field.MediaParts != null && field.MediaParts.Any() ?
field.MediaParts.FirstOrDefault() : null;
}
public static string GetDefaultMediaUrl(this MediaLibraryPickerField field) {
var mediaPart = field.GetDefaultMediaPart();
try {
return mediaPart != null ? mediaPart.MediaUrl : string.Empty;
}
catch (Exception) { }
return string.Empty;
}
public static string GetDefaultMediaUrlByFieldName(this IContent content, string fieldName) {
return GetDefaultMediaUrlByPartAndFieldName(content, null, fieldName);
}
public static string GetDefaultMediaUrlByPartAndFieldName(this IContent content, string partDefinitionName, string fieldName) {
var val = string.Empty;
var part = string.IsNullOrEmpty(partDefinitionName) ? content : content.As(partDefinitionName);
if (part != null) {
var cast = (ContentPart)part;
var field = cast.Fields.FirstOrDefault(x => x.Name == fieldName);
if (field != null) {
return ((MediaLibraryPickerField)field).GetDefaultMediaUrl();
}
}
return string.Empty;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment