/// <summary> /// Detect if user added, replaced, or removed the watermark image. If a new image has been uploaded, copy it to the destination /// directory. If one has been removed or replaced, delete the old one. Update <see cref="IGallerySettings.WatermarkImagePath" />. /// </summary> private void UnbindWatermarkImage() { var watermarkFileName = hdnWatermarkFileName.Value; // Set by JavaScript when user selected new image var watermarkTempFileName = hdnWatermarkTempFileName.Value; // Holds temp name of uploaded image in App_Data\_Temp var watermarkDirContainer = Path.Combine(AppSetting.Instance.PhysicalApplicationPath, GlobalConstants.WatermarkDirectory); // e.g. "C:\Website\App_Data\Watermark_Images" var watermarkDir = Path.Combine(watermarkDirContainer, GalleryId.ToString()); // e.g. "C:\Website\App_Data\Watermark_Images\2" var currentWatermarkImageDestPath = Path.Combine(watermarkDir, GallerySettings.WatermarkImagePath); // e.g. "C:\Website\App_Data\Watermark_Images\2\logo.png" if (string.IsNullOrWhiteSpace(watermarkFileName)) { // User removed watermark image or it has been left blank. if (File.Exists(currentWatermarkImageDestPath)) { // Delete old watermark image from App_Data\Watermark_Images File.Delete(currentWatermarkImageDestPath); } GallerySettingsUpdateable.WatermarkImagePath = string.Empty; return; } if (!string.IsNullOrWhiteSpace(watermarkTempFileName)) { // User uploaded a new watermark image. Copy it to the destination and update setting. var watermarkImageSourcePath = Path.Combine(AppSetting.Instance.PhysicalApplicationPath, GlobalConstants.TempUploadDirectory, watermarkTempFileName); if (!Directory.Exists(watermarkDirContainer)) { Directory.CreateDirectory(watermarkDirContainer); // Create Watermark_Images directory in App_Data } if (!Directory.Exists(watermarkDir)) { Directory.CreateDirectory(watermarkDir); // Create {GalleryId}} directory in App_Data\Watermark_Images } var newWatermarkImageDestPath = Path.Combine(watermarkDir, watermarkFileName); if (File.Exists(watermarkImageSourcePath)) { if (File.Exists(currentWatermarkImageDestPath)) { File.Delete(currentWatermarkImageDestPath); // Delete the old watermark image } HelperFunctions.MoveFileSafely(watermarkImageSourcePath, newWatermarkImageDestPath); GallerySettingsUpdateable.WatermarkImagePath = watermarkFileName; } } }
/// <summary> /// Formats the value of the specified <paramref name="item" /> into an HTML paragraph tag. Example: If /// <paramref name="item" /> = ErrorItem.StackTrace, the action stack trace data associated with the current error /// is returned as the content of the tag. If present, line breaks (\r\n) are converted to <br /> tags. /// </summary> /// <param name="item"> /// The enum value indicating the error item to be used as the content of the paragraph element. /// The text is HTML encoded. /// </param> /// <returns>Returns an HTML paragraph tag.</returns> public string ToHtmlValue(EventItem item) { switch (item) { case EventItem.EventId: return(ToHtmlParagraph(EventId.ToString(CultureInfo.InvariantCulture))); case EventItem.EventType: return(ToHtmlParagraph(EventType.ToString())); case EventItem.Url: return(ToHtmlParagraph(Url)); case EventItem.Timestamp: return(ToHtmlParagraph(TimestampUtc.ToString(CultureInfo.CurrentCulture))); case EventItem.ExType: return(ToHtmlParagraph(ExType)); case EventItem.Message: return(ToHtmlParagraph(Message)); case EventItem.ExSource: return(ToHtmlParagraph(ExSource)); case EventItem.ExTargetSite: return(ToHtmlParagraph(ExTargetSite)); case EventItem.ExStackTrace: return(ToHtmlParagraph(ExStackTrace)); case EventItem.ExData: return(ToHtmlParagraphs(EventData)); case EventItem.InnerExType: return(ToHtmlParagraph(InnerExType)); case EventItem.InnerExMessage: return(ToHtmlParagraph(InnerExMessage)); case EventItem.InnerExSource: return(ToHtmlParagraph(InnerExSource)); case EventItem.InnerExTargetSite: return(ToHtmlParagraph(InnerExTargetSite)); case EventItem.InnerExStackTrace: return(ToHtmlParagraph(InnerExStackTrace)); case EventItem.InnerExData: return(ToHtmlParagraphs(InnerExData)); case EventItem.GalleryId: return(ToHtmlParagraph(GalleryId.ToString(CultureInfo.InvariantCulture))); case EventItem.HttpUserAgent: return(ToHtmlParagraph(HttpUserAgent)); case EventItem.FormVariables: return(ToHtmlParagraphs(FormVariables)); case EventItem.Cookies: return(ToHtmlParagraphs(Cookies)); case EventItem.SessionVariables: return(ToHtmlParagraphs(SessionVariables)); case EventItem.ServerVariables: return(ToHtmlParagraphs(ServerVariables)); default: throw new BusinessException(String.Format(CultureInfo.CurrentCulture, "Encountered unexpected EventItem enum value {0}. Event.ToHtmlValue() is not designed to handle this enum value. The function must be updated.", item)); } }