public static void PublishItemSmart(Data.Items.Item rootItem, Database source, Database target, Language lang, BaseDataMap map, ref LevelLogger logger) { var publishFullLogger = logger.CreateLevelLogger(); if (rootItem == null) { publishFullLogger.AddError("RootItem cannot be [null]", "RootItem cannot be [null]"); return; } try { ItemPublisher(Options(rootItem, source, target, lang, PublishMode.Smart)).Publish(); } catch (Exception ex) { publishFullLogger.AddError("PublishItemSmart of item failed with exception.", String.Format("PublishItemSmart of item {0} failed. Exception: {1}", rootItem.ID, map.GetExceptionDebugInfo(ex))); } }
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))); } }
public virtual MemoryStream GetImageAsMemoryStream(BaseDataMap map, object importRow, ref Item newItem, string importValue, ref LevelLogger logger, out string imageType) { imageType = String.Empty; var getImageAsMemoryStreamLogger = logger.CreateLevelLogger(); try { var image = ImageHandler.GetImageFromUrl(importValue); if (image == null) { getImageAsMemoryStreamLogger.AddError(CategoryConstants.TheImageRetrievedFromUrlWasNull, String.Format("The image retrieved from the url was null. Src: '{0}'", importValue)); return null; } imageType = ImageHandler.GetImageType(image); var memoryStream = ImageHandler.ImageToMemoryStream(image); if (memoryStream == null) { getImageAsMemoryStreamLogger.AddError(CategoryConstants.TheMemoryStreamRetrievedWasNull, String.Format("The 'memoryStream' retrieved was null. Src: '{0}'", importValue)); return null; } return memoryStream; } catch (Exception ex) { getImageAsMemoryStreamLogger.AddError(CategoryConstants.GetImageAsMemoryStreamFailed, String.Format("The GetImageAsMemoryStream failed with an exception. Src: '{0}'. Exception: {1}.", importValue, map.GetExceptionDebugInfo(ex))); return null; } }
public virtual byte[] GetImageAsBytes(BaseDataMap map, object importRow, ref Item newItem, string importValue, ref LevelLogger logger) { var getImageAsBytesLogger = logger.CreateLevelLogger(); try { var stopWatch = new Stopwatch(); stopWatch.Start(); var image = ImageHandler.GetImageFromUrl(importValue); if (image == null) { getImageAsBytesLogger.AddError(CategoryConstants.TheImageRetrievedFromUrlWasNull, String.Format("The image retrieved from the url was null. Src: '{0}'", importValue)); return null; } var imageBytes = ImageHandler.ImageToByteArray(image); if (imageBytes == null) { getImageAsBytesLogger.AddError(CategoryConstants.TheImageBytesRetrievedWasNull, String.Format("The 'imageBytes' retrieved was null. Src: '{0}'", importValue)); return null; } return imageBytes; } catch (Exception ex) { getImageAsBytesLogger.AddError(CategoryConstants.GetImageAsBytesFailedWithException, String.Format("The GetImageAsBytes failed with an exception. Src: '{0}'. Exception: {1}.", importValue, map.GetExceptionDebugInfo(ex))); return null; } }
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; string errorMessage = String.Empty; string newTimeStamp; var isUpdateMediaItemLogger = fillFieldLogger.CreateLevelLogger(); var isUpdateMediaItem = IsUpdateMediaItem(map, importRow, ref newItem, importValue, ref isUpdateMediaItemLogger, out newTimeStamp); if (isUpdateMediaItemLogger.HasErrors()) { fillFieldLogger.AddError("IsUpdateMediaItem failed with error", String.Format("The method IsUpdateMediaItem failed with the following error: {0}. ImportRow: {1}.", errorMessage, map.GetImportRowDebugInfo(importRow))); DeleteMediaItemIfEmpty(map, ref newItem, ref fillFieldLogger); return; } if (isUpdateMediaItem) { var getImageAltLogger = fillFieldLogger.CreateLevelLogger(); var imageAltText = GetImageAltText(map, importRow, ref newItem, importValue, ref getImageAltLogger); if (getImageAltLogger.HasErrors()) { getImageAltLogger.AddError("GetImageAltText failed with error", String.Format( "The method GetImageAltText failed with the following error: {0}. ImportRow: {1}.", errorMessage, map.GetImportRowDebugInfo(importRow))); DeleteMediaItemIfEmpty(map, ref newItem, ref getImageAltLogger); return; } var getOriginalLogger = fillFieldLogger.CreateLevelLogger(); var originalFileNameWithExtension = GetOriginalFileNameWithExtension(map, importRow, ref newItem, importValue, ref getOriginalLogger); if (getOriginalLogger.HasErrors()) { getOriginalLogger.AddError("GetOriginalFileNameWithExtensio failed", String.Format("The method GetOriginalFileNameWithExtension failed with the following error: {0}. ImportRow: {1}.", errorMessage, map.GetImportRowDebugInfo(importRow))); DeleteMediaItemIfEmpty(map, ref newItem, ref getOriginalLogger); return; } if (!IsRequired && String.IsNullOrEmpty(importValue)) { return; } var imageType = ""; var getImageAsMemoryLogger = fillFieldLogger.CreateLevelLogger(); var memoryStream = GetImageAsMemoryStream(map, importRow, ref newItem, importValue, ref getImageAsMemoryLogger, out imageType); if (getImageAsMemoryLogger.HasErrors()) { getImageAsMemoryLogger.AddError("GetImageAsStream failed", String.Format("The method GetImageAsStream failed with the following error: {0}. ImportRow: {1}.", errorMessage, map.GetImportRowDebugInfo(importRow))); DeleteMediaItemIfEmpty(map, ref newItem, ref getImageAsMemoryLogger); return; } if (memoryStream == null && !IsRequired) { return; } if (String.IsNullOrEmpty(originalFileNameWithExtension)) { if (!String.IsNullOrEmpty(imageType)) { originalFileNameWithExtension = imageType; } else { originalFileNameWithExtension = DefaultMediaType; } } var imageHelperLogger = fillFieldLogger.CreateLevelLogger(); var imageItem = ImageHandler.ImageHelper(newItem.Name, originalFileNameWithExtension, imageAltText, newItem.Parent.ID, true, memoryStream, ref imageHelperLogger); if (imageItem != null) { newItem = imageItem; newItem.Editing.BeginEdit(); newItem[Utility.Constants.FieldNameDataSyncTimeStamp] = newTimeStamp; updatedField = true; } } } catch (Exception ex) { updatedField = false; fillFieldLogger.AddError("Exception occured in FillField processing image/images", String.Format( "An exception occured in FillField in processing of the image/images. 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(); 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))); } }