first commit

This commit is contained in:
1billy17 2025-02-05 01:23:52 +03:00
commit a792f9df5e
212 changed files with 6395 additions and 0 deletions

BIN
.DS_Store vendored Normal file

Binary file not shown.

13
.idea/.idea.demo5/.idea/.gitignore vendored Normal file
View File

@ -0,0 +1,13 @@
# Default ignored files
/shelf/
/workspace.xml
# Rider ignored files
/modules.xml
/contentModel.xml
/projectSettingsUpdater.xml
/.idea.demo5.iml
# Editor-based HTTP Client requests
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="AvaloniaProject">
<option name="projectPerEditor">
<map>
<entry key="demo5/MainWindow.axaml" value="demo5/demo5.csproj" />
</map>
</option>
</component>
</project>

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="UserContentModel">
<attachedFolders />
<explicitIncludes />
<explicitExcludes />
</component>
</project>

View File

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings" defaultProject="true" />
</project>

16
demo5.sln Normal file
View File

@ -0,0 +1,16 @@

Microsoft Visual Studio Solution File, Format Version 12.00
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "demo5", "demo5\demo5.csproj", "{E5F29055-83E1-4B73-A9E0-EFBD2695C785}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{E5F29055-83E1-4B73-A9E0-EFBD2695C785}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E5F29055-83E1-4B73-A9E0-EFBD2695C785}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E5F29055-83E1-4B73-A9E0-EFBD2695C785}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E5F29055-83E1-4B73-A9E0-EFBD2695C785}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
EndGlobal

BIN
demo5/.DS_Store vendored Normal file

Binary file not shown.

9
demo5/AdminWindow.axaml Normal file
View File

@ -0,0 +1,9 @@
<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"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="demo5.AdminWindow"
Title="AdminWindow">
Welcome to Avalonia!
</Window>

View File

@ -0,0 +1,13 @@
using Avalonia;
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
namespace demo5;
public partial class AdminWindow : Window
{
public AdminWindow()
{
InitializeComponent();
}
}

10
demo5/App.axaml Normal file
View File

@ -0,0 +1,10 @@
<Application xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="demo5.App"
RequestedThemeVariant="Default">
<!-- "Default" ThemeVariant follows system theme variant. "Dark" or "Light" are other available options. -->
<Application.Styles>
<FluentTheme />
</Application.Styles>
</Application>

23
demo5/App.axaml.cs Normal file
View File

@ -0,0 +1,23 @@
using Avalonia;
using Avalonia.Controls.ApplicationLifetimes;
using Avalonia.Markup.Xaml;
namespace demo5;
public partial class App : Application
{
public override void Initialize()
{
AvaloniaXamlLoader.Load(this);
}
public override void OnFrameworkInitializationCompleted()
{
if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
{
desktop.MainWindow = new MainWindow();
}
base.OnFrameworkInitializationCompleted();
}
}

9
demo5/BlankWindow.axaml Normal file
View File

@ -0,0 +1,9 @@
<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"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="demo5.BlankWindow"
Title="BlankWindow">
Welcome to Avalonia!
</Window>

View File

@ -0,0 +1,13 @@
using Avalonia;
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
namespace demo5;
public partial class BlankWindow : Window
{
public BlankWindow()
{
InitializeComponent();
}
}

View File

@ -0,0 +1,9 @@
<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"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="demo5.FormOrderWindow"
Title="FormOrderWindow">
Welcome to Avalonia!
</Window>

View File

@ -0,0 +1,13 @@
using Avalonia;
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
namespace demo5;
public partial class FormOrderWindow : Window
{
public FormOrderWindow()
{
InitializeComponent();
}
}

View File

@ -0,0 +1,9 @@
<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"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="demo5.HistoryWindow"
Title="HistoryWindow">
Welcome to Avalonia!
</Window>

View File

@ -0,0 +1,13 @@
using Avalonia;
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
namespace demo5;
public partial class HistoryWindow : Window
{
public HistoryWindow()
{
InitializeComponent();
}
}

16
demo5/MainWindow.axaml Normal file
View File

@ -0,0 +1,16 @@
<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"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="demo5.MainWindow"
Title="demo5">
<StackPanel Spacing="5" VerticalAlignment="Center" HorizontalAlignment="Center">
<TextBox x:Name="LoginTextBox" Width="200" Watermark="Логин"/>
<TextBox x:Name="PasswordTextBox" Width="200" Watermark="Пароль"/>
<StackPanel Orientation="Horizontal" Spacing="5">
<Button Click="AuthButton_OnClick" Content="Вход"/>
<CheckBox Content="Показать пароль" HorizontalAlignment="Right" Name="ShowPasswordCheckBox" Checked="ShowPasswordCheckBox_OnCheck" Unchecked="ShowPasswordCheckBox_OnUncheck"/>
</StackPanel>
</StackPanel>
</Window>

93
demo5/MainWindow.axaml.cs Normal file
View File

@ -0,0 +1,93 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.IO;
using System.Linq;
using System.Text.RegularExpressions;
using Avalonia.Controls;
using Avalonia.Input;
using Avalonia.Interactivity;
using Avalonia.Media.Imaging;
using demo5.MyModels;
using demo5.Models;
namespace demo5;
public partial class MainWindow : Window
{
ObservableCollection<ClientMy> myClients = new ObservableCollection<ClientMy>();
List<ClientMy> dataSourceClient;
public static ObservableCollection<ClientMy> ClientMyList { get; set; }
public MainWindow()
{
InitializeComponent();
PasswordTextBox.PasswordChar = '•';
using var context = new Demo5Context();
dataSourceClient = context.Clients.Select(it => new ClientMy
{
Photopath = it.Photopath,
Email = it.Email,
Password = it.Password,
Fio = it.Fio,
Role = it.Role
}).ToList();
ClientMyList = new ObservableCollection<ClientMy>(dataSourceClient);
}
private void AuthButton_OnClick(object? sender, RoutedEventArgs e)
{
using var context = new Demo5Context();
var LoginText = LoginTextBox?.Text;
var Password = PasswordTextBox?.Text;
if (string.IsNullOrEmpty(LoginText) || string.IsNullOrEmpty(Password))
{
return;
}
var client = ClientMyList.FirstOrDefault(it => it.Email == LoginText);
if (client != null && client.Password == Password)
{
switch (client.Role)
{
case 1:
BlankWindow blankWindow = new BlankWindow();
blankWindow.ShowDialog(this);
break;
case 2:
SellerWindow sallerWindow = new SellerWindow(client);
sallerWindow.ShowDialog(this);
break;
case 3:
MegaSellerWindow megaSellerWindow = new MegaSellerWindow();
megaSellerWindow.ShowDialog(this);
break;
case 4:
AdminWindow adminWindow = new AdminWindow();
adminWindow.ShowDialog(this);
break;
default:
BlankWindow blankWindow2 = new BlankWindow();
blankWindow2.ShowDialog(this);
return;
}
}
}
private void ShowPasswordCheckBox_OnCheck(object sender, RoutedEventArgs e)
{
PasswordTextBox.PasswordChar = '\0';
}
private void ShowPasswordCheckBox_OnUncheck(object sender, RoutedEventArgs e)
{
PasswordTextBox.PasswordChar = '•';
}
}

View File

@ -0,0 +1,9 @@
<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"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="demo5.MegaSellerWindow"
Title="MegaSellerWindow">
Welcome to Avalonia!
</Window>

View File

@ -0,0 +1,13 @@
using Avalonia;
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
namespace demo5;
public partial class MegaSellerWindow : Window
{
public MegaSellerWindow()
{
InitializeComponent();
}
}

35
demo5/Models/Client.cs Normal file
View File

@ -0,0 +1,35 @@
using System;
using System.Collections.Generic;
namespace demo5.Models;
public partial class Client
{
public int Id { get; set; }
public int? Code { get; set; }
public string Fio { get; set; } = null!;
public string? Passport { get; set; }
public DateTime? Date { get; set; }
public string? Address { get; set; }
public string Email { get; set; } = null!;
public string Password { get; set; } = null!;
public int Role { get; set; }
public string? Photopath { get; set; }
public DateTime? LastLogin { get; set; }
public bool? SuccessLogin { get; set; }
public virtual ICollection<Order> Orders { get; set; } = new List<Order>();
public virtual Role RoleNavigation { get; set; } = null!;
}

View File

@ -0,0 +1,152 @@
using System;
using System.Collections.Generic;
using Microsoft.EntityFrameworkCore;
namespace demo5.Models;
public partial class Demo5Context : DbContext
{
public Demo5Context()
{
}
public Demo5Context(DbContextOptions<Demo5Context> options)
: base(options)
{
}
public virtual DbSet<Client> Clients { get; set; }
public virtual DbSet<Order> Orders { get; set; }
public virtual DbSet<OrdersService> OrdersServices { get; set; }
public virtual DbSet<Role> Roles { get; set; }
public virtual DbSet<Service> Services { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
#warning To protect potentially sensitive information in your connection string, you should move it out of source code. You can avoid scaffolding the connection string by using the Name= syntax to read it from configuration - see https://go.microsoft.com/fwlink/?linkid=2131148. For more guidance on storing connection strings, see https://go.microsoft.com/fwlink/?LinkId=723263.
=> optionsBuilder.UseNpgsql("Host=localhost;Database=demo5;Username=demo5;Password=demo5;Port=5440");
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Client>(entity =>
{
entity.HasKey(e => e.Id).HasName("clients_pkey");
entity.ToTable("clients");
entity.Property(e => e.Id).HasColumnName("id");
entity.Property(e => e.Address)
.HasMaxLength(200)
.HasColumnName("address");
entity.Property(e => e.Code).HasColumnName("code");
entity.Property(e => e.Date)
.HasColumnType("timestamp without time zone")
.HasColumnName("date");
entity.Property(e => e.Email)
.HasMaxLength(50)
.HasColumnName("email");
entity.Property(e => e.Fio)
.HasMaxLength(200)
.HasColumnName("fio");
entity.Property(e => e.LastLogin)
.HasColumnType("timestamp without time zone")
.HasColumnName("last_login");
entity.Property(e => e.Passport)
.HasMaxLength(100)
.HasColumnName("passport");
entity.Property(e => e.Password)
.HasMaxLength(50)
.HasColumnName("password");
entity.Property(e => e.Photopath)
.HasMaxLength(100)
.HasColumnName("photopath");
entity.Property(e => e.Role).HasColumnName("role");
entity.Property(e => e.SuccessLogin).HasColumnName("success_login");
entity.HasOne(d => d.RoleNavigation).WithMany(p => p.Clients)
.HasForeignKey(d => d.Role)
.HasConstraintName("clients_role_fkey");
});
modelBuilder.Entity<Order>(entity =>
{
entity.HasKey(e => e.Id).HasName("orders_pkey");
entity.ToTable("orders");
entity.Property(e => e.Id).HasColumnName("id");
entity.Property(e => e.CodeClient).HasColumnName("code_client");
entity.Property(e => e.CodeOrder)
.HasMaxLength(50)
.HasColumnName("code_order");
entity.Property(e => e.Date)
.HasColumnType("timestamp without time zone")
.HasColumnName("date");
entity.Property(e => e.DateClose)
.HasColumnType("timestamp without time zone")
.HasColumnName("date_close");
entity.Property(e => e.Period).HasColumnName("period");
entity.Property(e => e.Status)
.HasMaxLength(50)
.HasColumnName("status");
entity.Property(e => e.Time).HasColumnName("time");
entity.HasOne(d => d.CodeClientNavigation).WithMany(p => p.Orders)
.HasForeignKey(d => d.CodeClient)
.HasConstraintName("orders_code_client_fkey");
});
modelBuilder.Entity<OrdersService>(entity =>
{
entity
.HasNoKey()
.ToTable("orders_services");
entity.Property(e => e.OrderId).HasColumnName("order_id");
entity.Property(e => e.ServiceId).HasColumnName("service_id");
entity.HasOne(d => d.Order).WithMany()
.HasForeignKey(d => d.OrderId)
.HasConstraintName("orders_services_order_id_fkey");
entity.HasOne(d => d.Service).WithMany()
.HasForeignKey(d => d.ServiceId)
.HasConstraintName("orders_services_service_id_fkey");
});
modelBuilder.Entity<Role>(entity =>
{
entity.HasKey(e => e.Id).HasName("roles_pkey");
entity.ToTable("roles");
entity.Property(e => e.Id).HasColumnName("id");
entity.Property(e => e.Name)
.HasMaxLength(50)
.HasColumnName("name");
});
modelBuilder.Entity<Service>(entity =>
{
entity.HasKey(e => e.Id).HasName("services_pkey");
entity.ToTable("services");
entity.Property(e => e.Id).HasColumnName("id");
entity.Property(e => e.CodeService)
.HasMaxLength(50)
.HasColumnName("code_service");
entity.Property(e => e.Name)
.HasMaxLength(200)
.HasColumnName("name");
entity.Property(e => e.Price).HasColumnName("price");
});
OnModelCreatingPartial(modelBuilder);
}
partial void OnModelCreatingPartial(ModelBuilder modelBuilder);
}

25
demo5/Models/Order.cs Normal file
View File

@ -0,0 +1,25 @@
using System;
using System.Collections.Generic;
namespace demo5.Models;
public partial class Order
{
public int Id { get; set; }
public string CodeOrder { get; set; } = null!;
public DateTime Date { get; set; }
public TimeOnly Time { get; set; }
public int CodeClient { get; set; }
public string Status { get; set; } = null!;
public DateTime? DateClose { get; set; }
public int Period { get; set; }
public virtual Client CodeClientNavigation { get; set; } = null!;
}

View File

@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
namespace demo5.Models;
public partial class OrdersService
{
public int OrderId { get; set; }
public int ServiceId { get; set; }
public virtual Order Order { get; set; } = null!;
public virtual Service Service { get; set; } = null!;
}

13
demo5/Models/Role.cs Normal file
View File

@ -0,0 +1,13 @@
using System;
using System.Collections.Generic;
namespace demo5.Models;
public partial class Role
{
public int Id { get; set; }
public string Name { get; set; } = null!;
public virtual ICollection<Client> Clients { get; set; } = new List<Client>();
}

15
demo5/Models/Service.cs Normal file
View File

@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
namespace demo5.Models;
public partial class Service
{
public int Id { get; set; }
public string Name { get; set; } = null!;
public string CodeService { get; set; } = null!;
public int Price { get; set; }
}

View File

@ -0,0 +1,25 @@
using System;
using System.IO;
using Avalonia.Media.Imaging;
using demo5.Models;
namespace demo5.MyModels;
public class ClientMy : Client
{
public Bitmap? Image
{
get
{
try
{
string absolutePath = Path.Combine(AppContext.BaseDirectory, Photopath);
return new Bitmap(absolutePath);
}
catch
{
return null;
}
}
}
}

21
demo5/Program.cs Normal file
View File

@ -0,0 +1,21 @@
using Avalonia;
using System;
namespace demo5;
class Program
{
// Initialization code. Don't use any Avalonia, third-party APIs or any
// SynchronizationContext-reliant code before AppMain is called: things aren't initialized
// yet and stuff might break.
[STAThread]
public static void Main(string[] args) => BuildAvaloniaApp()
.StartWithClassicDesktopLifetime(args);
// Avalonia configuration, don't remove; also used by visual designer.
public static AppBuilder BuildAvaloniaApp()
=> AppBuilder.Configure<App>()
.UsePlatformDetect()
.WithInterFont()
.LogToTrace();
}

30
demo5/SellerWindow.axaml Normal file
View File

@ -0,0 +1,30 @@
<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"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="demo5.SellerWindow"
Title="SellerWindow">
<DockPanel>
<Border>
<Grid>
<Grid ColumnDefinitions="Auto, 1*" VerticalAlignment="Center" Margin="10,0,0,0">
<StackPanel HorizontalAlignment="Left" VerticalAlignment="Center" Grid.Column="1" MaxWidth="250">
<Image Width="150" Height="250" x:Name="ClientImage"/>
</StackPanel>
</Grid>
<Grid ColumnDefinitions="Auto, 1*" HorizontalAlignment="Center" VerticalAlignment="Center">
<StackPanel HorizontalAlignment="Left" VerticalAlignment="Center" Grid.Column="1" MaxWidth="250" Spacing="15">
<TextBlock x:Name="FioTextBlock" FontSize="16"/>
<TextBlock x:Name="RoleTextBlock" FontSize="14"/>
<Button x:Name="FormOrderButton" Height="80" Width="300" BorderThickness="2" Click="FormOrderButton_OnClick">
<TextBlock Text="Сформировать заказ" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Button>
</StackPanel>
</Grid>
</Grid>
</Border>
</DockPanel>
</Window>

View File

@ -0,0 +1,31 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.IO;
using System.Linq;
using System.Text.RegularExpressions;
using Avalonia.Controls;
using Avalonia.Input;
using Avalonia.Interactivity;
using Avalonia.Media.Imaging;
using demo5.Models;
using demo5.MyModels;
namespace demo5;
public partial class SellerWindow : Window
{
public SellerWindow(ClientMy client)
{
InitializeComponent();
FioTextBlock.Text = client.Fio;
RoleTextBlock.Text = client.Role.ToString();
ClientImage.Source = client.Image;
}
private void FormOrderButton_OnClick(object? sender, RoutedEventArgs e)
{
FormOrderWindow formOrderWindow = new FormOrderWindow();
formOrderWindow.ShowDialog(this);
}
}

18
demo5/app.manifest Normal file
View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
<!-- This manifest is used on Windows only.
Don't remove it as it might cause problems with window transparency and embedded controls.
For more details visit https://learn.microsoft.com/en-us/windows/win32/sbscs/application-manifests -->
<assemblyIdentity version="1.0.0.0" name="demo5.Desktop"/>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!-- A list of the Windows versions that this application has been tested on
and is designed to work with. Uncomment the appropriate elements
and Windows will automatically select the most compatible environment. -->
<!-- Windows 10 -->
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />
</application>
</compatibility>
</assembly>

BIN
demo5/bin/.DS_Store vendored Normal file

Binary file not shown.

BIN
demo5/bin/Debug/.DS_Store vendored Normal file

Binary file not shown.

BIN
demo5/bin/Debug/net8.0/.DS_Store vendored Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
demo5/bin/Debug/net8.0/Npgsql.dll Executable file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More