Exemple #1
0
        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)));
            }
        }