public MediaImage UploadImageWithStream(Stream fileStream, MediaImage image, bool waitForUploadResult = false)
{
using (var thumbnailFileStream = new MemoryStream())
{
fileStream = RotateImage(fileStream);
var size = GetSize(fileStream);
CreatePngThumbnail(fileStream, thumbnailFileStream, ThumbnailSize);
var folderName = mediaFileService.CreateRandomFolderName();
var publicFileName = MediaHelper.RemoveInvalidPathSymbols(MediaImageHelper.CreatePublicFileName(image.OriginalFileName, image.OriginalFileExtension));
// Create new original image and upload file stream to the storage
var originalImage = CreateImage(null, image.OriginalFileName, image.OriginalFileExtension, Path.GetFileName(image.Title), size, image.Size, image);
SetThumbnailParameters(originalImage, ThumbnailSize, thumbnailFileStream.Length);
mediaImageVersionPathService.SetPathForNewOriginal(originalImage, folderName, publicFileName, ImageHelper.GetImageType(image.OriginalFileExtension));
unitOfWork.BeginTransaction();
repository.Save(originalImage);
if (!waitForUploadResult)
{
unitOfWork.Commit();
}
StartTasksForImage(originalImage, fileStream, thumbnailFileStream, false, waitForUploadResult);
if (waitForUploadResult)
{
unitOfWork.Commit();
Events.MediaManagerEvents.Instance.OnMediaFileUpdated(originalImage);
}
return originalImage;
}
}