public string GetPictureUrl(Media picture, int width = 0, int height = 0, bool returnDefaultIfNotFound = false) { if (picture == null) { return(returnDefaultIfNotFound ? ApplicationEngine.MapUrl(ApplicationConfig.DefaultImagePath, true) : null); } var serveFileDirectory = ServerHelper.MapPath(ApplicationConfig.MediaServeDirectory, true); //abc var fileNameWithoutExtension = _localFileProvider.GetFileNameWithoutExtension(picture.SystemName); //.jpg var extension = _localFileProvider.GetExtension(picture.SystemName); //abc_150_150.jpg var fileName = string.Format(PictureFileNameFormat, fileNameWithoutExtension, width, height, extension); //c:\\www\\abc_150_150.jpg var fileNameWithDirectory = _localFileProvider.CombinePaths(serveFileDirectory, fileName); if (_localFileProvider.FileExists(fileNameWithDirectory)) { return(ApplicationEngine.MapUrl(fileNameWithDirectory)); // /abc_150_150.jpg } //we'll need to create a file //first resize the image from actual file var mediaFileDirectory = ServerHelper.MapPath(ApplicationConfig.MediaDirectory, true); var originalFile = _localFileProvider.CombinePaths(mediaFileDirectory, picture.SystemName); //does the original file exist? if (!_localFileProvider.FileExists(originalFile)) { return(returnDefaultIfNotFound ? ApplicationEngine.MapUrl(ApplicationConfig.DefaultImagePath, true) : null); } //read original file var originalFileBytes = _localFileProvider.ReadBytes(originalFile); //resize the image var resizedBytes = _imageProcessor.ResizeImage(originalFileBytes, width, height); //write this to disk var resizedFileName = SafeWriteBytesToFile(fileName, serveFileDirectory, resizedBytes); fileNameWithDirectory = _localFileProvider.CombinePaths(serveFileDirectory, resizedFileName); //now return return(ApplicationEngine.MapUrl(fileNameWithDirectory)); // /abc_150_150.jpg }