Task<string> HandleUploadedFile(Stream file, string user, string transformation)
{
return Task<string>.Factory.StartNew (() => {
string filename = user + Hasher.Hash (file);
string path = Path.Combine (imgDirectory, filename);
using (FileStream fs = File.OpenWrite (path)) {
file.CopyTo (fs);
file.Close ();
}
// Rotate if EXIF data are there
var metadataSave = TagLibMetadata.ApplyNeededRotation (path);
// Make a fancy transformation
Log.Info ("Transforming according to: " + transformation);
if (PhotoEffect.ApplyTransformFromString (transformation, path))
TagLibMetadata.RestoreMetadata (path, metadataSave);
return filename;
});
}