Альтернатива предложению Дмитрия Шевченко - использовать API Sitecore для проверки Template
MediaItem
, содержащего изображение, противоположное сравнению сравнения строк.
Когда изображение загружается в MediaLibrary
она хранится в versioned
или unversioned
шаблон и либо Image
или jpeg
.
Чтобы проверить, есть ли изображение mediaItem
, вы можете сделать следующее;
public ID ImageUnversioned = new ID("{F1828A2C-7E5D-4BBD-98CA-320474871548}");
public ID JpegUnversioned = new ID("{DAF085E8-602E-43A6-8299-038FF171349F}");
public ID ImageVersioned = new ID("{C97BA923-8009-4858-BDD5-D8BE5FCCECF7}");
public ID JpegVersioned = new ID("{EB3FB96C-D56B-4AC9-97F8-F07B24BB9BF7}");
public bool IsImage(Item mediaItem)
{
return mediaItem.TemplateID.Equals(ImageUnversioned)
|| mediaItem.TemplateID.Equals(JpegUnversioned)
|| mediaItem.TemplateID.Equals(ImageVersioned)
|| mediaItem.TemplateID.Equals(JpegVersioned);
}
Тогда просто передать в mediaItem
, как показано ниже;
bool isImageOrPicture = IsImage(mediaItem);
Update
Dmytro Shevchenko сделал большую точку рекурсивно проверять все базовые шаблоны элемента, как Jpeg
шаблона происходит от Image
шаблона. Внедрение как таковое:
using Sitecore;
using Sitecore.Data.Items;
...
public static bool IsImage(Item item)
{
if (item.TemplateID == TemplateIDs.VersionedImage
|| item.TemplateID == TemplateIDs.UnversionedImage)
{
return true;
}
foreach (TemplateItem baseTemplate in item.Template.BaseTemplates)
{
if (IsImage(baseTemplate))
{
return true;
}
}
return false;
}
Умное решение +1 –