using System.Collections.Generic;
using System.Linq;
using Umbraco.Cms.Core.PropertyEditors;
using Umbraco.Cms.Core.PropertyEditors.ValueConverters;
namespace Umbraco.Extensions
{
public static class MediaPicker3ConfigurationExtensions
{
///
/// Applies the configuration to ensure only valid crops are kept and have the correct width/height.
///
/// The configuration.
public static void ApplyConfiguration(this ImageCropperValue imageCropperValue, MediaPicker3Configuration? configuration)
{
var crops = new List();
var configuredCrops = configuration?.Crops;
if (configuredCrops != null)
{
foreach (var configuredCrop in configuredCrops)
{
var crop = imageCropperValue.Crops?.FirstOrDefault(x => x.Alias == configuredCrop.Alias);
crops.Add(new ImageCropperValue.ImageCropperCrop
{
Alias = configuredCrop.Alias,
Width = configuredCrop.Width,
Height = configuredCrop.Height,
Coordinates = crop?.Coordinates
});
}
}
imageCropperValue.Crops = crops;
if (configuration?.EnableLocalFocalPoint == false)
{
imageCropperValue.FocalPoint = null;
}
}
}
}