Files
GazpromApp/ViewModels/Basic/ImageViewModel.cs
T

52 lines
1.1 KiB
C#

using System.IO;
using Avalonia.Media.Imaging;
using CommunityToolkit.Mvvm.ComponentModel;
using GazpromApp.Models;
namespace GazpromApp.ViewModels;
public partial class ImageViewModel : ViewModelBase
{
private Image Image { get; }
[ObservableProperty]
private byte[]? _bytes;
// EF stuff
[ObservableProperty]
private Point? _point;
[ObservableProperty]
private Equipment? _equipment;
[ObservableProperty]
private Bitmap? _fileName;
public ImageViewModel(Image image)
{
Bytes = image.Bytes;
Equipment = image.Equipment;
Point = image.Point;
FileName = image.Bytes is { Length: > 0 } ? new Bitmap(new MemoryStream(image.Bytes)) : null;
Image = image;
}
public ImageViewModel()
{
Bytes = null;
Equipment = null;
Point = null;
Image = new Image();
}
public Image GetImage()
{
var ms = new MemoryStream();
FileName?.Save(ms);
Image.Bytes = ms.ToArray();
Image.Equipment = Equipment;
Image.Point = Point;
return Image;
}
}