/// <summary> /// <inheritdoc /> /// </summary> public StoragePathModel PrepareStoragePath(OutputImageFormat format) { var uploadKeyGuid = Guid.NewGuid(); var uploadKey = uploadKeyGuid.ToString("N"); var basePath = this.appSettings.Value.Directory.WorkingDirectory; var segmentsPath = Path.Combine( uploadKey[0].ToString(), uploadKey[1].ToString(), uploadKey[2].ToString()); var baseDirectoryPath = Path.Combine(basePath, segmentsPath); var finalPath = $"{Path.Combine(baseDirectoryPath, uploadKey)}.{format.GetImageFormat()}"; var urlPath = $"/{segmentsPath}/{uploadKey}.{format.GetImageFormat()}"; // If storage directory doesn't exists, create it if (!Directory.Exists(baseDirectoryPath)) { Directory.CreateDirectory(baseDirectoryPath); } return(new StoragePathModel { Key = uploadKeyGuid, FilePath = finalPath, UrlPath = urlPath }); }
/// <summary> /// <inheritdoc /> /// </summary> public ImageThumbPathsModel PrepareThumbFilePath(StoragePathModel originalPath, OutputImageFormat format, int width, int height) { // Prepare a disk path var diskPath = $"{Path.ChangeExtension(originalPath.FilePath, null)}_thumb_{width}x{height}.{format.GetImageFormat()}"; // Prepare an URL path var url = this.NormalizeWebPath(Path.ChangeExtension(originalPath.UrlPath, null)) + $"_thumb_{width}x{height}.{format.GetImageFormat()}"; return(new ImageThumbPathsModel { DiskPath = diskPath, Url = url }); }