Files
sourcegit/src/ViewModels/LFSImageDiff.cs
leo 40765826ce code_review: PR #1492
- Remove all synchronous method in commands
- `Command.ReadToEndAsync` now is protected method
- Rename `ResultAsync` to `GetResultAsync`
- Call `ConfigureAwait(false)` when there's no context

Signed-off-by: leo <longshuang@msn.cn>
2025-07-03 17:30:06 +08:00

44 lines
1.2 KiB
C#

using System.Threading.Tasks;
using Avalonia.Threading;
using CommunityToolkit.Mvvm.ComponentModel;
namespace SourceGit.ViewModels
{
public class LFSImageDiff : ObservableObject
{
public Models.LFSDiff LFS
{
get;
}
public Models.ImageDiff Image
{
get => _image;
private set => SetProperty(ref _image, value);
}
public LFSImageDiff(string repo, Models.LFSDiff lfs, Models.ImageDecoder decoder)
{
LFS = lfs;
Task.Run(async () =>
{
var oldImage = await ImageSource.FromLFSObjectAsync(repo, lfs.Old, decoder).ConfigureAwait(false);
var newImage = await ImageSource.FromLFSObjectAsync(repo, lfs.New, decoder).ConfigureAwait(false);
var img = new Models.ImageDiff()
{
Old = oldImage.Bitmap,
OldFileSize = oldImage.Size,
New = newImage.Bitmap,
NewFileSize = newImage.Size
};
Dispatcher.UIThread.Post(() => Image = img);
});
}
private Models.ImageDiff _image;
}
}