protected string GetCachedImagePath(int?mediaFileId, MediaPathData data, ProcessImageQuery query = null) { string result = ""; // xxxxxxx if (mediaFileId.GetValueOrDefault() > 0) { result = mediaFileId.Value.ToString(IdFormatString); } //// INFO: (mm) don't include folder id in pathes for now. It results in more complex image cache invalidation code. //// xxxxxxx-f //if (data.Folder != null) //{ // result = result.Grow(data.Folder.Id.ToString(CultureInfo.InvariantCulture), "-"); //} // xxxxxxx-f-abc result = result.Grow(data.FileTitle, "-"); if (result.IsEmpty()) { // files without name? No way! return(null); } if (query != null && query.NeedsProcessing()) { // xxxxxxx-f-abc-w100-h100 result += query.CreateHash(); } if (_mediaSettings.MultipleThumbDirectories && result.Length > MaxDirLength) { // Get the first four letters of the file name // 0001/xxxxxxx-f-abc-w100-h100 var subDirectoryName = result.Substring(0, MaxDirLength); result = subDirectoryName + "/" + result; } // 0001/xxxxxxx-f-abc-w100-h100.png return(result.Grow(data.Extension, ".")); }
/// <summary> /// Returns the file name with the subfolder (when multidirs are enabled) /// </summary> /// <param name="pictureId"></param> /// <param name="seoFileName">File name without extension</param> /// <param name="extension">Dot-less file extension</param> /// <param name="query"></param> /// <returns></returns> private string GetCachedImagePath(int?pictureId, string seoFileName, string extension, ProcessImageQuery query = null) { string firstPart = ""; if (pictureId.GetValueOrDefault() > 0) { firstPart = pictureId.Value.ToString(IdFormatString) + (seoFileName.IsEmpty() ? "" : "-"); } if (firstPart.IsEmpty() && seoFileName.IsEmpty()) { // files without name? No way! return(null); } seoFileName = seoFileName.EmptyNull(); string imageFileName; if (query == null || !query.NeedsProcessing()) { imageFileName = String.Concat(firstPart, seoFileName); } else { imageFileName = String.Concat(firstPart, seoFileName, query.CreateHash()); } if (_mediaSettings.MultipleThumbDirectories && imageFileName != null && imageFileName.Length > MaxDirLength) { // Get the first four letters of the file name var subDirectoryName = imageFileName.Substring(0, MaxDirLength); imageFileName = String.Concat(subDirectoryName, "/", imageFileName); } return(String.Concat(imageFileName, ".", extension)); }