private static void RotateOrientation (string original_path, RotateDirection direction)
{
try {
var uri = new SafeUri (original_path);
using (var metadata = Metadata.Parse (uri)) {
metadata.EnsureAvailableTags ();
var tag = metadata.ImageTag;
var orientation = direction == RotateDirection.Clockwise
? FSpot.Utils.PixbufUtils.Rotate90 (tag.Orientation)
: FSpot.Utils.PixbufUtils.Rotate270 (tag.Orientation);
tag.Orientation = orientation;
var always_sidecar = Preferences.Get<bool> (Preferences.METADATA_ALWAYS_USE_SIDECAR);
metadata.SaveSafely (uri, always_sidecar);
App.Instance.Container.Resolve<IThumbnailService> ().DeleteThumbnails (uri);
}
} catch (Exception e) {
Log.DebugException (e);
throw new RotateException (Catalog.GetString ("Unable to rotate this type of photo"), original_path);
}
}