Esempio n. 1
0
        /// <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;
                }
            }
        }
Esempio n. 2
0
 public override int GetHashCode()
 {
     return(GalleryId.GetHashCode() ^ ImageKey.GetHashCode() ^ PageId.GetHashCode());
 }
Esempio n. 3
0
 => Apply(new GalleryCreated(GalleryId, name));
Esempio n. 4
0
        /// <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 &lt;br /&gt; 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));
            }
        }