diff --git a/TestApplication.sln b/TestApplication.sln new file mode 100644 index 0000000..3fafef9 --- /dev/null +++ b/TestApplication.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.10.35004.147 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestApplication", "TestApplication\TestApplication.csproj", "{56D7A700-0058-498F-A40A-63B8FAC61AA2}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {56D7A700-0058-498F-A40A-63B8FAC61AA2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {56D7A700-0058-498F-A40A-63B8FAC61AA2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {56D7A700-0058-498F-A40A-63B8FAC61AA2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {56D7A700-0058-498F-A40A-63B8FAC61AA2}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {0E310B41-449C-4A8E-B47D-8F859C7D9216} + EndGlobalSection +EndGlobal diff --git a/TestApplication/App.axaml b/TestApplication/App.axaml new file mode 100644 index 0000000..5b1afde --- /dev/null +++ b/TestApplication/App.axaml @@ -0,0 +1,10 @@ + + + + + + + \ No newline at end of file diff --git a/TestApplication/App.axaml.cs b/TestApplication/App.axaml.cs new file mode 100644 index 0000000..18a493a --- /dev/null +++ b/TestApplication/App.axaml.cs @@ -0,0 +1,24 @@ +using Avalonia; +using Avalonia.Controls.ApplicationLifetimes; +using Avalonia.Markup.Xaml; + +namespace TestApplication +{ + public partial class App : Application + { + public override void Initialize() + { + AvaloniaXamlLoader.Load(this); + } + + public override void OnFrameworkInitializationCompleted() + { + if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop) + { + desktop.MainWindow = new MainWindowStackPanel(); + } + + base.OnFrameworkInitializationCompleted(); + } + } +} \ No newline at end of file diff --git a/TestApplication/Context/Client.cs b/TestApplication/Context/Client.cs new file mode 100644 index 0000000..98dfe8d --- /dev/null +++ b/TestApplication/Context/Client.cs @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; + +namespace TestApplication.Context; + +public partial class Client +{ + public int Id { get; set; } + + public string Firstname { get; set; } = null!; + + public string Lastname { get; set; } = null!; + + public string? Patronymic { get; set; } + + public string? Birthday { get; set; } + + public string Registrationdate { get; set; } = null!; + + public string? Email { get; set; } + + public string Phone { get; set; } = null!; + + public char Gendercode { get; set; } + + public string? Photopath { get; set; } + + public virtual ICollection Clientservices { get; set; } = new List(); + + public virtual Gender1 GendercodeNavigation { get; set; } = null!; + + public virtual ICollection Tags { get; set; } = new List(); +} diff --git a/TestApplication/Context/Client1.cs b/TestApplication/Context/Client1.cs new file mode 100644 index 0000000..76b6f9a --- /dev/null +++ b/TestApplication/Context/Client1.cs @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; + +namespace TestApplication.Context; + +public partial class Client1 +{ + public int Id { get; set; } + + public string FirstName { get; set; } = null!; + + public string LastName { get; set; } = null!; + + public string? Patronymic { get; set; } + + public DateOnly? Birthday { get; set; } + + public DateTime RegistrationDate { get; set; } + + public string? Email { get; set; } + + public string Phone { get; set; } = null!; + + public char GenderCode { get; set; } + + public string? PhotoPath { get; set; } + + public virtual ICollection ClientService1s { get; set; } = new List(); + + public virtual Gender GenderCodeNavigation { get; set; } = null!; + + public virtual ICollection Tags { get; set; } = new List(); +} diff --git a/TestApplication/Context/ClientService1.cs b/TestApplication/Context/ClientService1.cs new file mode 100644 index 0000000..4ec856c --- /dev/null +++ b/TestApplication/Context/ClientService1.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; + +namespace TestApplication.Context; + +public partial class ClientService1 +{ + public int Id { get; set; } + + public int ClientId { get; set; } + + public int ServiceId { get; set; } + + public DateTime StartTime { get; set; } + + public string? Comment { get; set; } + + public virtual Client1 Client { get; set; } = null!; + + public virtual ICollection DocumentByServices { get; set; } = new List(); + + public virtual ICollection ProductSale1s { get; set; } = new List(); + + public virtual Service Service { get; set; } = null!; +} diff --git a/TestApplication/Context/Clientservice.cs b/TestApplication/Context/Clientservice.cs new file mode 100644 index 0000000..8366acd --- /dev/null +++ b/TestApplication/Context/Clientservice.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; + +namespace TestApplication.Context; + +public partial class Clientservice +{ + public int Id { get; set; } + + public int Clientid { get; set; } + + public int Serviceid { get; set; } + + public DateTime Starttime { get; set; } + + public string? Comment { get; set; } + + public virtual Client Client { get; set; } = null!; + + public virtual ICollection Documentbyservice1s { get; set; } = new List(); + + public virtual ICollection Productsales { get; set; } = new List(); + + public virtual Service1 Service { get; set; } = null!; +} diff --git a/TestApplication/Context/DocumentByService.cs b/TestApplication/Context/DocumentByService.cs new file mode 100644 index 0000000..e15b97a --- /dev/null +++ b/TestApplication/Context/DocumentByService.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; + +namespace TestApplication.Context; + +public partial class DocumentByService +{ + public int Id { get; set; } + + public int ClientServiceId { get; set; } + + public string DocumentPath { get; set; } = null!; + + public virtual ClientService1 ClientService { get; set; } = null!; +} diff --git a/TestApplication/Context/Documentbyservice1.cs b/TestApplication/Context/Documentbyservice1.cs new file mode 100644 index 0000000..93cd73d --- /dev/null +++ b/TestApplication/Context/Documentbyservice1.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; + +namespace TestApplication.Context; + +public partial class Documentbyservice1 +{ + public int Id { get; set; } + + public int Clientserviceid { get; set; } + + public string Documentpath { get; set; } = null!; + + public virtual Clientservice Clientservice { get; set; } = null!; +} diff --git a/TestApplication/Context/Gender.cs b/TestApplication/Context/Gender.cs new file mode 100644 index 0000000..145403a --- /dev/null +++ b/TestApplication/Context/Gender.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; + +namespace TestApplication.Context; + +public partial class Gender +{ + public char Code { get; set; } + + public string? Name { get; set; } + + public virtual ICollection Client1s { get; set; } = new List(); +} diff --git a/TestApplication/Context/Gender1.cs b/TestApplication/Context/Gender1.cs new file mode 100644 index 0000000..766741c --- /dev/null +++ b/TestApplication/Context/Gender1.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; + +namespace TestApplication.Context; + +public partial class Gender1 +{ + public char Code { get; set; } + + public string? Name { get; set; } + + public virtual ICollection Clients { get; set; } = new List(); +} diff --git a/TestApplication/Context/Manufacturer.cs b/TestApplication/Context/Manufacturer.cs new file mode 100644 index 0000000..2079070 --- /dev/null +++ b/TestApplication/Context/Manufacturer.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; + +namespace TestApplication.Context; + +public partial class Manufacturer +{ + public int Id { get; set; } + + public string Name { get; set; } = null!; + + public DateOnly? Startdate { get; set; } + + public virtual ICollection Products { get; set; } = new List(); +} diff --git a/TestApplication/Context/Manufacturer1.cs b/TestApplication/Context/Manufacturer1.cs new file mode 100644 index 0000000..9a2c71d --- /dev/null +++ b/TestApplication/Context/Manufacturer1.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; + +namespace TestApplication.Context; + +public partial class Manufacturer1 +{ + public int Id { get; set; } + + public string Name { get; set; } = null!; + + public DateOnly? StartDate { get; set; } + + public virtual ICollection Product1s { get; set; } = new List(); +} diff --git a/TestApplication/Context/Product.cs b/TestApplication/Context/Product.cs new file mode 100644 index 0000000..d430727 --- /dev/null +++ b/TestApplication/Context/Product.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; + +namespace TestApplication.Context; + +public partial class Product +{ + public int Id { get; set; } + + public string Title { get; set; } = null!; + + public decimal Cost { get; set; } + + public string? Description { get; set; } + + public string? Mainimagepath { get; set; } + + public bool Isactive { get; set; } + + public int? Manufacturerid { get; set; } + + public virtual Manufacturer? Manufacturer { get; set; } + + public virtual ICollection Productphotos { get; set; } = new List(); + + public virtual ICollection Productsales { get; set; } = new List(); + + public virtual ICollection Attachedproducts { get; set; } = new List(); + + public virtual ICollection Mainproducts { get; set; } = new List(); +} diff --git a/TestApplication/Context/Product1.cs b/TestApplication/Context/Product1.cs new file mode 100644 index 0000000..d1e2b09 --- /dev/null +++ b/TestApplication/Context/Product1.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; + +namespace TestApplication.Context; + +public partial class Product1 +{ + public int Id { get; set; } + + public string Title { get; set; } = null!; + + public decimal Cost { get; set; } + + public string? Description { get; set; } + + public string? MainImagePath { get; set; } + + public bool IsActive { get; set; } + + public int? ManufacturerId { get; set; } + + public virtual Manufacturer1? Manufacturer { get; set; } + + public virtual ICollection ProductPhoto1s { get; set; } = new List(); + + public virtual ICollection ProductSale1s { get; set; } = new List(); + + public virtual ICollection AttachedProducts { get; set; } = new List(); + + public virtual ICollection MainProducts { get; set; } = new List(); +} diff --git a/TestApplication/Context/ProductPhoto1.cs b/TestApplication/Context/ProductPhoto1.cs new file mode 100644 index 0000000..f429234 --- /dev/null +++ b/TestApplication/Context/ProductPhoto1.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; + +namespace TestApplication.Context; + +public partial class ProductPhoto1 +{ + public int Id { get; set; } + + public int ProductId { get; set; } + + public string PhotoPath { get; set; } = null!; + + public virtual Product1 Product { get; set; } = null!; +} diff --git a/TestApplication/Context/ProductSale1.cs b/TestApplication/Context/ProductSale1.cs new file mode 100644 index 0000000..d8d95b4 --- /dev/null +++ b/TestApplication/Context/ProductSale1.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; + +namespace TestApplication.Context; + +public partial class ProductSale1 +{ + public int Id { get; set; } + + public DateTime SaleDate { get; set; } + + public int ProductId { get; set; } + + public int Quantity { get; set; } + + public int? ClientServiceId { get; set; } + + public virtual ClientService1? ClientService { get; set; } + + public virtual Product1 Product { get; set; } = null!; +} diff --git a/TestApplication/Context/Productphoto.cs b/TestApplication/Context/Productphoto.cs new file mode 100644 index 0000000..39764e7 --- /dev/null +++ b/TestApplication/Context/Productphoto.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; + +namespace TestApplication.Context; + +public partial class Productphoto +{ + public int Id { get; set; } + + public int Productid { get; set; } + + public string Photopath { get; set; } = null!; + + public virtual Product Product { get; set; } = null!; +} diff --git a/TestApplication/Context/Productsale.cs b/TestApplication/Context/Productsale.cs new file mode 100644 index 0000000..75e0230 --- /dev/null +++ b/TestApplication/Context/Productsale.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; + +namespace TestApplication.Context; + +public partial class Productsale +{ + public int Id { get; set; } + + public string Saledate { get; set; } = null!; + + public int Productid { get; set; } + + public int Quantity { get; set; } + + public int? Clientserviceid { get; set; } + + public virtual Clientservice? Clientservice { get; set; } + + public virtual Product Product { get; set; } = null!; +} diff --git a/TestApplication/Context/Service.cs b/TestApplication/Context/Service.cs new file mode 100644 index 0000000..240dd2f --- /dev/null +++ b/TestApplication/Context/Service.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; + +namespace TestApplication.Context; + +public partial class Service +{ + public int Id { get; set; } + + public string Title { get; set; } = null!; + + public decimal Cost { get; set; } + + public int DurationInSeconds { get; set; } + + public string? Description { get; set; } + + public double? Discount { get; set; } + + public string? MainImagePath { get; set; } + + public virtual ICollection ClientService1s { get; set; } = new List(); + + public virtual ICollection ServicePhotos { get; set; } = new List(); +} diff --git a/TestApplication/Context/Service1.cs b/TestApplication/Context/Service1.cs new file mode 100644 index 0000000..fb7247f --- /dev/null +++ b/TestApplication/Context/Service1.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; + +namespace TestApplication.Context; + +public partial class Service1 +{ + public int Id { get; set; } + + public string Title { get; set; } = null!; + + public decimal Cost { get; set; } + + public int Durationinseconds { get; set; } + + public string? Description { get; set; } + + public decimal? Discount { get; set; } + + public string? Mainimagepath { get; set; } + + public virtual ICollection Clientservices { get; set; } = new List(); + + public virtual ICollection Servicephoto1s { get; set; } = new List(); +} diff --git a/TestApplication/Context/ServicePhoto.cs b/TestApplication/Context/ServicePhoto.cs new file mode 100644 index 0000000..c1f06a7 --- /dev/null +++ b/TestApplication/Context/ServicePhoto.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; + +namespace TestApplication.Context; + +public partial class ServicePhoto +{ + public int Id { get; set; } + + public int ServiceId { get; set; } + + public string PhotoPath { get; set; } = null!; + + public virtual Service Service { get; set; } = null!; +} diff --git a/TestApplication/Context/Servicephoto1.cs b/TestApplication/Context/Servicephoto1.cs new file mode 100644 index 0000000..f52c94c --- /dev/null +++ b/TestApplication/Context/Servicephoto1.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; + +namespace TestApplication.Context; + +public partial class Servicephoto1 +{ + public int Id { get; set; } + + public int Serviceid { get; set; } + + public string Photopath { get; set; } = null!; + + public virtual Service1 Service { get; set; } = null!; +} diff --git a/TestApplication/Context/Tag.cs b/TestApplication/Context/Tag.cs new file mode 100644 index 0000000..bf7110d --- /dev/null +++ b/TestApplication/Context/Tag.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; + +namespace TestApplication.Context; + +public partial class Tag +{ + public int Id { get; set; } + + public string Title { get; set; } = null!; + + public string Color { get; set; } = null!; + + public virtual ICollection Clients { get; set; } = new List(); +} diff --git a/TestApplication/Context/Tag1.cs b/TestApplication/Context/Tag1.cs new file mode 100644 index 0000000..afbbb3e --- /dev/null +++ b/TestApplication/Context/Tag1.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; + +namespace TestApplication.Context; + +public partial class Tag1 +{ + public int Id { get; set; } + + public string Title { get; set; } = null!; + + public string Color { get; set; } = null!; + + public virtual ICollection Clients { get; set; } = new List(); +} diff --git a/TestApplication/Context/TyutyunnikovaContext.cs b/TestApplication/Context/TyutyunnikovaContext.cs new file mode 100644 index 0000000..910d47a --- /dev/null +++ b/TestApplication/Context/TyutyunnikovaContext.cs @@ -0,0 +1,594 @@ +using System; +using System.Collections.Generic; +using Microsoft.EntityFrameworkCore; + +namespace TestApplication.Context; + +public partial class TyutyunnikovaContext : DbContext +{ + public TyutyunnikovaContext() + { + } + + public TyutyunnikovaContext(DbContextOptions options) + : base(options) + { + } + + public virtual DbSet Clients { get; set; } + + public virtual DbSet Clients1 { get; set; } + + public virtual DbSet ClientServices1 { get; set; } + + public virtual DbSet Clientservices { get; set; } + + public virtual DbSet DocumentByServices { get; set; } + + public virtual DbSet Documentbyservices1 { get; set; } + + public virtual DbSet Genders { get; set; } + + public virtual DbSet Genders1 { get; set; } + + public virtual DbSet Manufacturers { get; set; } + + public virtual DbSet Manufacturers1 { get; set; } + + public virtual DbSet Products { get; set; } + + public virtual DbSet Products1 { get; set; } + + public virtual DbSet ProductPhotos1 { get; set; } + + public virtual DbSet ProductSales1 { get; set; } + + public virtual DbSet Productphotos { get; set; } + + public virtual DbSet Productsales { get; set; } + + public virtual DbSet Services { get; set; } + + public virtual DbSet Services1 { get; set; } + + public virtual DbSet ServicePhotos { get; set; } + + public virtual DbSet Servicephotos1 { get; set; } + + public virtual DbSet Tags { get; set; } + + public virtual DbSet Tags1 { 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=45.67.56.214;Port=5454;Database=tyutyunnikova;Username=tyutyunnikova;password=weGk7YzI"); + + protected override void OnModelCreating(ModelBuilder modelBuilder) + { + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("client_pkey"); + + entity.ToTable("client"); + + entity.Property(e => e.Id).HasColumnName("id"); + entity.Property(e => e.Birthday) + .HasColumnType("character varying") + .HasColumnName("birthday"); + entity.Property(e => e.Email) + .HasMaxLength(255) + .HasColumnName("email"); + entity.Property(e => e.Firstname) + .HasMaxLength(50) + .HasColumnName("firstname"); + entity.Property(e => e.Gendercode) + .HasMaxLength(1) + .HasColumnName("gendercode"); + entity.Property(e => e.Lastname) + .HasMaxLength(50) + .HasColumnName("lastname"); + entity.Property(e => e.Patronymic) + .HasMaxLength(50) + .HasColumnName("patronymic"); + entity.Property(e => e.Phone) + .HasMaxLength(20) + .HasColumnName("phone"); + entity.Property(e => e.Photopath) + .HasMaxLength(1000) + .HasColumnName("photopath"); + entity.Property(e => e.Registrationdate) + .HasColumnType("character varying") + .HasColumnName("registrationdate"); + + entity.HasOne(d => d.GendercodeNavigation).WithMany(p => p.Clients) + .HasForeignKey(d => d.Gendercode) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("client_gendercode_fkey"); + + entity.HasMany(d => d.Tags).WithMany(p => p.Clients) + .UsingEntity>( + "Tagofclient", + r => r.HasOne().WithMany() + .HasForeignKey("Tagid") + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("tagofclient_tagid_fkey"), + l => l.HasOne().WithMany() + .HasForeignKey("Clientid") + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("tagofclient_clientid_fkey"), + j => + { + j.HasKey("Clientid", "Tagid").HasName("tagofclient_pk"); + j.ToTable("tagofclient"); + j.IndexerProperty("Clientid").HasColumnName("clientid"); + j.IndexerProperty("Tagid").HasColumnName("tagid"); + }); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("Client_pkey"); + + entity.ToTable("Client", "Clients"); + + entity.Property(e => e.Id).HasColumnName("ID"); + entity.Property(e => e.Email).HasMaxLength(255); + entity.Property(e => e.FirstName).HasMaxLength(50); + entity.Property(e => e.GenderCode).HasMaxLength(1); + entity.Property(e => e.LastName).HasMaxLength(50); + entity.Property(e => e.Patronymic).HasMaxLength(50); + entity.Property(e => e.Phone).HasMaxLength(20); + entity.Property(e => e.PhotoPath).HasMaxLength(1000); + + entity.HasOne(d => d.GenderCodeNavigation).WithMany(p => p.Client1s) + .HasForeignKey(d => d.GenderCode) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("FK_Client_Gender"); + + entity.HasMany(d => d.Tags).WithMany(p => p.Clients) + .UsingEntity>( + "TagOfClient1", + r => r.HasOne().WithMany() + .HasForeignKey("TagId") + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("FK_TagOfClient_Tag"), + l => l.HasOne().WithMany() + .HasForeignKey("ClientId") + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("FK_TagOfClient_Client"), + j => + { + j.HasKey("ClientId", "TagId").HasName("TagOfClient_pkey"); + j.ToTable("TagOfClient", "Clients"); + j.IndexerProperty("ClientId").HasColumnName("ClientID"); + j.IndexerProperty("TagId").HasColumnName("TagID"); + }); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("ClientService_pkey"); + + entity.ToTable("ClientService", "Clients"); + + entity.Property(e => e.Id).HasColumnName("ID"); + entity.Property(e => e.ClientId).HasColumnName("ClientID"); + entity.Property(e => e.ServiceId).HasColumnName("ServiceID"); + + entity.HasOne(d => d.Client).WithMany(p => p.ClientService1s) + .HasForeignKey(d => d.ClientId) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("FK_ClientService_Client"); + + entity.HasOne(d => d.Service).WithMany(p => p.ClientService1s) + .HasForeignKey(d => d.ServiceId) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("FK_ClientService_Service"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("clientservice_pkey"); + + entity.ToTable("clientservice"); + + entity.Property(e => e.Id).HasColumnName("id"); + entity.Property(e => e.Clientid).HasColumnName("clientid"); + entity.Property(e => e.Comment).HasColumnName("comment"); + entity.Property(e => e.Serviceid).HasColumnName("serviceid"); + entity.Property(e => e.Starttime) + .HasColumnType("timestamp without time zone") + .HasColumnName("starttime"); + + entity.HasOne(d => d.Client).WithMany(p => p.Clientservices) + .HasForeignKey(d => d.Clientid) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("clientservice_clientid_fkey"); + + entity.HasOne(d => d.Service).WithMany(p => p.Clientservices) + .HasForeignKey(d => d.Serviceid) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("clientservice_serviceid_fkey"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("DocumentByService_pkey"); + + entity.ToTable("DocumentByService", "Clients"); + + entity.Property(e => e.Id).HasColumnName("ID"); + entity.Property(e => e.ClientServiceId).HasColumnName("ClientServiceID"); + entity.Property(e => e.DocumentPath).HasMaxLength(1000); + + entity.HasOne(d => d.ClientService).WithMany(p => p.DocumentByServices) + .HasForeignKey(d => d.ClientServiceId) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("FK_DocumentByService_ClientService"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("documentbyservice_pkey"); + + entity.ToTable("documentbyservice"); + + entity.Property(e => e.Id).HasColumnName("id"); + entity.Property(e => e.Clientserviceid).HasColumnName("clientserviceid"); + entity.Property(e => e.Documentpath) + .HasMaxLength(1000) + .HasColumnName("documentpath"); + + entity.HasOne(d => d.Clientservice).WithMany(p => p.Documentbyservice1s) + .HasForeignKey(d => d.Clientserviceid) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("documentbyservice_clientserviceid_fkey"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Code).HasName("Gender_pkey"); + + entity.ToTable("Gender", "Clients"); + + entity.Property(e => e.Code) + .HasMaxLength(1) + .ValueGeneratedNever(); + entity.Property(e => e.Name).HasMaxLength(10); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Code).HasName("gender_pkey"); + + entity.ToTable("gender"); + + entity.Property(e => e.Code) + .HasMaxLength(1) + .ValueGeneratedNever() + .HasColumnName("code"); + entity.Property(e => e.Name) + .HasMaxLength(10) + .HasColumnName("name"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("manufacturer_pkey"); + + entity.ToTable("manufacturer"); + + entity.Property(e => e.Id).HasColumnName("id"); + entity.Property(e => e.Name) + .HasMaxLength(100) + .HasColumnName("name"); + entity.Property(e => e.Startdate).HasColumnName("startdate"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("Manufacturer_pkey"); + + entity.ToTable("Manufacturer", "Clients"); + + entity.Property(e => e.Id).HasColumnName("ID"); + entity.Property(e => e.Name).HasMaxLength(100); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("product_pkey"); + + entity.ToTable("product"); + + entity.Property(e => e.Id).HasColumnName("id"); + entity.Property(e => e.Cost) + .HasPrecision(19, 4) + .HasColumnName("cost"); + entity.Property(e => e.Description).HasColumnName("description"); + entity.Property(e => e.Isactive).HasColumnName("isactive"); + entity.Property(e => e.Mainimagepath) + .HasMaxLength(1000) + .HasColumnName("mainimagepath"); + entity.Property(e => e.Manufacturerid).HasColumnName("manufacturerid"); + entity.Property(e => e.Title) + .HasMaxLength(100) + .HasColumnName("title"); + + entity.HasOne(d => d.Manufacturer).WithMany(p => p.Products) + .HasForeignKey(d => d.Manufacturerid) + .HasConstraintName("product_manufacturerid_fkey"); + + entity.HasMany(d => d.Attachedproducts).WithMany(p => p.Mainproducts) + .UsingEntity>( + "Attachedproduct1", + r => r.HasOne().WithMany() + .HasForeignKey("Attachedproductid") + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("attachedproduct_attachedproductid_fkey"), + l => l.HasOne().WithMany() + .HasForeignKey("Mainproductid") + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("attachedproduct_mainproductid_fkey"), + j => + { + j.HasKey("Mainproductid", "Attachedproductid").HasName("attachedproduct_pk"); + j.ToTable("attachedproduct"); + j.IndexerProperty("Mainproductid").HasColumnName("mainproductid"); + j.IndexerProperty("Attachedproductid").HasColumnName("attachedproductid"); + }); + + entity.HasMany(d => d.Mainproducts).WithMany(p => p.Attachedproducts) + .UsingEntity>( + "Attachedproduct1", + r => r.HasOne().WithMany() + .HasForeignKey("Mainproductid") + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("attachedproduct_mainproductid_fkey"), + l => l.HasOne().WithMany() + .HasForeignKey("Attachedproductid") + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("attachedproduct_attachedproductid_fkey"), + j => + { + j.HasKey("Mainproductid", "Attachedproductid").HasName("attachedproduct_pk"); + j.ToTable("attachedproduct"); + j.IndexerProperty("Mainproductid").HasColumnName("mainproductid"); + j.IndexerProperty("Attachedproductid").HasColumnName("attachedproductid"); + }); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("Product_pkey"); + + entity.ToTable("Product", "Clients"); + + entity.Property(e => e.Id).HasColumnName("ID"); + entity.Property(e => e.Cost).HasPrecision(19, 4); + entity.Property(e => e.MainImagePath).HasMaxLength(1000); + entity.Property(e => e.ManufacturerId).HasColumnName("ManufacturerID"); + entity.Property(e => e.Title).HasMaxLength(100); + + entity.HasOne(d => d.Manufacturer).WithMany(p => p.Product1s) + .HasForeignKey(d => d.ManufacturerId) + .HasConstraintName("FK_Product_Manufacturer"); + + entity.HasMany(d => d.AttachedProducts).WithMany(p => p.MainProducts) + .UsingEntity>( + "AttachedProduct", + r => r.HasOne().WithMany() + .HasForeignKey("AttachedProductId") + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("FK_AttachedProduct_Product1"), + l => l.HasOne().WithMany() + .HasForeignKey("MainProductId") + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("FK_AttachedProduct_Product"), + j => + { + j.HasKey("MainProductId", "AttachedProductId").HasName("AttachedProduct_pkey"); + j.ToTable("AttachedProduct", "Clients"); + j.IndexerProperty("MainProductId").HasColumnName("MainProductID"); + j.IndexerProperty("AttachedProductId").HasColumnName("AttachedProductID"); + }); + + entity.HasMany(d => d.MainProducts).WithMany(p => p.AttachedProducts) + .UsingEntity>( + "AttachedProduct", + r => r.HasOne().WithMany() + .HasForeignKey("MainProductId") + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("FK_AttachedProduct_Product"), + l => l.HasOne().WithMany() + .HasForeignKey("AttachedProductId") + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("FK_AttachedProduct_Product1"), + j => + { + j.HasKey("MainProductId", "AttachedProductId").HasName("AttachedProduct_pkey"); + j.ToTable("AttachedProduct", "Clients"); + j.IndexerProperty("MainProductId").HasColumnName("MainProductID"); + j.IndexerProperty("AttachedProductId").HasColumnName("AttachedProductID"); + }); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("ProductPhoto_pkey"); + + entity.ToTable("ProductPhoto", "Clients"); + + entity.Property(e => e.Id).HasColumnName("ID"); + entity.Property(e => e.PhotoPath).HasMaxLength(1000); + entity.Property(e => e.ProductId).HasColumnName("ProductID"); + + entity.HasOne(d => d.Product).WithMany(p => p.ProductPhoto1s) + .HasForeignKey(d => d.ProductId) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("FK_ProductPhoto_Product"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("ProductSale_pkey"); + + entity.ToTable("ProductSale", "Clients"); + + entity.Property(e => e.Id).HasColumnName("ID"); + entity.Property(e => e.ClientServiceId).HasColumnName("ClientServiceID"); + entity.Property(e => e.ProductId).HasColumnName("ProductID"); + + entity.HasOne(d => d.ClientService).WithMany(p => p.ProductSale1s) + .HasForeignKey(d => d.ClientServiceId) + .HasConstraintName("FK_ProductSale_ClientService"); + + entity.HasOne(d => d.Product).WithMany(p => p.ProductSale1s) + .HasForeignKey(d => d.ProductId) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("FK_ProductSale_Product"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("productphoto_pkey"); + + entity.ToTable("productphoto"); + + entity.Property(e => e.Id).HasColumnName("id"); + entity.Property(e => e.Photopath) + .HasMaxLength(1000) + .HasColumnName("photopath"); + entity.Property(e => e.Productid).HasColumnName("productid"); + + entity.HasOne(d => d.Product).WithMany(p => p.Productphotos) + .HasForeignKey(d => d.Productid) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("productphoto_productid_fkey"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("productsale_pkey"); + + entity.ToTable("productsale"); + + entity.Property(e => e.Id).HasColumnName("id"); + entity.Property(e => e.Clientserviceid).HasColumnName("clientserviceid"); + entity.Property(e => e.Productid).HasColumnName("productid"); + entity.Property(e => e.Quantity).HasColumnName("quantity"); + entity.Property(e => e.Saledate) + .HasColumnType("character varying") + .HasColumnName("saledate"); + + entity.HasOne(d => d.Clientservice).WithMany(p => p.Productsales) + .HasForeignKey(d => d.Clientserviceid) + .HasConstraintName("productsale_clientserviceid_fkey"); + + entity.HasOne(d => d.Product).WithMany(p => p.Productsales) + .HasForeignKey(d => d.Productid) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("productsale_productid_fkey"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("Service_pkey"); + + entity.ToTable("Service", "Clients"); + + entity.Property(e => e.Id).HasColumnName("ID"); + entity.Property(e => e.Cost).HasPrecision(19, 4); + entity.Property(e => e.MainImagePath).HasMaxLength(1000); + entity.Property(e => e.Title).HasMaxLength(100); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("service_pkey"); + + entity.ToTable("service"); + + entity.Property(e => e.Id).HasColumnName("id"); + entity.Property(e => e.Cost) + .HasPrecision(19, 4) + .HasColumnName("cost"); + entity.Property(e => e.Description).HasColumnName("description"); + entity.Property(e => e.Discount).HasColumnName("discount"); + entity.Property(e => e.Durationinseconds).HasColumnName("durationinseconds"); + entity.Property(e => e.Mainimagepath) + .HasMaxLength(1000) + .HasColumnName("mainimagepath"); + entity.Property(e => e.Title) + .HasMaxLength(100) + .HasColumnName("title"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("ServicePhoto_pkey"); + + entity.ToTable("ServicePhoto", "Clients"); + + entity.Property(e => e.Id).HasColumnName("ID"); + entity.Property(e => e.PhotoPath).HasMaxLength(1000); + entity.Property(e => e.ServiceId).HasColumnName("ServiceID"); + + entity.HasOne(d => d.Service).WithMany(p => p.ServicePhotos) + .HasForeignKey(d => d.ServiceId) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("FK_ServicePhoto_Service"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("servicephoto_pkey"); + + entity.ToTable("servicephoto"); + + entity.Property(e => e.Id).HasColumnName("id"); + entity.Property(e => e.Photopath) + .HasMaxLength(1000) + .HasColumnName("photopath"); + entity.Property(e => e.Serviceid).HasColumnName("serviceid"); + + entity.HasOne(d => d.Service).WithMany(p => p.Servicephoto1s) + .HasForeignKey(d => d.Serviceid) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("servicephoto_serviceid_fkey"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("Tag_pkey"); + + entity.ToTable("Tag", "Clients"); + + entity.Property(e => e.Id).HasColumnName("ID"); + entity.Property(e => e.Color) + .HasMaxLength(6) + .IsFixedLength(); + entity.Property(e => e.Title).HasMaxLength(30); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("tag_pkey"); + + entity.ToTable("tag"); + + entity.Property(e => e.Id).HasColumnName("id"); + entity.Property(e => e.Color) + .HasMaxLength(6) + .IsFixedLength() + .HasColumnName("color"); + entity.Property(e => e.Title) + .HasMaxLength(30) + .HasColumnName("title"); + }); + + OnModelCreatingPartial(modelBuilder); + } + + partial void OnModelCreatingPartial(ModelBuilder modelBuilder); +} diff --git a/TestApplication/MainWindowDockPanel.axaml b/TestApplication/MainWindowDockPanel.axaml new file mode 100644 index 0000000..e44255d --- /dev/null +++ b/TestApplication/MainWindowDockPanel.axaml @@ -0,0 +1,50 @@ + + + + + Топ бар + + + + + Ботом бар + + + + + + Лефт бар + + + + + Райт бар + + + + + diff --git a/TestApplication/MainWindowDockPanel.axaml.cs b/TestApplication/MainWindowDockPanel.axaml.cs new file mode 100644 index 0000000..41ea957 --- /dev/null +++ b/TestApplication/MainWindowDockPanel.axaml.cs @@ -0,0 +1,12 @@ +using Avalonia.Controls; + +namespace TestApplication +{ + public partial class MainWindowDockPanel : Window + { + public MainWindowDockPanel() + { + InitializeComponent(); + } + } +} \ No newline at end of file diff --git a/TestApplication/MainWindowGrid.axaml b/TestApplication/MainWindowGrid.axaml new file mode 100644 index 0000000..c155b78 --- /dev/null +++ b/TestApplication/MainWindowGrid.axaml @@ -0,0 +1,40 @@ + + + + + + + + + diff --git a/TestApplication/MainWindowGrid.axaml.cs b/TestApplication/MainWindowGrid.axaml.cs new file mode 100644 index 0000000..8a2e1fb --- /dev/null +++ b/TestApplication/MainWindowGrid.axaml.cs @@ -0,0 +1,13 @@ +using Avalonia; +using Avalonia.Controls; +using Avalonia.Markup.Xaml; + +namespace TestApplication; + +public partial class MainWindowGrid : Window +{ + public MainWindowGrid() + { + InitializeComponent(); + } +} \ No newline at end of file diff --git a/TestApplication/MainWindowStackPanel.axaml b/TestApplication/MainWindowStackPanel.axaml new file mode 100644 index 0000000..5d8a8f5 --- /dev/null +++ b/TestApplication/MainWindowStackPanel.axaml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + diff --git a/TestApplication/MainWindowStackPanel.axaml.cs b/TestApplication/MainWindowStackPanel.axaml.cs new file mode 100644 index 0000000..adbf72e --- /dev/null +++ b/TestApplication/MainWindowStackPanel.axaml.cs @@ -0,0 +1,13 @@ +using Avalonia; +using Avalonia.Controls; +using Avalonia.Markup.Xaml; + +namespace TestApplication; + +public partial class MainWindowStackPanel : Window +{ + public MainWindowStackPanel() + { + InitializeComponent(); + } +} \ No newline at end of file diff --git a/TestApplication/Program.cs b/TestApplication/Program.cs new file mode 100644 index 0000000..0190c70 --- /dev/null +++ b/TestApplication/Program.cs @@ -0,0 +1,22 @@ +using Avalonia; +using System; + +namespace TestApplication +{ + internal 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() + .UsePlatformDetect() + .WithInterFont() + .LogToTrace(); + } +} diff --git a/TestApplication/TestApplication.csproj b/TestApplication/TestApplication.csproj new file mode 100644 index 0000000..a50b2a6 --- /dev/null +++ b/TestApplication/TestApplication.csproj @@ -0,0 +1,34 @@ + + + WinExe + net8.0 + enable + true + app.manifest + true + + + + + + + + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + + + MainWindowDockPanel.axaml + + + MainWindowStackPanel.axaml + + + diff --git a/TestApplication/app.manifest b/TestApplication/app.manifest new file mode 100644 index 0000000..a1afb7d --- /dev/null +++ b/TestApplication/app.manifest @@ -0,0 +1,18 @@ + + + + + + + + + + + + + +