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; } }