master
Святой Владислав Солоп 2026-05-07 11:02:05 +10:00
parent 2470faad75
commit fda7ac88ee
23 changed files with 246 additions and 26 deletions

View File

@ -1,5 +1,5 @@
{ {
"DatabseConnection": { "DatabseConnection": {
"ConnectionString" : "server=192.168.200.13;userid=student;password=student;database=localhost" "ConnectionString" : "server=localhost;userid=root;password=root;database=bathhousemanagment"
} }
} }

View File

@ -8,12 +8,12 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Folder Include="Models\"/>
<AvaloniaResource Include="Assets\**"/> <AvaloniaResource Include="Assets\**"/>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Avalonia" Version="11.3.10"/> <PackageReference Include="Avalonia" Version="11.3.10"/>
<PackageReference Include="Avalonia.Controls.DataGrid" Version="11.3.10" />
<PackageReference Include="Avalonia.Desktop" Version="11.3.10"/> <PackageReference Include="Avalonia.Desktop" Version="11.3.10"/>
<PackageReference Include="Avalonia.Themes.Fluent" Version="11.3.10"/> <PackageReference Include="Avalonia.Themes.Fluent" Version="11.3.10"/>
<PackageReference Include="Avalonia.Fonts.Inter" Version="11.3.10"/> <PackageReference Include="Avalonia.Fonts.Inter" Version="11.3.10"/>

View File

@ -0,0 +1,48 @@
using System;
using System.Collections.Generic;
using BathHouseManagmet.Models;
using Microsoft.Extensions.Options;
using MySqlConnector;
namespace BathHouseManagmet.Database;
public class ClientRepository
{
MySqlConnection connection;
public ClientRepository(IOptions<DatabaseConnection> connect)
{
connection = new MySqlConnection(connect.Value.ConnectionString);
}
public List<Client> GetClients()
{
List<Client> result = new();
string sql = "select * from `client`";
try
{
connection.Open();
using(var command = new MySqlCommand(sql, connection))
using (var reader = command.ExecuteReader())
{
while (reader.Read())
{
result.Add(new Client
{
Id = reader.GetInt32("id"),
Name = reader.GetString("name"),
Surname = reader.GetString("surname"),
});
}
}
connection.Close();
}
catch (Exception e)
{
Console.WriteLine(e);
}
return result;
}
}

View File

@ -1,6 +1,120 @@
using System;
using System.Collections.Generic;
using BathHouseManagmet.Models;
using Microsoft.Extensions.Options;
using MySqlConnector;
namespace BathHouseManagmet.Database; namespace BathHouseManagmet.Database;
public class employee public class EmployeeRepository
{ {
MySqlConnection connection;
public EmployeeRepository(IOptions<DatabaseConnection> connect)
{
connection = new MySqlConnection(connect.Value.ConnectionString);
}
public List<Employee> GetEmployees(Position position)
{
List<Employee> result = new();
string sql = "select * from `employee` where position_id = " + position.Id;
try
{
connection.Open();
using (var command = new MySqlCommand(sql, connection))
using (var reader = command.ExecuteReader())
{
while (reader.Read())
{
result.Add(new Employee
{
Id = reader.GetInt32("id"),
Name = reader.GetString("name"),
Surname = reader.GetString("surname"),
OnWork = reader.GetBoolean("on_work"),
PositionId = reader.GetInt32("position_id"),
});
}
}
connection.Close();
}
catch (Exception e)
{
Console.WriteLine(e);
}
return result;
}
public bool InsertEmployee(Employee employee)
{
string sql =
"insert into `employee` (`id`, `name`, `surname`, `on_work`, `position_id`) values (0, @name, @surname, @on_work, @position_id)";
try
{
connection.Open();
using (var command = new MySqlCommand(sql, connection))
{
command.Parameters.AddWithValue("@name", employee.Name);
command.Parameters.AddWithValue("@surname", employee.Surname);
command.Parameters.AddWithValue("@on_work", employee.OnWork);
command.Parameters.AddWithValue("@position_id", employee.PositionId);
command.ExecuteNonQuery();
}
connection.Close();
}
catch (Exception e)
{
connection.Close();
return false;
}
connection.Close();
return true;
}
public bool UpdateEmployee(Employee employee)
{
string sql = "update `employee` set name = @name, surname = @surname, on_work = @on_work, position_id = @position_id";
try
{
connection.Open();
using (var command = new MySqlCommand(sql, connection))
{
command.Parameters.AddWithValue("@name", employee.Name);
command.Parameters.AddWithValue("@surname", employee.Surname);
command.Parameters.AddWithValue("@on_work", employee.OnWork);
command.Parameters.AddWithValue("@position_id", employee.PositionId);
command.ExecuteNonQuery();
}
connection.Close();
}
catch (Exception e)
{
connection.Close();
return false;
}
connection.Close();
return true;
}
public bool DeleteEmployee(Employee employee)
{
string sql = "delete from `employee` where `id` = " + employee.Id;
try
{
connection.Open();
using (var command = new MySqlCommand(sql, connection))
{
command.ExecuteNonQuery();
}
connection.Close();
}
catch (Exception e)
{
connection.Close();
return false;
}
connection.Close();
return true;
}
} }

View File

@ -2,5 +2,7 @@ namespace BathHouseManagmet.Models;
public class Client public class Client
{ {
public int Id { get; set; }
public string Name { get; set; }
public string Surname { get; set; }
} }

View File

@ -2,5 +2,8 @@ namespace BathHouseManagmet.Models;
public class Discount public class Discount
{ {
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public int DescountPercent { get; set; }
} }

View File

@ -2,5 +2,9 @@ namespace BathHouseManagmet.Models;
public class Employee public class Employee
{ {
public int Id { get; set; }
public string Name { get; set; }
public string Surname { get; set; }
public bool OnWork { get; set; }
public int PositionId { get; set; }
} }

View File

@ -1,6 +1,15 @@
using System;
namespace BathHouseManagmet.Models; namespace BathHouseManagmet.Models;
public class Order public class Order
{ {
public int Id { get; set; }
public int ClientId { get; set; }
public int ZoneId { get; set; }
public DateTime OrderDate { get; set; }
public int WorkPrice { get; set; }
public int EmployeeId { get; set; }
public int DiscountId { get; set; }
public int FinalPrice { get; set; }
} }

View File

@ -2,5 +2,6 @@ namespace BathHouseManagmet.Models;
public class Position public class Position
{ {
public int Id { get; set; }
public string Name { get; set; }
} }

View File

@ -2,5 +2,6 @@ namespace BathHouseManagmet.Models;
public class Zone public class Zone
{ {
public int Id { get; set; }
public string Name { get; set; }
} }

View File

@ -2,5 +2,5 @@
public partial class MainWindowViewModel : ViewModelBase public partial class MainWindowViewModel : ViewModelBase
{ {
public string Greeting { get; } = "Welcome to Avalonia!";
} }

View File

@ -7,13 +7,6 @@
x:Class="BathHouseManagmet.Views.MainWindow" x:Class="BathHouseManagmet.Views.MainWindow"
x:DataType="vm:MainWindowViewModel" x:DataType="vm:MainWindowViewModel"
Icon="/Assets/avalonia-logo.ico" Icon="/Assets/avalonia-logo.ico"
Title="BathHouseManagmet"> Title="BathHouseManagment">
<Design.DataContext>
<!-- This only sets the DataContext for the previewer in an IDE,
to set the actual DataContext for runtime, set the DataContext property in code (look at App.axaml.cs) -->
<vm:MainWindowViewModel/>
</Design.DataContext>
</Window> </Window>

View File

@ -50,6 +50,10 @@
"target": "Package", "target": "Package",
"version": "[11.3.10, )" "version": "[11.3.10, )"
}, },
"Avalonia.Controls.DataGrid": {
"target": "Package",
"version": "[11.3.10, )"
},
"Avalonia.Desktop": { "Avalonia.Desktop": {
"target": "Package", "target": "Package",
"version": "[11.3.10, )" "version": "[11.3.10, )"

Binary file not shown.

View File

@ -13,7 +13,7 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("BathHouseManagmet")] [assembly: System.Reflection.AssemblyCompanyAttribute("BathHouseManagmet")]
[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")] [assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+9c2351b863396c43a39f9449f08dc29f85df9763")]
[assembly: System.Reflection.AssemblyProductAttribute("BathHouseManagmet")] [assembly: System.Reflection.AssemblyProductAttribute("BathHouseManagmet")]
[assembly: System.Reflection.AssemblyTitleAttribute("BathHouseManagmet")] [assembly: System.Reflection.AssemblyTitleAttribute("BathHouseManagmet")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]

View File

@ -1 +1 @@
17822dc97d6951100cace6bedba90a41c6699f5f35c4dab0ea6de5260ae3b301 4757971917ac4d5bc9219094abbbd12816220e52e18e259e295afe360fad1005

View File

@ -124,6 +124,22 @@
} }
} }
}, },
"Avalonia.Controls.DataGrid/11.3.10": {
"type": "package",
"dependencies": {
"Avalonia": "11.3.10"
},
"compile": {
"lib/net8.0/Avalonia.Controls.DataGrid.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net8.0/Avalonia.Controls.DataGrid.dll": {
"related": ".xml"
}
}
},
"Avalonia.Desktop/11.3.10": { "Avalonia.Desktop/11.3.10": {
"type": "package", "type": "package",
"dependencies": { "dependencies": {
@ -1505,6 +1521,25 @@
"lib/netstandard2.0/Avalonia.Controls.ColorPicker.xml" "lib/netstandard2.0/Avalonia.Controls.ColorPicker.xml"
] ]
}, },
"Avalonia.Controls.DataGrid/11.3.10": {
"sha512": "KSwme0XOL8594fFvoQ37s5rnSo9vCKutCpufCEmd0R7x/fRWOjK3g3su1Z3nukgbobryPVjQvZxi/E92DPPYpw==",
"type": "package",
"path": "avalonia.controls.datagrid/11.3.10",
"files": [
".nupkg.metadata",
".signature.p7s",
"Icon.png",
"avalonia.controls.datagrid.11.3.10.nupkg.sha512",
"avalonia.controls.datagrid.nuspec",
"lib/net6.0/Avalonia.Controls.DataGrid.dll",
"lib/net6.0/Avalonia.Controls.DataGrid.xml",
"lib/net8.0/Avalonia.Controls.DataGrid.dll",
"lib/net8.0/Avalonia.Controls.DataGrid.xml",
"lib/netstandard2.0/Avalonia.Controls.DataGrid.dll",
"lib/netstandard2.0/Avalonia.Controls.DataGrid.xml",
"readme.md"
]
},
"Avalonia.Desktop/11.3.10": { "Avalonia.Desktop/11.3.10": {
"sha512": "Enb/6GTCO3+GlSxyhyxYuMjiyBT1EGdFkOLdAPKXYTxgCcnWvqdC6lwBslD0y18P8B8pOnlYryTEmBRsBSvHjQ==", "sha512": "Enb/6GTCO3+GlSxyhyxYuMjiyBT1EGdFkOLdAPKXYTxgCcnWvqdC6lwBslD0y18P8B8pOnlYryTEmBRsBSvHjQ==",
"type": "package", "type": "package",
@ -3140,6 +3175,7 @@
"projectFileDependencyGroups": { "projectFileDependencyGroups": {
"net10.0": [ "net10.0": [
"Avalonia >= 11.3.10", "Avalonia >= 11.3.10",
"Avalonia.Controls.DataGrid >= 11.3.10",
"Avalonia.Desktop >= 11.3.10", "Avalonia.Desktop >= 11.3.10",
"Avalonia.Diagnostics >= 11.3.10", "Avalonia.Diagnostics >= 11.3.10",
"Avalonia.Fonts.Inter >= 11.3.10", "Avalonia.Fonts.Inter >= 11.3.10",
@ -3198,6 +3234,10 @@
"target": "Package", "target": "Package",
"version": "[11.3.10, )" "version": "[11.3.10, )"
}, },
"Avalonia.Controls.DataGrid": {
"target": "Package",
"version": "[11.3.10, )"
},
"Avalonia.Desktop": { "Avalonia.Desktop": {
"target": "Package", "target": "Package",
"version": "[11.3.10, )" "version": "[11.3.10, )"

View File

@ -1,6 +1,6 @@
{ {
"version": 2, "version": 2,
"dgSpecHash": "q5oPTWmJay4=", "dgSpecHash": "WewDm+VE+hc=",
"success": true, "success": true,
"projectFilePath": "C:\\Users\\Mikhail\\RiderProjects\\BathHouseManagmet\\BathHouseManagmet.csproj", "projectFilePath": "C:\\Users\\Mikhail\\RiderProjects\\BathHouseManagmet\\BathHouseManagmet.csproj",
"expectedPackageFiles": [ "expectedPackageFiles": [
@ -8,6 +8,7 @@
"C:\\Users\\Mikhail\\.nuget\\packages\\avalonia.angle.windows.natives\\2.1.25547.20250602\\avalonia.angle.windows.natives.2.1.25547.20250602.nupkg.sha512", "C:\\Users\\Mikhail\\.nuget\\packages\\avalonia.angle.windows.natives\\2.1.25547.20250602\\avalonia.angle.windows.natives.2.1.25547.20250602.nupkg.sha512",
"C:\\Users\\Mikhail\\.nuget\\packages\\avalonia.buildservices\\11.3.2\\avalonia.buildservices.11.3.2.nupkg.sha512", "C:\\Users\\Mikhail\\.nuget\\packages\\avalonia.buildservices\\11.3.2\\avalonia.buildservices.11.3.2.nupkg.sha512",
"C:\\Users\\Mikhail\\.nuget\\packages\\avalonia.controls.colorpicker\\11.3.10\\avalonia.controls.colorpicker.11.3.10.nupkg.sha512", "C:\\Users\\Mikhail\\.nuget\\packages\\avalonia.controls.colorpicker\\11.3.10\\avalonia.controls.colorpicker.11.3.10.nupkg.sha512",
"C:\\Users\\Mikhail\\.nuget\\packages\\avalonia.controls.datagrid\\11.3.10\\avalonia.controls.datagrid.11.3.10.nupkg.sha512",
"C:\\Users\\Mikhail\\.nuget\\packages\\avalonia.desktop\\11.3.10\\avalonia.desktop.11.3.10.nupkg.sha512", "C:\\Users\\Mikhail\\.nuget\\packages\\avalonia.desktop\\11.3.10\\avalonia.desktop.11.3.10.nupkg.sha512",
"C:\\Users\\Mikhail\\.nuget\\packages\\avalonia.diagnostics\\11.3.10\\avalonia.diagnostics.11.3.10.nupkg.sha512", "C:\\Users\\Mikhail\\.nuget\\packages\\avalonia.diagnostics\\11.3.10\\avalonia.diagnostics.11.3.10.nupkg.sha512",
"C:\\Users\\Mikhail\\.nuget\\packages\\avalonia.fonts.inter\\11.3.10\\avalonia.fonts.inter.11.3.10.nupkg.sha512", "C:\\Users\\Mikhail\\.nuget\\packages\\avalonia.fonts.inter\\11.3.10\\avalonia.fonts.inter.11.3.10.nupkg.sha512",

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
17775150734683214 17780383974089094

View File

@ -1 +1 @@
17775150734683214 17780383974089094