private string GenerateThumbnailId(string thumbnailId = null)
        {
            var ext = Common.GetImageExtension(FileFormat);

            if (ext == null)
            {
                throw new MediaUnsupportedException(string.Format("FileFormat: {0}", FileFormat));
            }

            string id;

            if (!string.IsNullOrEmpty(thumbnailId))
            {
                id = thumbnailId;
            }
            else
            {
                var fileName = new StringBuilder(Path.GetFileNameWithoutExtension(_source.Name));
                var ci       = CultureInfo.InvariantCulture;
                fileName.Append("[");
                fileName.Append(Size.Width.ToString(ci));
                fileName.Append("x");
                fileName.Append(Size.Height.ToString(ci));

                if (ColorManagement != null)
                {
                    fileName.Append(",cm(");
                    var sourceProfile = ColorManagement.GetProfile(ColorManagement, _source.Params.PixelFormat.ColorSpace);
                    if (sourceProfile != null)
                    {
                        fileName.Append(AjaxControls.Common.CalculateMD5(Encoding.UTF8.GetBytes(sourceProfile.Description)));
                    }

                    var targetProfile = ColorManagement.GetTargetProfile(ColorManagement);
                    if (targetProfile != null)
                    {
                        fileName.Append(",");
                        fileName.Append(AjaxControls.Common.CalculateMD5(Encoding.UTF8.GetBytes(targetProfile.Description)));
                    }

                    fileName.Append(")");
                }

                if (ResizeMode != Transforms.ResizeMode.Resize)
                {
                    fileName.Append(",");
                    fileName.Append(ResizeMode);
                }

                fileName.Append("]");

                id = fileName.ToString().ToLowerInvariant();
            }

            return(string.Format("{0}.{1}", id, ext));
        }