Modifying points works
This commit is contained in:
+1
@@ -5,6 +5,7 @@
|
|||||||
<map>
|
<map>
|
||||||
<entry key="App.axaml" value="GazpromApp.csproj" />
|
<entry key="App.axaml" value="GazpromApp.csproj" />
|
||||||
<entry key="Views/EditPointDialog.axaml" value="GazpromApp.csproj" />
|
<entry key="Views/EditPointDialog.axaml" value="GazpromApp.csproj" />
|
||||||
|
<entry key="Views/ImageView.axaml" value="GazpromApp.csproj" />
|
||||||
<entry key="Views/MainWindow.axaml" value="GazpromApp.csproj" />
|
<entry key="Views/MainWindow.axaml" value="GazpromApp.csproj" />
|
||||||
<entry key="Views/NewPointDialog.axaml" value="GazpromApp.csproj" />
|
<entry key="Views/NewPointDialog.axaml" value="GazpromApp.csproj" />
|
||||||
<entry key="Views/NewPointView.axaml" value="GazpromApp.csproj" />
|
<entry key="Views/NewPointView.axaml" value="GazpromApp.csproj" />
|
||||||
|
|||||||
@@ -14,6 +14,7 @@
|
|||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Avalonia" Version="11.3.2" />
|
<PackageReference Include="Avalonia" Version="11.3.2" />
|
||||||
|
<PackageReference Include="Avalonia.Controls.ItemsRepeater" Version="11.1.5" />
|
||||||
<PackageReference Include="Avalonia.Desktop" Version="11.3.2" />
|
<PackageReference Include="Avalonia.Desktop" Version="11.3.2" />
|
||||||
<PackageReference Include="Avalonia.Themes.Fluent" Version="11.3.2" />
|
<PackageReference Include="Avalonia.Themes.Fluent" Version="11.3.2" />
|
||||||
<PackageReference Include="Avalonia.Fonts.Inter" Version="11.3.2" />
|
<PackageReference Include="Avalonia.Fonts.Inter" Version="11.3.2" />
|
||||||
|
|||||||
@@ -3,4 +3,7 @@ using GazpromApp.ViewModels;
|
|||||||
|
|
||||||
namespace GazpromApp.Messages;
|
namespace GazpromApp.Messages;
|
||||||
|
|
||||||
public class EditPointMessage : AsyncRequestMessage<PointViewModel?>;
|
public class EditPointMessage(PointViewModel pointViewModel) : AsyncRequestMessage<PointViewModel?>
|
||||||
|
{
|
||||||
|
public PointViewModel Point { get; } = pointViewModel;
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
using CommunityToolkit.Mvvm.Messaging.Messages;
|
||||||
|
using GazpromApp.ViewModels;
|
||||||
|
|
||||||
|
namespace GazpromApp.Messages;
|
||||||
|
|
||||||
|
public class ViewImageMessage(ImageViewModel imageViewModel) : AsyncRequestMessage<ImageViewModel?>
|
||||||
|
{
|
||||||
|
public ImageViewModel Image { get; } = imageViewModel;
|
||||||
|
}
|
||||||
@@ -1,6 +1,5 @@
|
|||||||
using System;
|
using System.Collections.Generic;
|
||||||
using System.Collections.Generic;
|
using System.IO;
|
||||||
using System.Runtime.InteropServices.JavaScript;
|
|
||||||
using Avalonia.Media.Imaging;
|
using Avalonia.Media.Imaging;
|
||||||
using CommunityToolkit.Mvvm.ComponentModel;
|
using CommunityToolkit.Mvvm.ComponentModel;
|
||||||
using GazpromApp.Models;
|
using GazpromApp.Models;
|
||||||
@@ -24,13 +23,23 @@ public partial class ImageViewModel : ViewModelBase
|
|||||||
Bytes = image.Bytes;
|
Bytes = image.Bytes;
|
||||||
Equipment = image.Equipment;
|
Equipment = image.Equipment;
|
||||||
Points = image.Points;
|
Points = image.Points;
|
||||||
|
FileName = image.Bytes is { Length: > 0 } ? new Bitmap(new MemoryStream(image.Bytes)) : null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ImageViewModel()
|
||||||
|
{
|
||||||
|
Bytes = null;
|
||||||
|
Equipment = null;
|
||||||
|
Points = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Image GetImage()
|
public Image GetImage()
|
||||||
{
|
{
|
||||||
|
MemoryStream ms = new MemoryStream();
|
||||||
|
FileName?.Save(ms);
|
||||||
return new Image()
|
return new Image()
|
||||||
{
|
{
|
||||||
Bytes = Bytes ?? [],
|
Bytes = ms.ToArray(),
|
||||||
Equipment = Equipment ?? [],
|
Equipment = Equipment ?? [],
|
||||||
Points = Points ?? [],
|
Points = Points ?? [],
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,6 +1,120 @@
|
|||||||
namespace GazpromApp.ViewModels;
|
using System.Collections.Generic;
|
||||||
|
using System.Collections.ObjectModel;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Avalonia.Controls;
|
||||||
|
using Avalonia.Media.Imaging;
|
||||||
|
using Avalonia.Platform.Storage;
|
||||||
|
using CommunityToolkit.Mvvm.ComponentModel;
|
||||||
|
using CommunityToolkit.Mvvm.Input;
|
||||||
|
using CommunityToolkit.Mvvm.Messaging;
|
||||||
|
using GazpromApp.Messages;
|
||||||
|
using GazpromApp.Models;
|
||||||
|
using Image = GazpromApp.Models.Image;
|
||||||
|
|
||||||
|
namespace GazpromApp.ViewModels;
|
||||||
|
|
||||||
public partial class EditPointDialogViewModel : ViewModelBase
|
public partial class EditPointDialogViewModel : ViewModelBase
|
||||||
{
|
{
|
||||||
|
public ObservableCollection<ImageViewModel> Images { get; set; }
|
||||||
|
|
||||||
|
[ObservableProperty]
|
||||||
|
[NotifyCanExecuteChangedFor(nameof(CompleteEditCommand))]
|
||||||
|
private string? _name;
|
||||||
|
|
||||||
|
[ObservableProperty]
|
||||||
|
[NotifyCanExecuteChangedFor(nameof(CompleteEditCommand))]
|
||||||
|
private string? _description;
|
||||||
|
|
||||||
|
[ObservableProperty]
|
||||||
|
private bool _isNameEditing;
|
||||||
|
|
||||||
|
[ObservableProperty]
|
||||||
|
private bool _isDescriptionEditing;
|
||||||
|
|
||||||
|
[RelayCommand]
|
||||||
|
private void EditName()
|
||||||
|
{
|
||||||
|
IsNameEditing = !IsNameEditing;
|
||||||
|
IsDescriptionEditing = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
[RelayCommand]
|
||||||
|
private void EditDescription()
|
||||||
|
{
|
||||||
|
IsDescriptionEditing = !IsDescriptionEditing;
|
||||||
|
IsNameEditing = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
[RelayCommand]
|
||||||
|
private async Task AddImage(Window w)
|
||||||
|
{
|
||||||
|
IReadOnlyList<IStorageFile> files = await w.StorageProvider.OpenFilePickerAsync(new FilePickerOpenOptions()
|
||||||
|
{
|
||||||
|
AllowMultiple = true,
|
||||||
|
Title = "Выберите одну или несколько картинок",
|
||||||
|
FileTypeFilter = [FilePickerFileTypes.ImageAll],
|
||||||
|
});
|
||||||
|
foreach (var file in files)
|
||||||
|
Images.Add(new ImageViewModel(new Image()) { FileName = new Bitmap(file.Path.AbsolutePath) });
|
||||||
|
|
||||||
|
IsImagesEmpty = Images.Count == 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
[RelayCommand]
|
||||||
|
private void DeleteImage(ImageViewModel image)
|
||||||
|
{
|
||||||
|
Images.Remove(image);
|
||||||
|
IsImagesEmpty = Images.Count == 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
[RelayCommand]
|
||||||
|
private async Task ViewImage(ImageViewModel image)
|
||||||
|
{
|
||||||
|
_ = await WeakReferenceMessenger.Default.Send(new ViewImageMessage(image));
|
||||||
|
}
|
||||||
|
|
||||||
|
private bool CanCompleteEdit() => !string.IsNullOrWhiteSpace(Name);
|
||||||
|
|
||||||
|
[RelayCommand(CanExecute = nameof(CanCompleteEdit))]
|
||||||
|
private void CompleteEdit()
|
||||||
|
{
|
||||||
|
Point point = new Point()
|
||||||
|
{
|
||||||
|
Name = Name,
|
||||||
|
Description = Description,
|
||||||
|
Images = Images.Select(e => e.GetImage()).ToList()
|
||||||
|
};
|
||||||
|
WeakReferenceMessenger.Default.Send(new EditPointDone(new PointViewModel(point)));
|
||||||
|
}
|
||||||
|
|
||||||
|
[RelayCommand]
|
||||||
|
private static void CancelEdit(Window w)
|
||||||
|
{
|
||||||
|
w.Close();
|
||||||
|
}
|
||||||
|
|
||||||
|
[ObservableProperty]
|
||||||
|
private bool _isImagesEmpty;
|
||||||
|
|
||||||
|
public EditPointDialogViewModel()
|
||||||
|
{
|
||||||
|
Name = "";
|
||||||
|
Description = "";
|
||||||
|
Images = [];
|
||||||
|
IsImagesEmpty = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public EditPointDialogViewModel(PointViewModel point)
|
||||||
|
{
|
||||||
|
Name = point.Name;
|
||||||
|
Description = point.Description;
|
||||||
|
Images = new ObservableCollection<ImageViewModel>((point.Images ?? []).Select(e => new ImageViewModel(e)));
|
||||||
|
foreach (ImageViewModel imageViewModel in Images)
|
||||||
|
{
|
||||||
|
Debug.WriteLine(imageViewModel.FileName);
|
||||||
|
}
|
||||||
|
IsImagesEmpty = Images.Count == 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -1,39 +1,44 @@
|
|||||||
using CommunityToolkit.Mvvm.ComponentModel;
|
using CommunityToolkit.Mvvm.ComponentModel;
|
||||||
|
|
||||||
namespace GazpromApp.ViewModels;
|
|
||||||
using GazpromApp.Messages;
|
using GazpromApp.Messages;
|
||||||
using CommunityToolkit.Mvvm.Input;
|
using CommunityToolkit.Mvvm.Input;
|
||||||
using CommunityToolkit.Mvvm.Messaging;
|
using CommunityToolkit.Mvvm.Messaging;
|
||||||
using System.Collections.ObjectModel;
|
using System.Collections.ObjectModel;
|
||||||
using System.Diagnostics;
|
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using GazpromApp.Models;
|
||||||
|
|
||||||
|
namespace GazpromApp.ViewModels;
|
||||||
|
|
||||||
public partial class MainWindowViewModel : ViewModelBase
|
public partial class MainWindowViewModel : ViewModelBase
|
||||||
{
|
{
|
||||||
public ObservableCollection<PointViewModel> Points { get; } = new ObservableCollection<PointViewModel>();
|
public ObservableCollection<PointViewModel> Points { get; } = [];
|
||||||
|
|
||||||
[RelayCommand]
|
[RelayCommand]
|
||||||
private async Task AddPoint()
|
private async Task AddPoint()
|
||||||
{
|
{
|
||||||
var point = await WeakReferenceMessenger.Default.Send(new NewPointMessage());
|
var point = await WeakReferenceMessenger.Default.Send(new NewPointMessage());
|
||||||
|
|
||||||
if (point != null)
|
if (point != null)
|
||||||
Points.Add(point);
|
Points.Add(point);
|
||||||
IsLineVisible = true;
|
|
||||||
|
IsLineVisible = Points.Count > 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
[RelayCommand]
|
||||||
|
private async Task EditPoint(PointViewModel point)
|
||||||
|
{
|
||||||
|
PointViewModel p = await WeakReferenceMessenger.Default.Send(new EditPointMessage(point)) ?? point;
|
||||||
|
Points[Points.IndexOf(point)] = p;
|
||||||
}
|
}
|
||||||
|
|
||||||
[RelayCommand]
|
[RelayCommand]
|
||||||
private void RemovePoint(PointViewModel point)
|
private void RemovePoint(PointViewModel point)
|
||||||
{
|
{
|
||||||
Points.Remove(point);
|
Points.Remove(point);
|
||||||
if (Points.Count == 0)
|
|
||||||
IsLineVisible = false;
|
IsLineVisible = Points.Count > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
[RelayCommand]
|
// Visual properties
|
||||||
private void EditPoint(PointViewModel point)
|
|
||||||
{
|
|
||||||
Debug.WriteLine(point.Name);
|
|
||||||
}
|
|
||||||
|
|
||||||
[ObservableProperty]
|
[ObservableProperty]
|
||||||
private bool _isLineVisible;
|
private bool _isLineVisible;
|
||||||
|
|||||||
@@ -1,10 +1,7 @@
|
|||||||
using System;
|
using System.Collections.Generic;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Collections.ObjectModel;
|
using System.Collections.ObjectModel;
|
||||||
using System.Diagnostics;
|
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Avalonia;
|
|
||||||
using Avalonia.Controls;
|
using Avalonia.Controls;
|
||||||
using Avalonia.Media.Imaging;
|
using Avalonia.Media.Imaging;
|
||||||
using Avalonia.Platform.Storage;
|
using Avalonia.Platform.Storage;
|
||||||
@@ -20,20 +17,14 @@ namespace GazpromApp.ViewModels;
|
|||||||
public partial class NewPointDialogViewModel : ViewModelBase
|
public partial class NewPointDialogViewModel : ViewModelBase
|
||||||
{
|
{
|
||||||
[ObservableProperty]
|
[ObservableProperty]
|
||||||
|
[NotifyCanExecuteChangedFor(nameof(EnterPointCommand))]
|
||||||
private string? _name;
|
private string? _name;
|
||||||
|
|
||||||
[ObservableProperty]
|
[ObservableProperty]
|
||||||
|
[NotifyCanExecuteChangedFor(nameof(EnterPointCommand))]
|
||||||
private string? _description;
|
private string? _description;
|
||||||
|
|
||||||
public ObservableCollection<ImageViewModel> Images { get; } = new ObservableCollection<ImageViewModel>();
|
public ObservableCollection<ImageViewModel> Images { get; } = [];
|
||||||
|
|
||||||
[RelayCommand]
|
|
||||||
public void DeleteImage(ImageViewModel image)
|
|
||||||
{
|
|
||||||
Images.Remove(image);
|
|
||||||
if (Images.Count == 0)
|
|
||||||
IsImagesEmpty = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
[RelayCommand]
|
[RelayCommand]
|
||||||
private async Task AddImage(Window w)
|
private async Task AddImage(Window w)
|
||||||
@@ -46,16 +37,21 @@ public partial class NewPointDialogViewModel : ViewModelBase
|
|||||||
});
|
});
|
||||||
foreach (var file in files)
|
foreach (var file in files)
|
||||||
Images.Add(new ImageViewModel(new Image()) { FileName = new Bitmap(file.Path.AbsolutePath) });
|
Images.Add(new ImageViewModel(new Image()) { FileName = new Bitmap(file.Path.AbsolutePath) });
|
||||||
IsImagesEmpty = false;
|
|
||||||
|
IsImagesEmpty = Images.Count == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
[ObservableProperty]
|
[RelayCommand]
|
||||||
private bool _isImagesEmpty = true;
|
private void DeleteImage(ImageViewModel image)
|
||||||
|
{
|
||||||
|
Images.Remove(image);
|
||||||
|
IsImagesEmpty = Images.Count == 0;
|
||||||
|
}
|
||||||
|
|
||||||
private bool CanExecuteEnterPoint() => !string.IsNullOrEmpty(Name) || !string.IsNullOrEmpty(Description);
|
private bool CanEnterPoint() => !string.IsNullOrEmpty(Name);
|
||||||
|
|
||||||
[RelayCommand(CanExecute = nameof(CanExecuteEnterPoint))]
|
[RelayCommand (CanExecute = nameof(CanEnterPoint))]
|
||||||
public void EnterPoint()
|
private void EnterPoint()
|
||||||
{
|
{
|
||||||
Point point = new Point()
|
Point point = new Point()
|
||||||
{
|
{
|
||||||
@@ -65,4 +61,15 @@ public partial class NewPointDialogViewModel : ViewModelBase
|
|||||||
};
|
};
|
||||||
WeakReferenceMessenger.Default.Send(new NewPointDone(new PointViewModel(point)));
|
WeakReferenceMessenger.Default.Send(new NewPointDone(new PointViewModel(point)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[RelayCommand]
|
||||||
|
private static void CancelEnterPoint(Window w)
|
||||||
|
{
|
||||||
|
w.Close();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Visual properties
|
||||||
|
|
||||||
|
[ObservableProperty]
|
||||||
|
private bool _isImagesEmpty = true;
|
||||||
}
|
}
|
||||||
@@ -2,8 +2,104 @@
|
|||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
xmlns:vm="using:GazpromApp.ViewModels"
|
||||||
|
x:Name="Window"
|
||||||
|
mc:Ignorable="d" d:DesignWidth="1000" d:DesignHeight="600"
|
||||||
|
Width="1000" Height="600"
|
||||||
x:Class="GazpromApp.Views.EditPointDialog"
|
x:Class="GazpromApp.Views.EditPointDialog"
|
||||||
Title="EditPointDialog">
|
x:DataType="vm:EditPointDialogViewModel"
|
||||||
Welcome to Avalonia!
|
Title="Редактирование/просмотр объекта"
|
||||||
|
Icon="/Assets/ic_fluent_edit_24_filled (Custom).png"
|
||||||
|
WindowStartupLocation="CenterOwner">
|
||||||
|
<Design.DataContext>
|
||||||
|
<vm:EditPointDialogViewModel/>
|
||||||
|
</Design.DataContext>
|
||||||
|
<Grid RowDefinitions="70,150,*,Auto" ColumnDefinitions="*,100,220" x:Name="Root">
|
||||||
|
<Panel Grid.RowSpan="2" Grid.Column="2" HorizontalAlignment="Center">
|
||||||
|
<ScrollViewer HorizontalAlignment="Center">
|
||||||
|
<StackPanel>
|
||||||
|
<ItemsRepeater HorizontalAlignment="Center"
|
||||||
|
ItemsSource="{Binding Images}">
|
||||||
|
<ItemsRepeater.Layout>
|
||||||
|
<UniformGridLayout Orientation="Horizontal" MaximumRowsOrColumns="1"/>
|
||||||
|
</ItemsRepeater.Layout>
|
||||||
|
<ItemsRepeater.ItemTemplate>
|
||||||
|
<DataTemplate DataType="vm:ImageViewModel">
|
||||||
|
<Border Margin="4" CornerRadius="4" Background="LightGray">
|
||||||
|
<Grid Margin="2" Width="200" Height="200" Background="LightGray"
|
||||||
|
ColumnDefinitions="*,20,4,20,8" RowDefinitions="8,20,*">
|
||||||
|
<Image Stretch="Uniform" Width="200" Height="200" Grid.RowSpan="3" Grid.ColumnSpan="5"
|
||||||
|
Source="{Binding FileName}" />
|
||||||
|
<Button Grid.Row="1" Grid.Column="1" Width="20" Height="20"
|
||||||
|
Command="{Binding #Root.((vm:EditPointDialogViewModel)DataContext).ViewImageCommand}"
|
||||||
|
CommandParameter="{Binding .}">
|
||||||
|
<Image Width="16" Height="16" Source="avares://GazpromApp/Assets/ic_fluent_eye_show_24_filled (Custom) 16.png"/>
|
||||||
|
</Button>
|
||||||
|
<Button Grid.Row="1" Grid.Column="3" Width="20" Height="20"
|
||||||
|
Command="{Binding #Root.((vm:EditPointDialogViewModel)DataContext).DeleteImageCommand}"
|
||||||
|
CommandParameter="{Binding .}">
|
||||||
|
<Image Width="16" Height="16" Source="avares://GazpromApp/Assets/ic_fluent_delete_24_filled (Custom) 16.png"/>
|
||||||
|
</Button>
|
||||||
|
</Grid>
|
||||||
|
</Border>
|
||||||
|
</DataTemplate>
|
||||||
|
</ItemsRepeater.ItemTemplate>
|
||||||
|
</ItemsRepeater>
|
||||||
|
<Button HorizontalAlignment="Center" VerticalAlignment="Center" IsVisible="{Binding !IsImagesEmpty}"
|
||||||
|
Command="{Binding AddImageCommand}"
|
||||||
|
CommandParameter="{Binding #Window}">
|
||||||
|
<Image Width="24" Source="avares://GazpromApp/Assets/ic_fluent_camera_add_24_filled (Custom).png"/>
|
||||||
|
</Button>
|
||||||
|
</StackPanel>
|
||||||
|
</ScrollViewer>
|
||||||
|
<Button HorizontalAlignment="Center" VerticalAlignment="Center" IsVisible="{Binding IsImagesEmpty}"
|
||||||
|
Command="{Binding AddImageCommand}"
|
||||||
|
CommandParameter="{Binding #Window}">
|
||||||
|
<Image Width="24" Source="avares://GazpromApp/Assets/ic_fluent_camera_add_24_filled (Custom).png"/>
|
||||||
|
</Button>
|
||||||
|
</Panel>
|
||||||
|
|
||||||
|
<TextBlock Grid.Column="0" Grid.Row="0" FontSize="28" Margin="20,4,0,4"
|
||||||
|
Text="{Binding Name}"
|
||||||
|
IsVisible="{Binding !IsNameEditing}"/>
|
||||||
|
<TextBox Grid.Column="0" Grid.Row="0" Margin="12,12,0,4"
|
||||||
|
Text="{Binding Name}"
|
||||||
|
IsVisible="{Binding IsNameEditing}"/>
|
||||||
|
<Button Grid.Column="1" Grid.Row="0" HorizontalAlignment="Center" Margin="10"
|
||||||
|
Command="{Binding EditNameCommand}">
|
||||||
|
<Image Width="24" Height="24" Source="avares://GazpromApp/Assets/ic_fluent_edit_24_filled (Custom).png"/>
|
||||||
|
</Button>
|
||||||
|
<TextBlock Grid.Column="0" Grid.Row="1" Margin="20,4,0,4"
|
||||||
|
Text="{Binding Description}"
|
||||||
|
IsVisible="{Binding !IsDescriptionEditing}"/>
|
||||||
|
<TextBox Grid.Column="0" Grid.Row="1" Margin="12,4,0,4"
|
||||||
|
Text="{Binding Description}"
|
||||||
|
IsVisible="{Binding IsDescriptionEditing}"/>
|
||||||
|
<Button Grid.Column="1" Grid.Row="1" HorizontalAlignment="Center" Margin="10"
|
||||||
|
Command="{Binding EditDescriptionCommand}">
|
||||||
|
<Image Width="24" Height="24" Source="avares://GazpromApp/Assets/ic_fluent_edit_24_filled (Custom).png"/>
|
||||||
|
</Button>
|
||||||
|
<TabControl Grid.Column="0" Grid.ColumnSpan="3" Grid.Row="2">
|
||||||
|
<TabItem Header="Оборудование">
|
||||||
|
<ScrollViewer>
|
||||||
|
<StackPanel>
|
||||||
|
|
||||||
|
</StackPanel>
|
||||||
|
</ScrollViewer>
|
||||||
|
</TabItem>
|
||||||
|
<TabItem Header="Свойства">
|
||||||
|
<ScrollViewer>
|
||||||
|
<StackPanel>
|
||||||
|
|
||||||
|
</StackPanel>
|
||||||
|
</ScrollViewer>
|
||||||
|
</TabItem>
|
||||||
|
</TabControl>
|
||||||
|
|
||||||
|
<Button Grid.Column="0" Grid.Row="3" Margin="8" Content="Отменить"
|
||||||
|
Command="{Binding CancelEditCommand}"
|
||||||
|
CommandParameter="{Binding #Window}"/>
|
||||||
|
<Button Grid.Column="2" Grid.Row="3" Margin="8" Content="Сохранить" HorizontalAlignment="Right"
|
||||||
|
Command="{Binding CompleteEditCommand}"/>
|
||||||
|
</Grid>
|
||||||
</Window>
|
</Window>
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
using Avalonia.Controls;
|
using Avalonia.Controls;
|
||||||
using CommunityToolkit.Mvvm.Messaging;
|
using CommunityToolkit.Mvvm.Messaging;
|
||||||
using GazpromApp.Messages;
|
using GazpromApp.Messages;
|
||||||
|
using GazpromApp.ViewModels;
|
||||||
|
|
||||||
namespace GazpromApp.Views;
|
namespace GazpromApp.Views;
|
||||||
|
|
||||||
@@ -10,6 +11,18 @@ public partial class EditPointDialog : Window
|
|||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
|
||||||
|
if (Design.IsDesignMode)
|
||||||
|
return;
|
||||||
|
|
||||||
|
WeakReferenceMessenger.Default.Register<EditPointDialog, ViewImageMessage>(this, static (w, m) =>
|
||||||
|
{
|
||||||
|
ImageView dialog = new ImageView()
|
||||||
|
{
|
||||||
|
DataContext = m.Image
|
||||||
|
};
|
||||||
|
m.Reply(dialog.ShowDialog<ImageViewModel?>(w));
|
||||||
|
});
|
||||||
|
|
||||||
WeakReferenceMessenger.Default.Register<EditPointDialog, EditPointDone>(this, static (w, m) =>
|
WeakReferenceMessenger.Default.Register<EditPointDialog, EditPointDone>(this, static (w, m) =>
|
||||||
{
|
{
|
||||||
w.Close(m.Point);
|
w.Close(m.Point);
|
||||||
|
|||||||
@@ -0,0 +1,17 @@
|
|||||||
|
<Window xmlns="https://github.com/avaloniaui"
|
||||||
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
|
xmlns:vm="using:GazpromApp.ViewModels"
|
||||||
|
x:Name="Window"
|
||||||
|
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
||||||
|
Width="{Binding FileName.Size.Width}" Height="{Binding FileName.Size.Height}" MaxWidth="1280" MaxHeight="720"
|
||||||
|
x:Class="GazpromApp.Views.ImageView"
|
||||||
|
x:DataType="vm:ImageViewModel"
|
||||||
|
Title="Просмотр изображения"
|
||||||
|
WindowStartupLocation="CenterOwner">
|
||||||
|
<Design.DataContext>
|
||||||
|
<vm:ImageViewModel/>
|
||||||
|
</Design.DataContext>
|
||||||
|
<Image Source="{Binding FileName}"/>
|
||||||
|
</Window>
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
using Avalonia;
|
||||||
|
using Avalonia.Controls;
|
||||||
|
using Avalonia.Markup.Xaml;
|
||||||
|
|
||||||
|
namespace GazpromApp.Views;
|
||||||
|
|
||||||
|
public partial class ImageView : Window
|
||||||
|
{
|
||||||
|
public ImageView()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
|
||||||
|
if (Design.IsDesignMode)
|
||||||
|
return;
|
||||||
|
|
||||||
|
this.ExtendClientAreaToDecorationsHint = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -4,6 +4,7 @@
|
|||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
xmlns:vm="using:GazpromApp.ViewModels"
|
xmlns:vm="using:GazpromApp.ViewModels"
|
||||||
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
||||||
|
Width="1424" Height="714"
|
||||||
x:Class="GazpromApp.Views.MainWindow"
|
x:Class="GazpromApp.Views.MainWindow"
|
||||||
x:DataType="vm:MainWindowViewModel"
|
x:DataType="vm:MainWindowViewModel"
|
||||||
Icon="/Assets/avalonia-logo.ico"
|
Icon="/Assets/avalonia-logo.ico"
|
||||||
@@ -58,7 +59,13 @@
|
|||||||
<ItemsControl ItemsSource="{Binding Points}">
|
<ItemsControl ItemsSource="{Binding Points}">
|
||||||
<ItemsControl.ItemTemplate>
|
<ItemsControl.ItemTemplate>
|
||||||
<DataTemplate DataType="vm:PointViewModel">
|
<DataTemplate DataType="vm:PointViewModel">
|
||||||
<Grid ColumnDefinitions="200, *, Auto, Auto" Margin="10,6,18,6" RowDefinitions="12, Auto">
|
<Grid Margin="10,6,18,6" RowDefinitions="12, Auto">
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="Auto" MaxWidth="300"/>
|
||||||
|
<ColumnDefinition />
|
||||||
|
<ColumnDefinition Width="Auto" />
|
||||||
|
<ColumnDefinition Width="Auto" />
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
<Rectangle Margin="-2,0,-2,5" Grid.ColumnSpan="4" Height="1" Fill="Gray" Opacity="0.25" VerticalAlignment="Top"/>
|
<Rectangle Margin="-2,0,-2,5" Grid.ColumnSpan="4" Height="1" Fill="Gray" Opacity="0.25" VerticalAlignment="Top"/>
|
||||||
<TextBlock Grid.Row="1" Grid.Column="0" Text="{Binding Name}" FontSize="24" Margin="4" VerticalAlignment="Center"/>
|
<TextBlock Grid.Row="1" Grid.Column="0" Text="{Binding Name}" FontSize="24" Margin="4" VerticalAlignment="Center"/>
|
||||||
<TextBlock Grid.Row="1" Grid.Column="1" Text="{Binding Description}" Margin="4" VerticalAlignment="Center"/>
|
<TextBlock Grid.Row="1" Grid.Column="1" Text="{Binding Description}" Margin="4" VerticalAlignment="Center"/>
|
||||||
|
|||||||
@@ -22,11 +22,12 @@ public partial class MainWindow : Window
|
|||||||
};
|
};
|
||||||
m.Reply(dialog.ShowDialog<PointViewModel?>(w));
|
m.Reply(dialog.ShowDialog<PointViewModel?>(w));
|
||||||
});
|
});
|
||||||
|
|
||||||
WeakReferenceMessenger.Default.Register<MainWindow, EditPointMessage>(this, static (w, m) =>
|
WeakReferenceMessenger.Default.Register<MainWindow, EditPointMessage>(this, static (w, m) =>
|
||||||
{
|
{
|
||||||
EditPointDialog dialog = new EditPointDialog()
|
EditPointDialog dialog = new EditPointDialog()
|
||||||
{
|
{
|
||||||
DataContext = new EditPointDialogViewModel()
|
DataContext = new EditPointDialogViewModel(m.Point)
|
||||||
};
|
};
|
||||||
m.Reply(dialog.ShowDialog<PointViewModel?>(w));
|
m.Reply(dialog.ShowDialog<PointViewModel?>(w));
|
||||||
});
|
});
|
||||||
|
|||||||
+27
-28
@@ -8,7 +8,7 @@
|
|||||||
Width="500" Height="500"
|
Width="500" Height="500"
|
||||||
x:Class="GazpromApp.Views.NewPointDialog"
|
x:Class="GazpromApp.Views.NewPointDialog"
|
||||||
x:DataType="vm:NewPointDialogViewModel"
|
x:DataType="vm:NewPointDialogViewModel"
|
||||||
Title="NewPointDialog"
|
Title="Создание нового объекта"
|
||||||
Icon="/Assets/ic_fluent_home_add_24_filled (Custom).png"
|
Icon="/Assets/ic_fluent_home_add_24_filled (Custom).png"
|
||||||
WindowStartupLocation="CenterOwner">
|
WindowStartupLocation="CenterOwner">
|
||||||
<Design.DataContext>
|
<Design.DataContext>
|
||||||
@@ -33,32 +33,28 @@
|
|||||||
<TextBox Grid.Column="1" Grid.Row="1" Margin="8"
|
<TextBox Grid.Column="1" Grid.Row="1" Margin="8"
|
||||||
Text="{Binding Description}"/>
|
Text="{Binding Description}"/>
|
||||||
<Panel Grid.Column="1" Grid.Row="2" Margin="8" IsVisible="{Binding !IsImagesEmpty}">
|
<Panel Grid.Column="1" Grid.Row="2" Margin="8" IsVisible="{Binding !IsImagesEmpty}">
|
||||||
<ScrollViewer HorizontalAlignment="Center">
|
<ScrollViewer>
|
||||||
<StackPanel Orientation="Vertical" Spacing="6">
|
<StackPanel>
|
||||||
<ItemsControl ItemsSource="{Binding Images}">
|
<ItemsRepeater ItemsSource="{Binding Images}" HorizontalAlignment="Center">
|
||||||
<ItemsControl.ItemTemplate>
|
<ItemsRepeater.Layout>
|
||||||
|
<UniformGridLayout Orientation="Horizontal" MaximumRowsOrColumns="1"/>
|
||||||
|
</ItemsRepeater.Layout>
|
||||||
|
<ItemsRepeater.ItemTemplate>
|
||||||
<DataTemplate DataType="vm:ImageViewModel">
|
<DataTemplate DataType="vm:ImageViewModel">
|
||||||
<Grid Margin="6" Width="200" Height="200" Background="LightGray">
|
<Border Margin="4" CornerRadius="4" Background="LightGray">
|
||||||
<Grid.RowDefinitions>
|
<Grid Margin="2" Width="200" Height="200" Background="LightGray"
|
||||||
<RowDefinition MaxHeight="8"/>
|
ColumnDefinitions="*,20,8" RowDefinitions="8,20,*">
|
||||||
<RowDefinition MaxHeight="20"/>
|
<Image Stretch="Uniform" Width="200" Height="200" Grid.RowSpan="3" Grid.ColumnSpan="3" Source="{Binding FileName}" />
|
||||||
<RowDefinition/>
|
<Button Grid.Row="1" Grid.Column="1" Width="20" Height="20"
|
||||||
</Grid.RowDefinitions>
|
Command="{Binding #Root.((vm:NewPointDialogViewModel)DataContext).DeleteImageCommand}"
|
||||||
<Grid.ColumnDefinitions>
|
CommandParameter="{Binding .}">
|
||||||
<ColumnDefinition/>
|
<Image Width="16" Height="16" Source="avares://GazpromApp/Assets/ic_fluent_delete_24_filled (Custom) 16.png"/>
|
||||||
<ColumnDefinition MaxWidth="20"/>
|
</Button>
|
||||||
<ColumnDefinition MaxWidth="8"/>
|
</Grid>
|
||||||
</Grid.ColumnDefinitions>
|
</Border>
|
||||||
<Image Stretch="Uniform" Width="200" Height="200" Grid.RowSpan="3" Grid.ColumnSpan="3" Source="{Binding FileName}" />
|
|
||||||
<Button Grid.Row="1" Grid.Column="1" Width="20" Height="20"
|
|
||||||
Command="{Binding #Root.((vm:NewPointDialogViewModel)DataContext).DeleteImage}"
|
|
||||||
CommandParameter="{Binding .}">
|
|
||||||
<Image Width="16" Height="16" Source="avares://GazpromApp/Assets/ic_fluent_delete_24_filled (Custom) 16.png"/>
|
|
||||||
</Button>
|
|
||||||
</Grid>
|
|
||||||
</DataTemplate>
|
</DataTemplate>
|
||||||
</ItemsControl.ItemTemplate>
|
</ItemsRepeater.ItemTemplate>
|
||||||
</ItemsControl>
|
</ItemsRepeater>
|
||||||
<Button HorizontalAlignment="Center" IsVisible="True"
|
<Button HorizontalAlignment="Center" IsVisible="True"
|
||||||
Command="{Binding AddImageCommand}"
|
Command="{Binding AddImageCommand}"
|
||||||
CommandParameter="{Binding #Window}">
|
CommandParameter="{Binding #Window}">
|
||||||
@@ -67,15 +63,18 @@
|
|||||||
</StackPanel>
|
</StackPanel>
|
||||||
</ScrollViewer>
|
</ScrollViewer>
|
||||||
</Panel>
|
</Panel>
|
||||||
<Panel Grid.Column="1" Grid.Row="2" Margin="8" IsVisible="{Binding IsImagesEmpty}">
|
<Panel Grid.Column="1" Grid.Row="2" Margin="8"
|
||||||
|
IsVisible="{Binding IsImagesEmpty}">
|
||||||
<Button HorizontalAlignment="Center" IsVisible="True"
|
<Button HorizontalAlignment="Center" IsVisible="True"
|
||||||
Command="{Binding AddImageCommand}"
|
Command="{Binding AddImageCommand}"
|
||||||
CommandParameter="{Binding #Window}">
|
CommandParameter="{Binding #Window}">
|
||||||
<Image Width="24" Source="avares://GazpromApp/Assets/ic_fluent_camera_add_24_filled (Custom).png"/>
|
<Image Width="24" Source="avares://GazpromApp/Assets/ic_fluent_camera_add_24_filled (Custom).png"/>
|
||||||
</Button>
|
</Button>
|
||||||
</Panel>
|
</Panel>
|
||||||
<Button Grid.Column="0" Grid.Row="3" Margin="8" Content="Отменить"/>
|
<Button Grid.Column="0" Grid.Row="3" Margin="8" Content="Отменить"
|
||||||
|
Command="{Binding CancelEnterPointCommand}"
|
||||||
|
CommandParameter="{Binding #Window}"/>
|
||||||
<Button Grid.Column="1" Grid.Row="3" Margin="8" Content="Добавить" HorizontalAlignment="Right"
|
<Button Grid.Column="1" Grid.Row="3" Margin="8" Content="Добавить" HorizontalAlignment="Right"
|
||||||
Command="{Binding EnterPoint}"/>
|
Command="{Binding EnterPointCommand}"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
</Window>
|
</Window>
|
||||||
@@ -1 +1 @@
|
|||||||
b39fbfff853dde6ae57edbe99e59c56d22aa53d0326d20ce7c807437539a62cf
|
99754bb29314deb0062acd8eb2e60c354c5dca2595b078551064b5cbb81f0742
|
||||||
|
|||||||
Binary file not shown.
@@ -13,7 +13,7 @@ using System.Reflection;
|
|||||||
[assembly: System.Reflection.AssemblyCompanyAttribute("GazpromApp")]
|
[assembly: System.Reflection.AssemblyCompanyAttribute("GazpromApp")]
|
||||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+e5f8982c44238a773772dc3307004baaf5ecd29e")]
|
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+7beee75d142db7aa3c6c717883de75ca5bcd819e")]
|
||||||
[assembly: System.Reflection.AssemblyProductAttribute("GazpromApp")]
|
[assembly: System.Reflection.AssemblyProductAttribute("GazpromApp")]
|
||||||
[assembly: System.Reflection.AssemblyTitleAttribute("GazpromApp")]
|
[assembly: System.Reflection.AssemblyTitleAttribute("GazpromApp")]
|
||||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
811264d263d77176508160eae0ac4612c7553d1736c49a77e3c2381988b04507
|
d49af22cc4de304a3e0a6bfc5beb49f42e4f72fa6595042b67a80c2e9a1a3a11
|
||||||
|
|||||||
@@ -35,6 +35,9 @@ build_metadata.AdditionalFiles.SourceItemGroup = AvaloniaXaml
|
|||||||
[D:/RiderProjects/GazpromApp/Views/EditPointDialog.axaml]
|
[D:/RiderProjects/GazpromApp/Views/EditPointDialog.axaml]
|
||||||
build_metadata.AdditionalFiles.SourceItemGroup = AvaloniaXaml
|
build_metadata.AdditionalFiles.SourceItemGroup = AvaloniaXaml
|
||||||
|
|
||||||
|
[D:/RiderProjects/GazpromApp/Views/ImageView.axaml]
|
||||||
|
build_metadata.AdditionalFiles.SourceItemGroup = AvaloniaXaml
|
||||||
|
|
||||||
[D:/RiderProjects/GazpromApp/Views/MainWindow.axaml]
|
[D:/RiderProjects/GazpromApp/Views/MainWindow.axaml]
|
||||||
build_metadata.AdditionalFiles.SourceItemGroup = AvaloniaXaml
|
build_metadata.AdditionalFiles.SourceItemGroup = AvaloniaXaml
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@@ -200,3 +200,4 @@ D:\RiderProjects\GazpromApp\bin\Debug\net8.0\zh-Hans\Microsoft.CodeAnalysis.Work
|
|||||||
D:\RiderProjects\GazpromApp\bin\Debug\net8.0\zh-Hant\Microsoft.CodeAnalysis.Workspaces.MSBuild.BuildHost.resources.dll
|
D:\RiderProjects\GazpromApp\bin\Debug\net8.0\zh-Hant\Microsoft.CodeAnalysis.Workspaces.MSBuild.BuildHost.resources.dll
|
||||||
D:\RiderProjects\GazpromApp\bin\Debug\net8.0\AvaloniaUI.DiagnosticsSupport.Avalonia.dll
|
D:\RiderProjects\GazpromApp\bin\Debug\net8.0\AvaloniaUI.DiagnosticsSupport.Avalonia.dll
|
||||||
D:\RiderProjects\GazpromApp\bin\Debug\net8.0\Microsoft.IO.RecyclableMemoryStream.dll
|
D:\RiderProjects\GazpromApp\bin\Debug\net8.0\Microsoft.IO.RecyclableMemoryStream.dll
|
||||||
|
D:\RiderProjects\GazpromApp\bin\Debug\net8.0\Avalonia.Controls.ItemsRepeater.dll
|
||||||
|
|||||||
@@ -54,6 +54,10 @@
|
|||||||
"target": "Package",
|
"target": "Package",
|
||||||
"version": "[11.3.2, )"
|
"version": "[11.3.2, )"
|
||||||
},
|
},
|
||||||
|
"Avalonia.Controls.ItemsRepeater": {
|
||||||
|
"target": "Package",
|
||||||
|
"version": "[11.1.5, )"
|
||||||
|
},
|
||||||
"Avalonia.Desktop": {
|
"Avalonia.Desktop": {
|
||||||
"target": "Package",
|
"target": "Package",
|
||||||
"version": "[11.3.2, )"
|
"version": "[11.3.2, )"
|
||||||
|
|||||||
@@ -124,6 +124,22 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"Avalonia.Controls.ItemsRepeater/11.1.5": {
|
||||||
|
"type": "package",
|
||||||
|
"dependencies": {
|
||||||
|
"Avalonia": "11.1.5"
|
||||||
|
},
|
||||||
|
"compile": {
|
||||||
|
"lib/net8.0/Avalonia.Controls.ItemsRepeater.dll": {
|
||||||
|
"related": ".xml"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/net8.0/Avalonia.Controls.ItemsRepeater.dll": {
|
||||||
|
"related": ".xml"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"Avalonia.Desktop/11.3.2": {
|
"Avalonia.Desktop/11.3.2": {
|
||||||
"type": "package",
|
"type": "package",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@@ -1971,6 +1987,24 @@
|
|||||||
"lib/netstandard2.0/Avalonia.Controls.ColorPicker.xml"
|
"lib/netstandard2.0/Avalonia.Controls.ColorPicker.xml"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
"Avalonia.Controls.ItemsRepeater/11.1.5": {
|
||||||
|
"sha512": "MfsDSvpa/QUvOw8c8BQtDHHu3DUHYYGjkDBpN0uOpjFqng6qCzkuoyJZ7vIXSlDNb685yqW8VluWMjniz5BI4A==",
|
||||||
|
"type": "package",
|
||||||
|
"path": "avalonia.controls.itemsrepeater/11.1.5",
|
||||||
|
"files": [
|
||||||
|
".nupkg.metadata",
|
||||||
|
".signature.p7s",
|
||||||
|
"Icon.png",
|
||||||
|
"avalonia.controls.itemsrepeater.11.1.5.nupkg.sha512",
|
||||||
|
"avalonia.controls.itemsrepeater.nuspec",
|
||||||
|
"lib/net6.0/Avalonia.Controls.ItemsRepeater.dll",
|
||||||
|
"lib/net6.0/Avalonia.Controls.ItemsRepeater.xml",
|
||||||
|
"lib/net8.0/Avalonia.Controls.ItemsRepeater.dll",
|
||||||
|
"lib/net8.0/Avalonia.Controls.ItemsRepeater.xml",
|
||||||
|
"lib/netstandard2.0/Avalonia.Controls.ItemsRepeater.dll",
|
||||||
|
"lib/netstandard2.0/Avalonia.Controls.ItemsRepeater.xml"
|
||||||
|
]
|
||||||
|
},
|
||||||
"Avalonia.Desktop/11.3.2": {
|
"Avalonia.Desktop/11.3.2": {
|
||||||
"sha512": "b2ZPZ60UN0Uib3ZxFrf+ixYiJTBFaXrpQAcXTSUKTDw0nAU29sbfjvdtpBkBd6+idWpNtI+GhOjf0Mw0v1ncQg==",
|
"sha512": "b2ZPZ60UN0Uib3ZxFrf+ixYiJTBFaXrpQAcXTSUKTDw0nAU29sbfjvdtpBkBd6+idWpNtI+GhOjf0Mw0v1ncQg==",
|
||||||
"type": "package",
|
"type": "package",
|
||||||
@@ -4662,6 +4696,7 @@
|
|||||||
"projectFileDependencyGroups": {
|
"projectFileDependencyGroups": {
|
||||||
"net8.0": [
|
"net8.0": [
|
||||||
"Avalonia >= 11.3.2",
|
"Avalonia >= 11.3.2",
|
||||||
|
"Avalonia.Controls.ItemsRepeater >= 11.1.5",
|
||||||
"Avalonia.Desktop >= 11.3.2",
|
"Avalonia.Desktop >= 11.3.2",
|
||||||
"Avalonia.Diagnostics >= 11.3.2",
|
"Avalonia.Diagnostics >= 11.3.2",
|
||||||
"Avalonia.Fonts.Inter >= 11.3.2",
|
"Avalonia.Fonts.Inter >= 11.3.2",
|
||||||
@@ -4727,6 +4762,10 @@
|
|||||||
"target": "Package",
|
"target": "Package",
|
||||||
"version": "[11.3.2, )"
|
"version": "[11.3.2, )"
|
||||||
},
|
},
|
||||||
|
"Avalonia.Controls.ItemsRepeater": {
|
||||||
|
"target": "Package",
|
||||||
|
"version": "[11.1.5, )"
|
||||||
|
},
|
||||||
"Avalonia.Desktop": {
|
"Avalonia.Desktop": {
|
||||||
"target": "Package",
|
"target": "Package",
|
||||||
"version": "[11.3.2, )"
|
"version": "[11.3.2, )"
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"version": 2,
|
"version": 2,
|
||||||
"dgSpecHash": "BqyaYCbnqG0=",
|
"dgSpecHash": "jPpTgNZhtko=",
|
||||||
"success": true,
|
"success": true,
|
||||||
"projectFilePath": "D:\\RiderProjects\\GazpromApp\\GazpromApp.csproj",
|
"projectFilePath": "D:\\RiderProjects\\GazpromApp\\GazpromApp.csproj",
|
||||||
"expectedPackageFiles": [
|
"expectedPackageFiles": [
|
||||||
@@ -8,6 +8,7 @@
|
|||||||
"C:\\Users\\retrd\\.nuget\\packages\\avalonia.angle.windows.natives\\2.1.25547.20250602\\avalonia.angle.windows.natives.2.1.25547.20250602.nupkg.sha512",
|
"C:\\Users\\retrd\\.nuget\\packages\\avalonia.angle.windows.natives\\2.1.25547.20250602\\avalonia.angle.windows.natives.2.1.25547.20250602.nupkg.sha512",
|
||||||
"C:\\Users\\retrd\\.nuget\\packages\\avalonia.buildservices\\0.0.31\\avalonia.buildservices.0.0.31.nupkg.sha512",
|
"C:\\Users\\retrd\\.nuget\\packages\\avalonia.buildservices\\0.0.31\\avalonia.buildservices.0.0.31.nupkg.sha512",
|
||||||
"C:\\Users\\retrd\\.nuget\\packages\\avalonia.controls.colorpicker\\11.3.2\\avalonia.controls.colorpicker.11.3.2.nupkg.sha512",
|
"C:\\Users\\retrd\\.nuget\\packages\\avalonia.controls.colorpicker\\11.3.2\\avalonia.controls.colorpicker.11.3.2.nupkg.sha512",
|
||||||
|
"C:\\Users\\retrd\\.nuget\\packages\\avalonia.controls.itemsrepeater\\11.1.5\\avalonia.controls.itemsrepeater.11.1.5.nupkg.sha512",
|
||||||
"C:\\Users\\retrd\\.nuget\\packages\\avalonia.desktop\\11.3.2\\avalonia.desktop.11.3.2.nupkg.sha512",
|
"C:\\Users\\retrd\\.nuget\\packages\\avalonia.desktop\\11.3.2\\avalonia.desktop.11.3.2.nupkg.sha512",
|
||||||
"C:\\Users\\retrd\\.nuget\\packages\\avalonia.diagnostics\\11.3.2\\avalonia.diagnostics.11.3.2.nupkg.sha512",
|
"C:\\Users\\retrd\\.nuget\\packages\\avalonia.diagnostics\\11.3.2\\avalonia.diagnostics.11.3.2.nupkg.sha512",
|
||||||
"C:\\Users\\retrd\\.nuget\\packages\\avalonia.fonts.inter\\11.3.2\\avalonia.fonts.inter.11.3.2.nupkg.sha512",
|
"C:\\Users\\retrd\\.nuget\\packages\\avalonia.fonts.inter\\11.3.2\\avalonia.fonts.inter.11.3.2.nupkg.sha512",
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
"restore":{"projectUniqueName":"D:\\RiderProjects\\GazpromApp\\GazpromApp.csproj","projectName":"GazpromApp","projectPath":"D:\\RiderProjects\\GazpromApp\\GazpromApp.csproj","outputPath":"D:\\RiderProjects\\GazpromApp\\obj\\","projectStyle":"PackageReference","fallbackFolders":["C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"],"originalTargetFrameworks":["net8.0"],"sources":{"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\":{},"https://api.nuget.org/v3/index.json":{}},"frameworks":{"net8.0":{"targetAlias":"net8.0","projectReferences":{}}},"warningProperties":{"warnAsError":["NU1605"]},"restoreAuditProperties":{"enableAudit":"true","auditLevel":"low","auditMode":"direct"},"SdkAnalysisLevel":"9.0.200"}"frameworks":{"net8.0":{"targetAlias":"net8.0","dependencies":{"Avalonia":{"target":"Package","version":"[11.3.2, )"},"Avalonia.Desktop":{"target":"Package","version":"[11.3.2, )"},"Avalonia.Diagnostics":{"target":"Package","version":"[11.3.2, )"},"Avalonia.Fonts.Inter":{"target":"Package","version":"[11.3.2, )"},"Avalonia.Themes.Fluent":{"target":"Package","version":"[11.3.2, )"},"AvaloniaUI.DiagnosticsSupport":{"target":"Package","version":"[2.0.4, )"},"CommunityToolkit.Mvvm":{"target":"Package","version":"[8.2.1, )"},"Microsoft.EntityFrameworkCore":{"target":"Package","version":"[9.0.6, )"},"Microsoft.EntityFrameworkCore.Design":{"include":"Runtime, Build, Native, ContentFiles, Analyzers, BuildTransitive","suppressParent":"All","target":"Package","version":"[9.0.6, )"},"Microsoft.EntityFrameworkCore.Sqlite":{"target":"Package","version":"[9.0.6, )"}},"imports":["net461","net462","net47","net471","net472","net48","net481"],"assetTargetFallback":true,"warn":true,"frameworkReferences":{"Microsoft.NETCore.App":{"privateAssets":"all"}},"runtimeIdentifierGraphPath":"C:\\Program Files\\dotnet\\sdk\\9.0.204/PortableRuntimeIdentifierGraph.json"}}
|
"restore":{"projectUniqueName":"D:\\RiderProjects\\GazpromApp\\GazpromApp.csproj","projectName":"GazpromApp","projectPath":"D:\\RiderProjects\\GazpromApp\\GazpromApp.csproj","outputPath":"D:\\RiderProjects\\GazpromApp\\obj\\","projectStyle":"PackageReference","fallbackFolders":["C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"],"originalTargetFrameworks":["net8.0"],"sources":{"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\":{},"https://api.nuget.org/v3/index.json":{}},"frameworks":{"net8.0":{"targetAlias":"net8.0","projectReferences":{}}},"warningProperties":{"warnAsError":["NU1605"]},"restoreAuditProperties":{"enableAudit":"true","auditLevel":"low","auditMode":"direct"},"SdkAnalysisLevel":"9.0.200"}"frameworks":{"net8.0":{"targetAlias":"net8.0","dependencies":{"Avalonia":{"target":"Package","version":"[11.3.2, )"},"Avalonia.Controls.ItemsRepeater":{"target":"Package","version":"[11.1.5, )"},"Avalonia.Desktop":{"target":"Package","version":"[11.3.2, )"},"Avalonia.Diagnostics":{"target":"Package","version":"[11.3.2, )"},"Avalonia.Fonts.Inter":{"target":"Package","version":"[11.3.2, )"},"Avalonia.Themes.Fluent":{"target":"Package","version":"[11.3.2, )"},"AvaloniaUI.DiagnosticsSupport":{"target":"Package","version":"[2.0.4, )"},"CommunityToolkit.Mvvm":{"target":"Package","version":"[8.2.1, )"},"Microsoft.EntityFrameworkCore":{"target":"Package","version":"[9.0.6, )"},"Microsoft.EntityFrameworkCore.Design":{"include":"Runtime, Build, Native, ContentFiles, Analyzers, BuildTransitive","suppressParent":"All","target":"Package","version":"[9.0.6, )"},"Microsoft.EntityFrameworkCore.Sqlite":{"target":"Package","version":"[9.0.6, )"}},"imports":["net461","net462","net47","net471","net472","net48","net481"],"assetTargetFallback":true,"warn":true,"frameworkReferences":{"Microsoft.NETCore.App":{"privateAssets":"all"}},"runtimeIdentifierGraphPath":"C:\\Program Files\\dotnet\\sdk\\9.0.204/PortableRuntimeIdentifierGraph.json"}}
|
||||||
@@ -1 +1 @@
|
|||||||
17512812879557596
|
17514594140227201
|
||||||
@@ -1 +1 @@
|
|||||||
17512812897494006
|
17514599119483488
|
||||||
Reference in New Issue
Block a user