forked from amkovkov/GranuSightSoftware2
chore: fix some typos and some refactoring and small changes
This commit is contained in:
@@ -36,7 +36,7 @@ public partial class BrandCalibrationViewModel : ViewModelBase
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
private readonly ILogger<BrandCalibrationViewModel> _logger;
|
private readonly ILogger<BrandCalibrationViewModel> _logger;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// КОнтекст базы данных
|
/// Контекст базы данных
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private readonly Context _context;
|
private readonly Context _context;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -55,35 +55,35 @@ public partial class BrandCalibrationViewModel : ViewModelBase
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Элементы меню
|
/// Элементы меню
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[ObservableProperty] public partial ObservableCollection<MenuItemViewModel> MenuItems { get; set; }
|
[ObservableProperty] public partial ObservableCollection<MenuItemViewModel> MenuItems { get; set; } = new();
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Текущий выбранный элемент меню. Равен -1 если элемент не выбран
|
/// Текущий выбранный элемент меню. Равен -1 если элемент не выбран
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[ObservableProperty] public partial int MenuSelectedIndex { get; set; }
|
[ObservableProperty] public partial int MenuSelectedIndex { get; set; } = -1;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// <see cref="BrandRecord.Id"/> выбранного элемента
|
/// <see cref="BrandRecord.Id"/> выбранного элемента
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[ObservableProperty] public partial int SelectedId { get; set; }
|
[ObservableProperty] public partial int SelectedId { get; set; } = 0;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// <see cref="BrandRecord.SelectedUuid"/> выбранного элемента
|
/// <see cref="BrandRecord.Uuid"/> выбранного элемента
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[ObservableProperty] public partial string SelectedUuid { get; set; }
|
[ObservableProperty] public partial string SelectedUuid { get; set; } = Guid.NewGuid().ToString();
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// <see cref="BrandRecord.SelectedBrandName"/> выбранного элемента
|
/// <see cref="BrandRecord.BrandName"/> выбранного элемента
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[ObservableProperty] public partial string SelectedBrandName { get; set; }
|
[ObservableProperty] public partial string SelectedBrandName { get; set; } = "";
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// <see cref="BrandRecord.SelectedMixtureName"/> выбранного элемента
|
/// <see cref="BrandRecord.MixtureName"/> выбранного элемента
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[ObservableProperty] public partial string SelectedMixtureName { get; set; }
|
[ObservableProperty] public partial string SelectedMixtureName { get; set; } = "";
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// <see cref="BrandRecord.SelectedMixtureNormalRate"/> выбранного элемента
|
/// <see cref="BrandRecord.MixtureNormalRate"/> выбранного элемента
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[ObservableProperty] public partial double SelectedMixtureNormalRate { get; set; }
|
[ObservableProperty] public partial double SelectedMixtureNormalRate { get; set; } = -1;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Можно ли производить перемещение между экранами
|
/// Можно ли производить перемещение между экранами
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[ObservableProperty] public partial bool CanScroll { get; set; }
|
[ObservableProperty] public partial bool CanScroll { get; set; } = true;
|
||||||
|
|
||||||
public BrandCalibrationViewModel(
|
public BrandCalibrationViewModel(
|
||||||
ILogger<BrandCalibrationViewModel> logger,
|
ILogger<BrandCalibrationViewModel> logger,
|
||||||
@@ -99,17 +99,6 @@ public partial class BrandCalibrationViewModel : ViewModelBase
|
|||||||
_navigation = navigation;
|
_navigation = navigation;
|
||||||
_logger.LogInformation("Инициализация");
|
_logger.LogInformation("Инициализация");
|
||||||
|
|
||||||
// Заполняем свойства пустыми значениями
|
|
||||||
MenuOpened = new();
|
|
||||||
MenuItems = new();
|
|
||||||
MenuSelectedIndex = -1;
|
|
||||||
CanScroll = true;
|
|
||||||
SelectedId = 0;
|
|
||||||
SelectedUuid = Guid.NewGuid().ToString();
|
|
||||||
SelectedBrandName = "";
|
|
||||||
SelectedMixtureName = "";
|
|
||||||
SelectedMixtureNormalRate = -1;
|
|
||||||
|
|
||||||
// Получаем записи из базы данных
|
// Получаем записи из базы данных
|
||||||
MenuItems = new ObservableCollection<MenuItemViewModel>(_context.BrandRecords.Select(r => new MenuItemViewModel(r.Id, r.BrandName, r.MixtureName)));
|
MenuItems = new ObservableCollection<MenuItemViewModel>(_context.BrandRecords.Select(r => new MenuItemViewModel(r.Id, r.BrandName, r.MixtureName)));
|
||||||
if (MenuItems.Count() > 0) // Если записи есть,
|
if (MenuItems.Count() > 0) // Если записи есть,
|
||||||
@@ -117,6 +106,13 @@ public partial class BrandCalibrationViewModel : ViewModelBase
|
|||||||
else // Если записей нет,
|
else // Если записей нет,
|
||||||
MenuSelectedIndex = -1; // Устанавливаем, что запись не выбрана
|
MenuSelectedIndex = -1; // Устанавливаем, что запись не выбрана
|
||||||
|
|
||||||
|
// Подписываемся на изменения свойств для обновления CanScroll
|
||||||
|
PropertyChanged += (_, ea) =>
|
||||||
|
{
|
||||||
|
if (ea.PropertyName == nameof(MenuOpened))
|
||||||
|
UpdateCanScroll();
|
||||||
|
};
|
||||||
|
|
||||||
_logger.LogInformation("Инициализировано");
|
_logger.LogInformation("Инициализировано");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -168,11 +164,11 @@ public partial class BrandCalibrationViewModel : ViewModelBase
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Вызывается при изменении <see cref="MenuOpened"/>
|
/// Обновить значение <see cref="CanScroll"/>
|
||||||
/// </summary>
|
/// </summary>
|
||||||
partial void OnMenuOpenedChanged(bool value)
|
private void UpdateCanScroll()
|
||||||
{
|
{
|
||||||
CanScroll = !value;
|
CanScroll = !MenuOpened;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -213,6 +209,7 @@ public partial class BrandCalibrationViewModel : ViewModelBase
|
|||||||
[RelayCommand]
|
[RelayCommand]
|
||||||
private void DeleteRecord()
|
private void DeleteRecord()
|
||||||
{
|
{
|
||||||
|
// TODO: Добавить определение и отображение количества затрагиваемых, записей которые будут повреждены при удалении этой записи
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
_logger.LogTrace("Удаление записи: {}={}, {}={}, {}={}", nameof(BrandRecord.Id), SelectedId, nameof(BrandRecord.BrandName), SelectedBrandName, nameof(BrandRecord.MixtureName), SelectedMixtureName);
|
_logger.LogTrace("Удаление записи: {}={}, {}={}, {}={}", nameof(BrandRecord.Id), SelectedId, nameof(BrandRecord.BrandName), SelectedBrandName, nameof(BrandRecord.MixtureName), SelectedMixtureName);
|
||||||
@@ -269,7 +266,8 @@ public partial class BrandCalibrationViewModel : ViewModelBase
|
|||||||
_context.SaveChanges();
|
_context.SaveChanges();
|
||||||
_logger.LogTrace("Запись удалена");
|
_logger.LogTrace("Запись удалена");
|
||||||
|
|
||||||
confirmViewModel.Closes -= OnConfirmCloses; // Отписываемся от события закрытия экрана подтверждения
|
// Отписываемся от события закрытия экрана подтверждения
|
||||||
|
confirmViewModel.Closes -= OnConfirmCloses;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Создаём View экрана подтверждения
|
// Создаём View экрана подтверждения
|
||||||
@@ -314,7 +312,7 @@ public partial class BrandCalibrationViewModel : ViewModelBase
|
|||||||
mixtureNormalRate: SelectedMixtureNormalRate
|
mixtureNormalRate: SelectedMixtureNormalRate
|
||||||
);
|
);
|
||||||
|
|
||||||
// При добавляем запись в базу данных
|
// Добавляем запись в базу данных
|
||||||
var attachedRecord = _context.BrandRecords.Add(newRecord);
|
var attachedRecord = _context.BrandRecords.Add(newRecord);
|
||||||
|
|
||||||
// Сохраняем изменения в базе данных
|
// Сохраняем изменения в базе данных
|
||||||
@@ -347,14 +345,14 @@ public partial class BrandCalibrationViewModel : ViewModelBase
|
|||||||
if (attachedRecord.MixtureNormalRate != SelectedMixtureNormalRate)
|
if (attachedRecord.MixtureNormalRate != SelectedMixtureNormalRate)
|
||||||
attachedRecord.MixtureNormalRate = SelectedMixtureNormalRate;
|
attachedRecord.MixtureNormalRate = SelectedMixtureNormalRate;
|
||||||
|
|
||||||
|
// Сохраняем изменения в базе данных
|
||||||
|
_context.SaveChanges();
|
||||||
|
_logger.LogTrace("Запись сохранена");
|
||||||
|
|
||||||
// Записываем изменения в меню
|
// Записываем изменения в меню
|
||||||
_logger.LogTrace("Записываем изменения в меню");
|
_logger.LogTrace("Записываем изменения в меню");
|
||||||
MenuItems[MenuSelectedIndex].BrandName = SelectedBrandName;
|
MenuItems[MenuSelectedIndex].BrandName = SelectedBrandName;
|
||||||
MenuItems[MenuSelectedIndex].MixtureName = SelectedMixtureName;
|
MenuItems[MenuSelectedIndex].MixtureName = SelectedMixtureName;
|
||||||
|
|
||||||
// Сохраняем изменения в базе данных
|
|
||||||
_context.SaveChanges();
|
|
||||||
_logger.LogTrace("Запись сохранена");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
<UserControl
|
<UserControl
|
||||||
x:Class="GSS2.Views.AmineContent.BrandCalibrationView"
|
x:Class="GSS2.Views.AmineContent.BrandCalibrationView"
|
||||||
|
x:DataType="vm:BrandCalibrationViewModel"
|
||||||
xmlns:controls="using:GSS2.Controls"
|
xmlns:controls="using:GSS2.Controls"
|
||||||
xmlns:core="using:GSS2.UI.Core"
|
xmlns:core="using:GSS2.UI.Core"
|
||||||
xmlns:i="using:Avalonia.Xaml.Interactivity"
|
xmlns:i="using:Avalonia.Xaml.Interactivity"
|
||||||
xmlns:ia="using:Avalonia.Xaml.Interactions.Custom"
|
xmlns:ia="using:Avalonia.Xaml.Interactions.Custom"
|
||||||
xmlns:lvc="using:LiveChartsCore.SkiaSharpView.Avalonia"
|
|
||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
xmlns:vm="using:GSS2.ViewModels.AmineContent" x:DataType="vm:BrandCalibrationViewModel"
|
xmlns:vm="using:GSS2.ViewModels.AmineContent"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
xmlns="https://github.com/avaloniaui"
|
xmlns="https://github.com/avaloniaui"
|
||||||
>
|
>
|
||||||
@@ -16,19 +16,19 @@
|
|||||||
<!-- Основная форма -->
|
<!-- Основная форма -->
|
||||||
<Grid IsEnabled="{Binding !MenuOpened}">
|
<Grid IsEnabled="{Binding !MenuOpened}">
|
||||||
|
|
||||||
<Grid.RowSpacing>5</Grid.RowSpacing>
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="*" /> <!-- Кнопка "Удалить" -->
|
||||||
|
<ColumnDefinition Width="*" /> <!-- Кнопка "Сохранить" -->
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
|
<Grid.ColumnSpacing>5</Grid.ColumnSpacing>
|
||||||
|
|
||||||
<Grid.RowDefinitions>
|
<Grid.RowDefinitions>
|
||||||
<RowDefinition Height="*" /> <!-- Главная панель -->
|
<RowDefinition Height="*" /> <!-- Главная панель -->
|
||||||
<RowDefinition Height="Auto" /> <!-- Кнопки главной панели -->
|
<RowDefinition Height="Auto" /> <!-- Кнопки главной панели -->
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
|
|
||||||
<Grid.ColumnSpacing>5</Grid.ColumnSpacing>
|
<Grid.RowSpacing>5</Grid.RowSpacing>
|
||||||
|
|
||||||
<Grid.ColumnDefinitions>
|
|
||||||
<ColumnDefinition Width="*" /> <!-- Кнопка "Удалить" -->
|
|
||||||
<ColumnDefinition Width="*" /> <!-- Кнопка "Сохранить" -->
|
|
||||||
</Grid.ColumnDefinitions>
|
|
||||||
|
|
||||||
<!-- Главная панель -->
|
<!-- Главная панель -->
|
||||||
<Grid
|
<Grid
|
||||||
@@ -52,10 +52,10 @@
|
|||||||
|
|
||||||
<!-- Кнопка меню -->
|
<!-- Кнопка меню -->
|
||||||
<Button
|
<Button
|
||||||
Grid.Column="0"
|
|
||||||
VerticalAlignment="Stretch"
|
|
||||||
Classes="vertical"
|
Classes="vertical"
|
||||||
Command="{Binding ToggleMenuCommand}"
|
Command="{Binding ToggleMenuCommand}"
|
||||||
|
Grid.Column="0"
|
||||||
|
VerticalAlignment="Stretch"
|
||||||
>
|
>
|
||||||
<TextBlock Text="☰" />
|
<TextBlock Text="☰" />
|
||||||
</Button>
|
</Button>
|
||||||
@@ -302,7 +302,7 @@
|
|||||||
|
|
||||||
<!-- Шаблон элемента -->
|
<!-- Шаблон элемента -->
|
||||||
<ListBox.ItemTemplate>
|
<ListBox.ItemTemplate>
|
||||||
<DataTemplate>
|
<DataTemplate x:DataType="vm:BrandCalibrationViewModel+MenuItemViewModel">
|
||||||
<Border Margin="3" CornerRadius="5">
|
<Border Margin="3" CornerRadius="5">
|
||||||
<TextBlock
|
<TextBlock
|
||||||
Classes="mini"
|
Classes="mini"
|
||||||
|
|||||||
Reference in New Issue
Block a user