chore: fix some typos and some refactoring and small changes

This commit is contained in:
2026-06-18 11:36:11 +03:00
parent 82d0ba4af3
commit 1bd96ae00f
2 changed files with 64 additions and 66 deletions
@@ -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,25 +16,25 @@
<!-- Основная форма --> <!-- Основная форма -->
<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
Grid.Column="0" Grid.Column="0"
Grid.ColumnSpan="3" Grid.ColumnSpan="3"
Grid.Row="0" Grid.Row="0"
> >
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
@@ -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>
@@ -71,25 +71,25 @@
<Grid.ColumnSpacing>5</Grid.ColumnSpacing> <Grid.ColumnSpacing>5</Grid.ColumnSpacing>
<Grid.RowDefinitions> <Grid.RowDefinitions>
<RowDefinition Height="Auto" /> <!-- Id (подпись) | Uuid (подпись) --> <RowDefinition Height="Auto" /> <!-- Id (подпись) | Uuid (подпись) -->
<RowDefinition Height="Auto" /> <!-- Id (поле ) | Uuid (поле ) --> <RowDefinition Height="Auto" /> <!-- Id (поле ) | Uuid (поле ) -->
<RowDefinition Height="Auto" /> <!-- BrandName (подпись) | MixtureName (подпись) --> <RowDefinition Height="Auto" /> <!-- BrandName (подпись) | MixtureName (подпись) -->
<RowDefinition Height="Auto" /> <!-- BrandName (поле ) | MixtureName (поле ) --> <RowDefinition Height="Auto" /> <!-- BrandName (поле ) | MixtureName (поле ) -->
<RowDefinition Height="Auto" /> <!-- MixtureNormalRate (подпись) --> <RowDefinition Height="Auto" /> <!-- MixtureNormalRate (подпись) -->
<RowDefinition Height="Auto" /> <!-- MixtureNormalRate (поле ) --> <RowDefinition Height="Auto" /> <!-- MixtureNormalRate (поле ) -->
<RowDefinition Height="*" /> <!-- Пустое пространство --> <RowDefinition Height="*" /> <!-- Пустое пространство -->
</Grid.RowDefinitions> </Grid.RowDefinitions>
<Grid.RowSpacing>5</Grid.RowSpacing> <Grid.RowSpacing>5</Grid.RowSpacing>
<!-- Id (подпись) --> <!-- Id (подпись) -->
<TextBlock <TextBlock
Classes="mini" Classes="mini"
Grid.Column="0" Grid.Column="0"
Grid.Row="0" Grid.Row="0"
Text="ИД:" Text="ИД:"
/> />
<!-- Id (поле) --> <!-- Id (поле) -->
<TextBox <TextBox
Classes="singleline" Classes="singleline"
Grid.Column="0" Grid.Column="0"
@@ -98,14 +98,14 @@
PlaceholderText="ИД" PlaceholderText="ИД"
Text="{Binding SelectedId}" Text="{Binding SelectedId}"
/> />
<!-- Uuid (подпись) --> <!-- Uuid (подпись) -->
<TextBlock <TextBlock
Classes="mini" Classes="mini"
Grid.Column="1" Grid.Column="1"
Grid.Row="0" Grid.Row="0"
Text="Уникальный ИД:" Text="Уникальный ИД:"
/> />
<!-- Uuid (поле) --> <!-- Uuid (поле) -->
<TextBox <TextBox
Classes="singleline" Classes="singleline"
Grid.Column="1" Grid.Column="1"
@@ -114,14 +114,14 @@
PlaceholderText="Уникальный ИД" PlaceholderText="Уникальный ИД"
Text="{Binding SelectedUuid}" Text="{Binding SelectedUuid}"
/> />
<!-- BrandName (подпись) --> <!-- BrandName (подпись) -->
<TextBlock <TextBlock
Classes="mini" Classes="mini"
Grid.Column="0" Grid.Column="0"
Grid.Row="2" Grid.Row="2"
Text="Марка продукта:" Text="Марка продукта:"
/> />
<!-- BrandName (поле) --> <!-- BrandName (поле) -->
<controls:TouchTextBox <controls:TouchTextBox
Classes="singleline" Classes="singleline"
Grid.Column="0" Grid.Column="0"
@@ -129,14 +129,14 @@
PlaceholderText="Марка продукта" PlaceholderText="Марка продукта"
Text="{Binding SelectedBrandName}" Text="{Binding SelectedBrandName}"
/> />
<!-- MixtureName (подпись) --> <!-- MixtureName (подпись) -->
<TextBlock <TextBlock
Classes="mini" Classes="mini"
Grid.Column="1" Grid.Column="1"
Grid.Row="2" Grid.Row="2"
Text="Марка смеси:" Text="Марка смеси:"
/> />
<!-- MixtureName (поле) --> <!-- MixtureName (поле) -->
<controls:TouchTextBox <controls:TouchTextBox
Classes="singleline" Classes="singleline"
Grid.Column="1" Grid.Column="1"
@@ -144,14 +144,14 @@
PlaceholderText="Марка смеси" PlaceholderText="Марка смеси"
Text="{Binding SelectedMixtureName}" Text="{Binding SelectedMixtureName}"
/> />
<!-- MixtureNormalRate (подпись) --> <!-- MixtureNormalRate (подпись) -->
<TextBlock <TextBlock
Classes="mini" Text="Норма расхода смеси (кг/т | гр/кг):" Classes="mini" Text="Норма расхода смеси (кг/т | гр/кг):"
Grid.Column="0" Grid.Column="0"
Grid.ColumnSpan="2" Grid.ColumnSpan="2"
Grid.Row="4" Grid.Row="4"
/> />
<!-- MixtureNormalRate (поле) --> <!-- MixtureNormalRate (поле) -->
<controls:TouchNumericUpDown <controls:TouchNumericUpDown
Classes="singleline" Classes="singleline"
FormatString="0.0000" FormatString="0.0000"
@@ -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"