52 lines
1.1 KiB
C#
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;
|
|
}
|
|
} |