diff --git a/.idea/.idea.Policlinica/.idea/avalonia.xml b/.idea/.idea.Policlinica/.idea/avalonia.xml
index 989b0ca..aa23744 100644
--- a/.idea/.idea.Policlinica/.idea/avalonia.xml
+++ b/.idea/.idea.Policlinica/.idea/avalonia.xml
@@ -22,6 +22,7 @@
+
diff --git a/Policlinica/DB/RecordRep.cs b/Policlinica/DB/RecordRep.cs
index 10e72ce..c580a86 100644
--- a/Policlinica/DB/RecordRep.cs
+++ b/Policlinica/DB/RecordRep.cs
@@ -74,8 +74,8 @@ public class RecordRep:BaseRep
mc.Parameters.AddWithValue("@total_amount", record.TotalAmount);
mc.Parameters.AddWithValue("@record_date", record.RecordDate);
- int result = mc.ExecuteNonQuery();
- Console.WriteLine($"ExecuteNonQuery returned: {result}");
+ mc.ExecuteNonQuery();
+ Console.WriteLine($"ExecuteNonQuery returned");
}
// Получаем ID последней вставленной записи
@@ -119,21 +119,31 @@ public class RecordRep:BaseRep
public bool Delete(int id)
{
- string sql = @"delete from `records` where `id` = @id";
try
{
- using (var mc = new MySqlCommand(sql, connection))
+ // Сначала удаляем все связанные record_items
+ string deleteItemsSql = @"delete from `record_items` where `record_id` = @id";
+ using (var mc = new MySqlCommand(deleteItemsSql, connection))
{
- mc.Parameters.AddWithValue("@id",id);
+ mc.Parameters.AddWithValue("@id", id);
mc.ExecuteNonQuery();
-
+ Console.WriteLine($"Deleted record items for record {id}");
}
- return true;
+ // Затем удаляем саму запись
+ string deleteRecordSql = @"delete from `records` where `id` = @id";
+ using (var mc = new MySqlCommand(deleteRecordSql, connection))
+ {
+ mc.Parameters.AddWithValue("@id", id);
+ mc.ExecuteNonQuery();
+ Console.WriteLine($"Deleted record {id}");
+ }
+
+ return true;
}
catch (Exception e)
{
- Console.WriteLine(e);
+ Console.WriteLine($"Error deleting record: {e}");
}
return false;
}
diff --git a/Policlinica/Policlinica.csproj b/Policlinica/Policlinica.csproj
index fbff73c..ec1a6e3 100644
--- a/Policlinica/Policlinica.csproj
+++ b/Policlinica/Policlinica.csproj
@@ -34,4 +34,10 @@
PreserveNewest
+
+
+
+ SugarCheckView.axaml
+
+
diff --git a/Policlinica/ViewLocator.cs b/Policlinica/ViewLocator.cs
index 4150eb1..ea9a044 100644
--- a/Policlinica/ViewLocator.cs
+++ b/Policlinica/ViewLocator.cs
@@ -3,6 +3,7 @@ using System.Diagnostics.CodeAnalysis;
using Avalonia.Controls;
using Avalonia.Controls.Templates;
using Policlinica.ViewModels;
+using Policlinica.Views;
namespace Policlinica;
@@ -24,7 +25,15 @@ public class ViewLocator : IDataTemplate
if (type != null)
{
- return (Control)Activator.CreateInstance(type)!;
+ var view = (Control)Activator.CreateInstance(type)!;
+
+ // Специальная обработка для SugarCheckViewModel
+ if (param is SugarCheckViewModel sugarVm && view is SugarCheckView sugarView)
+ {
+ sugarVm.SetView(sugarView);
+ }
+
+ return view;
}
return new TextBlock { Text = "Not Found: " + name };
@@ -34,4 +43,4 @@ public class ViewLocator : IDataTemplate
{
return data is ViewModelBase;
}
-}
\ No newline at end of file
+}
diff --git a/Policlinica/ViewModels/AdminViewModel.cs b/Policlinica/ViewModels/AdminViewModel.cs
index 119549a..679ac2f 100644
--- a/Policlinica/ViewModels/AdminViewModel.cs
+++ b/Policlinica/ViewModels/AdminViewModel.cs
@@ -1,4 +1,4 @@
-using System;
+using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
@@ -23,6 +23,7 @@ public partial class AdminViewModel : ViewModelBase
[ObservableProperty] ObservableCollection _recordsList = new();
[ObservableProperty] private Record _selectedRecord;
[ObservableProperty] private ObservableCollection userList = new ObservableCollection();
+ [ObservableProperty] string statusMessage = "";
public AdminViewModel(Navigation navigation, IServiceProvider provider, RecordRep recordRep,User user,UserRepository userRepository)
{
@@ -40,16 +41,37 @@ public partial class AdminViewModel : ViewModelBase
Id = obj.Id;
}
-
-
RecordsList = new ObservableCollection(recordRep.GetRecord(Id));
}
[RelayCommand]
void DeleteRecord()
{
- _recordRep.Delete(SelectedRecord.Id);
- RecordsList = new ObservableCollection(_recordRep.GetRecord(Id));
+ if (SelectedRecord == null)
+ {
+ StatusMessage = "Выберите запись для удаления";
+ Console.WriteLine("No record selected for deletion");
+ return;
+ }
+
+ try
+ {
+ bool deleted = _recordRep.Delete(SelectedRecord.Id);
+ if (deleted)
+ {
+ StatusMessage = "Запись успешно удалена";
+ RecordsList = new ObservableCollection(_recordRep.GetRecord(Id));
+ }
+ else
+ {
+ StatusMessage = "Ошибка при удалении записи";
+ }
+ }
+ catch (Exception ex)
+ {
+ StatusMessage = $"Ошибка: {ex.Message}";
+ Console.WriteLine($"Error deleting record: {ex}");
+ }
}
[RelayCommand]
@@ -59,4 +81,11 @@ public partial class AdminViewModel : ViewModelBase
_navigation.Navigate(vm);
}
-}
\ No newline at end of file
+ [RelayCommand]
+ void GoSugarCheck()
+ {
+ var vm = ActivatorUtilities.CreateInstance(_provider);
+ _navigation.Navigate(vm);
+ }
+
+}
diff --git a/Policlinica/Views/AdminView.axaml b/Policlinica/Views/AdminView.axaml
index b1cf9f0..3c4629f 100644
--- a/Policlinica/Views/AdminView.axaml
+++ b/Policlinica/Views/AdminView.axaml
@@ -1,33 +1,53 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-я устал
-я тоже
diff --git a/Policlinica/Views/DoctorView.axaml b/Policlinica/Views/DoctorView.axaml
index b218530..86bcf63 100644
--- a/Policlinica/Views/DoctorView.axaml
+++ b/Policlinica/Views/DoctorView.axaml
@@ -3,26 +3,49 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:vm="using:Policlinica.ViewModels"
- mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
+ mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="600"
x:Class="Policlinica.Views.DoctorView"
x:DataType="vm:DoctorViewModel">
-
-
+
-
+
-
-
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
diff --git a/Policlinica/Views/RecordItemsView.axaml b/Policlinica/Views/RecordItemsView.axaml
index 1a15527..e545d92 100644
--- a/Policlinica/Views/RecordItemsView.axaml
+++ b/Policlinica/Views/RecordItemsView.axaml
@@ -3,18 +3,18 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:viewModels="clr-namespace:Policlinica.ViewModels"
- mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="600"
+ mc:Ignorable="d" d:DesignWidth="900" d:DesignHeight="700"
x:Class="Policlinica.Views.RecordItemsView"
x:DataType="viewModels:RecordItemsViewModel">
-
+
- Клиент:
+
@@ -23,7 +23,7 @@
- Врач:
+
@@ -31,14 +31,14 @@
- Выбранные услуги:
+
-
+
-
-
-
+
+
+
@@ -47,10 +47,10 @@
-
+
-
-
+
+
@@ -58,10 +58,18 @@
-
-
diff --git a/Policlinica/Views/ServiceView.axaml b/Policlinica/Views/ServiceView.axaml
index 74d7abb..89ed4cd 100644
--- a/Policlinica/Views/ServiceView.axaml
+++ b/Policlinica/Views/ServiceView.axaml
@@ -1,28 +1,46 @@
-
-
+
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+