public override void FillField(BaseDataMap map, object importRow, ref Item newItem, string importValue, out bool updatedField, ref LevelLogger logger) { var fillFieldLogger = logger.CreateLevelLogger(); try { updatedField = false; if (ID.IsNullOrEmpty(MediaItemId)) { fillFieldLogger.AddError(CategoryConstants.TheImageMediaLibraryPathIsNotSet, String.Format("The image media library path is not set. ImportRow: {0}.", map.GetImportRowDebugInfo(importRow))); return; } var getImageAlTextLogger = fillFieldLogger.CreateLevelLogger(); var imageAltText = GetImageAltText(map, importRow, ref newItem, importValue, ref fillFieldLogger); if (getImageAlTextLogger.HasErrors()) { getImageAlTextLogger.AddError(CategoryConstants.GetimagealttextMethodFailed, String.Format("The method GetImageAltText failed. ImportRow: {0}.", map.GetImportRowDebugInfo(importRow))); return; } if (!IsRequired && String.IsNullOrEmpty(importValue)) { return; } var getMediaFolderLogger = fillFieldLogger.CreateLevelLogger(); var mediaItemId = GetMediaFolderItem(map, importRow, ref newItem, ref getMediaFolderLogger); if (mediaItemId == (ID)null) { getMediaFolderLogger.AddError(CategoryConstants.GetMediaFolderItemReturnedANullItemForTheMediaFolderitem, String.Format("The method GetMediaFolderItem returned a null item for the media folderItem. ImportRow: {0}.", map.GetImportRowDebugInfo(importRow))); return; } if (getMediaFolderLogger.HasErrors()) { getMediaFolderLogger.AddError(CategoryConstants.GetMediaFolderItemFailed, String.Format("The method GetMediaFolderItem failed with an error. ImportRow: {0}.", map.GetImportRowDebugInfo(importRow))); return; } if (String.IsNullOrEmpty(IdentifyMediaItemByWhatFieldName)) { fillFieldLogger.AddError("No fieldName provided to identify the MediaItem with", String.Format("There wasn't provided a fieldname to locate the MediaItem with. Please provide a value in the field 'IdentifyMediaItemByWhatField'.")); return; } var getMediaItemLogger = fillFieldLogger.CreateLevelLogger(); var imageItem = GetMediaItemFromImageLibrary(map, mediaItemId, IdentifyMediaItemByWhatFieldName, importValue, ref getMediaFolderLogger); if (getMediaFolderLogger.HasErrors()) { getMediaItemLogger.AddError("Could not find the mediaItem in Media Library", String.Format("Could not find the mediaItem in Media Libary in the GetMEdiaItemFromImageLibrary. ImportRow {0}", map.GetImportRowDebugInfo(importRow))); return; } if (imageItem != null) { var height = GetImageHeight(map, importRow, ref newItem, importValue, ref fillFieldLogger); var width = GetImageWidth(map, importRow, ref newItem, importValue, ref fillFieldLogger); updatedField = ImageHandler.AttachImageToItem(map, importRow, newItem, NewItemField, imageItem, ref fillFieldLogger, height, width); } if (IsRequired && imageItem == null) { fillFieldLogger.AddError("The field is required, but no MediaItem was found", String.Format("The field is required, but no MediaItem was found. ImportRow: {0}", map.GetImportRowDebugInfo(importRow))); return; } } catch (Exception ex) { updatedField = false; fillFieldLogger.AddError(CategoryConstants.ExceptionOccuredWhileProcessingImageImages, String.Format( "An exception occured in FillField of the ToImageFieldFromImageLibrary. Exception: {0}. ImportRow: {1}.", map.GetExceptionDebugInfo(ex), map.GetImportRowDebugInfo(importRow))); } }
public override void FillField(BaseDataMap map, object importRow, ref Item newItem, string importValue, out bool updatedField, ref LevelLogger logger) { var fillFieldLogger = logger.CreateLevelLogger(); try { updatedField = false; if (ID.IsNullOrEmpty(MediaItemId)) { fillFieldLogger.AddError(CategoryConstants.TheImageMediaLibraryPathIsNotSet, String.Format("The image media library path is not set. ImportRow: {0}.", map.GetImportRowDebugInfo(importRow))); return; } var getImageAlTextLogger = fillFieldLogger.CreateLevelLogger("GetImageAltText"); var imageAltText = GetImageAltText(map, importRow, ref newItem, importValue, ref fillFieldLogger); if (getImageAlTextLogger.HasErrors()) { getImageAlTextLogger.AddError(CategoryConstants.GetimagealttextMethodFailed, String.Format("The method GetImageAltText failed. ImportRow: {0}.", map.GetImportRowDebugInfo(importRow))); return; } var getOriginalFileNameLogger = fillFieldLogger.CreateLevelLogger("GetOriginalFileNameWithExtension"); var originalFileNameWithExtension = GetOriginalFileNameWithExtension(map, importRow, ref newItem, importValue, ref getOriginalFileNameLogger); if (getOriginalFileNameLogger.HasErrors()) { getOriginalFileNameLogger.AddError(CategoryConstants.GetoriginalfilenamewithextensionFailed, String.Format("The method GetOriginalFileNameWithExtension failed. ImportRow: {0}.", map.GetImportRowDebugInfo(importRow))); return; } var getFileNameLogger = fillFieldLogger.CreateLevelLogger("GetFileName"); var fileName = GetFileName(map, importRow, ref newItem, importValue, ref getFileNameLogger); if (getFileNameLogger.HasErrors()) { getFileNameLogger.AddError(CategoryConstants.GetfilenameFailed, String.Format("The method GetFileName failed. ImportRow: {0}.", map.GetImportRowDebugInfo(importRow))); return; } fileName = StringUtility.GetNewItemName(fileName, map.ItemNameMaxLength); if (!IsRequired && String.IsNullOrEmpty(importValue)) { return; } var imageType = ""; var getImageAsMemoryStreamLogger = fillFieldLogger.CreateLevelLogger("GetImageAsMemoryStream"); var memoryStream = GetImageAsMemoryStream(map, importRow, ref newItem, importValue, ref getImageAsMemoryStreamLogger, out imageType); if (getImageAsMemoryStreamLogger.HasErrors()) { getImageAsMemoryStreamLogger.AddError(CategoryConstants.GetImageAsMemoryStreamFailed, String.Format("The method GetImageAsMemoryStream failed. ImportRow: {0}.", map.GetImportRowDebugInfo(importRow))); return; } if (memoryStream == null && !IsRequired) { return; } if (String.IsNullOrEmpty(originalFileNameWithExtension)) { if (!String.IsNullOrEmpty(imageType)) { originalFileNameWithExtension = imageType; } else { originalFileNameWithExtension = ".jpeg"; } } var getMediaFolderLogger = fillFieldLogger.CreateLevelLogger("GetMediaFolderItem"); var mediaItemId = GetMediaFolderItem(map, importRow, ref newItem, ref getMediaFolderLogger); if (mediaItemId == (ID)null) { getMediaFolderLogger.AddError(CategoryConstants.GetMediaFolderItemReturnedANullItemForTheMediaFolderitem, String.Format("The method GetMediaFolderItem returned a null item for the media folderItem. ImportRow: {0}.", map.GetImportRowDebugInfo(importRow))); return; } if (getMediaFolderLogger.HasErrors()) { getMediaFolderLogger.AddError(CategoryConstants.GetMediaFolderItemFailed, String.Format("The method GetMediaFolderItem failed with an error. ImportRow: {0}.", map.GetImportRowDebugInfo(importRow))); return; } var imageItem = ImageHandler.ImageHelper(fileName, originalFileNameWithExtension, imageAltText, mediaItemId, IsReplaceIfExist, memoryStream, ref fillFieldLogger); if (imageItem != null) { var height = GetImageHeight(map, importRow, ref newItem, importValue, ref fillFieldLogger); var width = GetImageWidth(map, importRow, ref newItem, importValue, ref fillFieldLogger); ImageHandler.AttachImageToItem(map, importRow, newItem, NewItemField, imageItem, ref fillFieldLogger, height, width); } } catch (Exception ex) { updatedField = false; fillFieldLogger.AddError(CategoryConstants.ExceptionOccuredWhileProcessingImageImages, String.Format( "An exception occured in FillField in processing of the image/images. Exception: {0}. ImportRow: {1}.", map.GetExceptionDebugInfo(ex), map.GetImportRowDebugInfo(importRow))); } }