diff --git a/TransportCompany/TransportCompany.sln b/TransportCompany/TransportCompany.sln
index 6ef24a9..209a19b 100644
--- a/TransportCompany/TransportCompany.sln
+++ b/TransportCompany/TransportCompany.sln
@@ -7,9 +7,11 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TransportCompany", "Transpo
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TransportCompanyDataModels", "TransportCompanyDataModels\TransportCompanyDataModels.csproj", "{C57B4449-A725-4804-833D-7CE33965F001}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TransportCompanyContracts", "TransportCompanyContracts\TransportCompanyContracts.csproj", "{8707D719-D7B3-4F64-8BBE-DE9C7014DD13}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TransportCompanyContracts", "TransportCompanyContracts\TransportCompanyContracts.csproj", "{8707D719-D7B3-4F64-8BBE-DE9C7014DD13}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TransportCompanyBusinessLogic", "TransportCompanyBusinessLogic\TransportCompanyBusinessLogic.csproj", "{5FD7F1C8-0B2C-4AD4-91FD-A4475274FD3A}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TransportCompanyBusinessLogic", "TransportCompanyBusinessLogic\TransportCompanyBusinessLogic.csproj", "{5FD7F1C8-0B2C-4AD4-91FD-A4475274FD3A}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TransportCompanyDatabaseImplements", "TransportCompanyDatabaseImplements\TransportCompanyDatabaseImplements.csproj", "{E421890B-5501-4A4D-931A-1B8139FDDB24}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -33,6 +35,10 @@ Global
{5FD7F1C8-0B2C-4AD4-91FD-A4475274FD3A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5FD7F1C8-0B2C-4AD4-91FD-A4475274FD3A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5FD7F1C8-0B2C-4AD4-91FD-A4475274FD3A}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E421890B-5501-4A4D-931A-1B8139FDDB24}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E421890B-5501-4A4D-931A-1B8139FDDB24}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E421890B-5501-4A4D-931A-1B8139FDDB24}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E421890B-5501-4A4D-931A-1B8139FDDB24}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/TransportCompany/TransportCompany/TransportCompany.csproj b/TransportCompany/TransportCompany/TransportCompany.csproj
index b57c89e..a044fef 100644
--- a/TransportCompany/TransportCompany/TransportCompany.csproj
+++ b/TransportCompany/TransportCompany/TransportCompany.csproj
@@ -8,4 +8,23 @@
enable
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/TransportCompany/TransportCompanyDatabaseImplements/ElegevContext.cs b/TransportCompany/TransportCompanyDatabaseImplements/ElegevContext.cs
new file mode 100644
index 0000000..194baea
--- /dev/null
+++ b/TransportCompany/TransportCompanyDatabaseImplements/ElegevContext.cs
@@ -0,0 +1,150 @@
+using System;
+using System.Collections.Generic;
+using Microsoft.EntityFrameworkCore;
+using TransportCompanyDatabaseImplements.Models;
+
+namespace TransportCompanyDatabaseImplements;
+
+public partial class ElegevContext : DbContext
+{
+ public ElegevContext()
+ {
+ }
+
+ public ElegevContext(DbContextOptions options)
+ : base(options)
+ {
+ }
+
+ public virtual DbSet Cargos { get; set; }
+
+ public virtual DbSet Clients { get; set; }
+
+ public virtual DbSet Transports { get; set; }
+
+ public virtual DbSet Truckings { get; set; }
+
+ public virtual DbSet TypeTransportations { 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 http://go.microsoft.com/fwlink/?LinkId=723263.
+ => optionsBuilder.UseNpgsql("Host=192.168.56.101;Port=6000;Database=elegev;Username=elegev;Password=user");
+
+ protected override void OnModelCreating(ModelBuilder modelBuilder)
+ {
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("cargo_pkey");
+
+ entity.ToTable("cargo");
+
+ entity.Property(e => e.Id)
+ .ValueGeneratedNever()
+ .HasColumnName("id");
+ entity.Property(e => e.TypeCargo)
+ .HasMaxLength(255)
+ .HasColumnName("type_cargo");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("client_pkey");
+
+ entity.ToTable("client");
+
+ entity.Property(e => e.Id)
+ .ValueGeneratedNever()
+ .HasColumnName("id");
+ entity.Property(e => e.Email)
+ .HasMaxLength(255)
+ .HasColumnName("email");
+ entity.Property(e => e.Name)
+ .HasMaxLength(255)
+ .HasColumnName("name");
+ entity.Property(e => e.Patronymic)
+ .HasMaxLength(255)
+ .HasColumnName("patronymic");
+ entity.Property(e => e.Surname)
+ .HasMaxLength(255)
+ .HasColumnName("surname");
+ entity.Property(e => e.Telephone)
+ .HasMaxLength(255)
+ .HasColumnName("telephone");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("transport_pkey");
+
+ entity.ToTable("transport");
+
+ entity.Property(e => e.Id)
+ .ValueGeneratedNever()
+ .HasColumnName("id");
+ entity.Property(e => e.TransportType)
+ .HasMaxLength(255)
+ .HasColumnName("transport_type");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("trucking_pkey");
+
+ entity.ToTable("trucking");
+
+ entity.Property(e => e.Id)
+ .ValueGeneratedNever()
+ .HasColumnName("id");
+ entity.Property(e => e.CargoId).HasColumnName("cargo_id");
+ entity.Property(e => e.ClientId).HasColumnName("client_id");
+ entity.Property(e => e.DateEnd).HasColumnName("date_end");
+ entity.Property(e => e.DateStart).HasColumnName("date_start");
+ entity.Property(e => e.Price).HasColumnName("price");
+ entity.Property(e => e.TransportId).HasColumnName("transport_id");
+ entity.Property(e => e.TypeTransportationId).HasColumnName("type_transportation_id");
+
+ entity.HasOne(d => d.Cargo).WithMany(p => p.Truckings)
+ .HasForeignKey(d => d.CargoId)
+ .OnDelete(DeleteBehavior.ClientSetNull)
+ .HasConstraintName("cargo_id");
+
+ entity.HasOne(d => d.Client).WithMany(p => p.Truckings)
+ .HasForeignKey(d => d.ClientId)
+ .OnDelete(DeleteBehavior.ClientSetNull)
+ .HasConstraintName("client_id");
+
+ entity.HasOne(d => d.Transport).WithMany(p => p.Truckings)
+ .HasForeignKey(d => d.TransportId)
+ .OnDelete(DeleteBehavior.ClientSetNull)
+ .HasConstraintName("transport_id");
+
+ entity.HasOne(d => d.TypeTransportation).WithMany(p => p.Truckings)
+ .HasForeignKey(d => d.TypeTransportationId)
+ .OnDelete(DeleteBehavior.ClientSetNull)
+ .HasConstraintName("type_transportation_id");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("type_transportation_pkey");
+
+ entity.ToTable("type_transportation");
+
+ entity.Property(e => e.Id)
+ .ValueGeneratedNever()
+ .HasColumnName("id");
+ entity.Property(e => e.TransportationType)
+ .HasMaxLength(255)
+ .HasColumnName("transportation_type");
+ });
+ modelBuilder.HasSequence("seq_cargo");
+ modelBuilder.HasSequence("seq_client");
+ modelBuilder.HasSequence("seq_trucking");
+ modelBuilder.HasSequence("seq_type_transport");
+ modelBuilder.HasSequence("seq_type_transportation");
+
+ OnModelCreatingPartial(modelBuilder);
+ }
+
+ partial void OnModelCreatingPartial(ModelBuilder modelBuilder);
+}
diff --git a/TransportCompany/TransportCompanyDatabaseImplements/Implements/ClientStorage.cs b/TransportCompany/TransportCompanyDatabaseImplements/Implements/ClientStorage.cs
new file mode 100644
index 0000000..4b128f4
--- /dev/null
+++ b/TransportCompany/TransportCompanyDatabaseImplements/Implements/ClientStorage.cs
@@ -0,0 +1,47 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using TransportCompanyContracts.BindingModels;
+using TransportCompanyContracts.SearchModels;
+using TransportCompanyContracts.StoragesContracts;
+using TransportCompanyContracts.ViewModels;
+
+namespace TransportCompanyDatabaseImplements.Implements
+{
+ public class ClientStorage : IClientStorage
+ {
+ public List GetFullList()
+ {
+ using var context = new ElegevContext();
+
+ return context.Clients.ToList();
+ }
+
+ public List GetFilteredList(ClientSearchModel model)
+ {
+ throw new NotImplementedException();
+ }
+
+ public ClientViewModel? GetElement(ClientSearchModel model)
+ {
+ throw new NotImplementedException();
+ }
+
+ public ClientViewModel? Insert(ClientBindingModel model)
+ {
+ throw new NotImplementedException();
+ }
+
+ public ClientViewModel? Update(ClientBindingModel model)
+ {
+ throw new NotImplementedException();
+ }
+
+ public ClientViewModel? Delete(ClientBindingModel model)
+ {
+ throw new NotImplementedException();
+ }
+ }
+}
diff --git a/TransportCompany/TransportCompanyDatabaseImplements/Migrations/20230412195202_StartMigration.Designer.cs b/TransportCompany/TransportCompanyDatabaseImplements/Migrations/20230412195202_StartMigration.Designer.cs
new file mode 100644
index 0000000..f527342
--- /dev/null
+++ b/TransportCompany/TransportCompanyDatabaseImplements/Migrations/20230412195202_StartMigration.Designer.cs
@@ -0,0 +1,239 @@
+//
+using System;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
+using TransportCompanyDatabaseImplements;
+
+#nullable disable
+
+namespace TransportCompanyDatabaseImplements.Migrations
+{
+ [DbContext(typeof(ElegevContext))]
+ [Migration("20230412195202_StartMigration")]
+ partial class StartMigration
+ {
+ ///
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .HasAnnotation("ProductVersion", "7.0.5")
+ .HasAnnotation("Relational:MaxIdentifierLength", 63);
+
+ NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
+
+ modelBuilder.HasSequence("seq_cargo");
+
+ modelBuilder.HasSequence("seq_client");
+
+ modelBuilder.HasSequence("seq_trucking");
+
+ modelBuilder.HasSequence("seq_type_transport");
+
+ modelBuilder.HasSequence("seq_type_transportation");
+
+ modelBuilder.Entity("TransportCompanyDatabaseImplements.Models.Cargo", b =>
+ {
+ b.Property("Id")
+ .HasColumnType("integer")
+ .HasColumnName("id");
+
+ b.Property("TypeCargo")
+ .IsRequired()
+ .HasMaxLength(255)
+ .HasColumnType("character varying(255)")
+ .HasColumnName("type_cargo");
+
+ b.HasKey("Id")
+ .HasName("cargo_pkey");
+
+ b.ToTable("cargo", (string)null);
+ });
+
+ modelBuilder.Entity("TransportCompanyDatabaseImplements.Models.Client", b =>
+ {
+ b.Property("Id")
+ .HasColumnType("integer")
+ .HasColumnName("id");
+
+ b.Property("Email")
+ .IsRequired()
+ .HasMaxLength(255)
+ .HasColumnType("character varying(255)")
+ .HasColumnName("email");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasMaxLength(255)
+ .HasColumnType("character varying(255)")
+ .HasColumnName("name");
+
+ b.Property("Patronymic")
+ .IsRequired()
+ .HasMaxLength(255)
+ .HasColumnType("character varying(255)")
+ .HasColumnName("patronymic");
+
+ b.Property("Surname")
+ .IsRequired()
+ .HasMaxLength(255)
+ .HasColumnType("character varying(255)")
+ .HasColumnName("surname");
+
+ b.Property("Telephone")
+ .IsRequired()
+ .HasMaxLength(255)
+ .HasColumnType("character varying(255)")
+ .HasColumnName("telephone");
+
+ b.HasKey("Id")
+ .HasName("client_pkey");
+
+ b.ToTable("client", (string)null);
+ });
+
+ modelBuilder.Entity("TransportCompanyDatabaseImplements.Models.Transport", b =>
+ {
+ b.Property("Id")
+ .HasColumnType("integer")
+ .HasColumnName("id");
+
+ b.Property("TransportType")
+ .IsRequired()
+ .HasMaxLength(255)
+ .HasColumnType("character varying(255)")
+ .HasColumnName("transport_type");
+
+ b.HasKey("Id")
+ .HasName("transport_pkey");
+
+ b.ToTable("transport", (string)null);
+ });
+
+ modelBuilder.Entity("TransportCompanyDatabaseImplements.Models.Trucking", b =>
+ {
+ b.Property("Id")
+ .HasColumnType("integer")
+ .HasColumnName("id");
+
+ b.Property("CargoId")
+ .HasColumnType("integer")
+ .HasColumnName("cargo_id");
+
+ b.Property("ClientId")
+ .HasColumnType("integer")
+ .HasColumnName("client_id");
+
+ b.Property("DateEnd")
+ .HasColumnType("date")
+ .HasColumnName("date_end");
+
+ b.Property("DateStart")
+ .HasColumnType("date")
+ .HasColumnName("date_start");
+
+ b.Property("Price")
+ .HasColumnType("integer")
+ .HasColumnName("price");
+
+ b.Property("TransportId")
+ .HasColumnType("integer")
+ .HasColumnName("transport_id");
+
+ b.Property("TypeTransportationId")
+ .HasColumnType("integer")
+ .HasColumnName("type_transportation_id");
+
+ b.HasKey("Id")
+ .HasName("trucking_pkey");
+
+ b.HasIndex("CargoId");
+
+ b.HasIndex("ClientId");
+
+ b.HasIndex("TransportId");
+
+ b.HasIndex("TypeTransportationId");
+
+ b.ToTable("trucking", (string)null);
+ });
+
+ modelBuilder.Entity("TransportCompanyDatabaseImplements.Models.TypeTransportation", b =>
+ {
+ b.Property("Id")
+ .HasColumnType("integer")
+ .HasColumnName("id");
+
+ b.Property("TransportationType")
+ .IsRequired()
+ .HasMaxLength(255)
+ .HasColumnType("character varying(255)")
+ .HasColumnName("transportation_type");
+
+ b.HasKey("Id")
+ .HasName("type_transportation_pkey");
+
+ b.ToTable("type_transportation", (string)null);
+ });
+
+ modelBuilder.Entity("TransportCompanyDatabaseImplements.Models.Trucking", b =>
+ {
+ b.HasOne("TransportCompanyDatabaseImplements.Models.Cargo", "Cargo")
+ .WithMany("Truckings")
+ .HasForeignKey("CargoId")
+ .IsRequired()
+ .HasConstraintName("cargo_id");
+
+ b.HasOne("TransportCompanyDatabaseImplements.Models.Client", "Client")
+ .WithMany("Truckings")
+ .HasForeignKey("ClientId")
+ .IsRequired()
+ .HasConstraintName("client_id");
+
+ b.HasOne("TransportCompanyDatabaseImplements.Models.Transport", "Transport")
+ .WithMany("Truckings")
+ .HasForeignKey("TransportId")
+ .IsRequired()
+ .HasConstraintName("transport_id");
+
+ b.HasOne("TransportCompanyDatabaseImplements.Models.TypeTransportation", "TypeTransportation")
+ .WithMany("Truckings")
+ .HasForeignKey("TypeTransportationId")
+ .IsRequired()
+ .HasConstraintName("type_transportation_id");
+
+ b.Navigation("Cargo");
+
+ b.Navigation("Client");
+
+ b.Navigation("Transport");
+
+ b.Navigation("TypeTransportation");
+ });
+
+ modelBuilder.Entity("TransportCompanyDatabaseImplements.Models.Cargo", b =>
+ {
+ b.Navigation("Truckings");
+ });
+
+ modelBuilder.Entity("TransportCompanyDatabaseImplements.Models.Client", b =>
+ {
+ b.Navigation("Truckings");
+ });
+
+ modelBuilder.Entity("TransportCompanyDatabaseImplements.Models.Transport", b =>
+ {
+ b.Navigation("Truckings");
+ });
+
+ modelBuilder.Entity("TransportCompanyDatabaseImplements.Models.TypeTransportation", b =>
+ {
+ b.Navigation("Truckings");
+ });
+#pragma warning restore 612, 618
+ }
+ }
+}
diff --git a/TransportCompany/TransportCompanyDatabaseImplements/Migrations/20230412195202_StartMigration.cs b/TransportCompany/TransportCompanyDatabaseImplements/Migrations/20230412195202_StartMigration.cs
new file mode 100644
index 0000000..e9efd2d
--- /dev/null
+++ b/TransportCompany/TransportCompanyDatabaseImplements/Migrations/20230412195202_StartMigration.cs
@@ -0,0 +1,69 @@
+using System;
+using Microsoft.EntityFrameworkCore.Migrations;
+
+#nullable disable
+
+namespace TransportCompanyDatabaseImplements.Migrations
+{
+ ///
+ public partial class StartMigration : Migration
+ {
+ ///
+ protected override void Up(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.CreateIndex(
+ name: "IX_trucking_cargo_id",
+ table: "trucking",
+ column: "cargo_id");
+
+ migrationBuilder.CreateIndex(
+ name: "IX_trucking_client_id",
+ table: "trucking",
+ column: "client_id");
+
+ migrationBuilder.CreateIndex(
+ name: "IX_trucking_transport_id",
+ table: "trucking",
+ column: "transport_id");
+
+ migrationBuilder.CreateIndex(
+ name: "IX_trucking_type_transportation_id",
+ table: "trucking",
+ column: "type_transportation_id");
+ }
+
+ ///
+ protected override void Down(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.DropTable(
+ name: "trucking");
+
+ migrationBuilder.DropTable(
+ name: "cargo");
+
+ migrationBuilder.DropTable(
+ name: "client");
+
+ migrationBuilder.DropTable(
+ name: "transport");
+
+ migrationBuilder.DropTable(
+ name: "type_transportation");
+
+ migrationBuilder.DropSequence(
+ name: "seq_cargo");
+
+ migrationBuilder.DropSequence(
+ name: "seq_client");
+
+ migrationBuilder.DropSequence(
+ name: "seq_trucking");
+
+ migrationBuilder.DropSequence(
+ name: "seq_type_transport");
+
+ migrationBuilder.DropSequence(
+ name: "seq_type_transportation");
+ }
+ }
+}
diff --git a/TransportCompany/TransportCompanyDatabaseImplements/Migrations/ElegevContextModelSnapshot.cs b/TransportCompany/TransportCompanyDatabaseImplements/Migrations/ElegevContextModelSnapshot.cs
new file mode 100644
index 0000000..b10b48a
--- /dev/null
+++ b/TransportCompany/TransportCompanyDatabaseImplements/Migrations/ElegevContextModelSnapshot.cs
@@ -0,0 +1,236 @@
+//
+using System;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
+using TransportCompanyDatabaseImplements;
+
+#nullable disable
+
+namespace TransportCompanyDatabaseImplements.Migrations
+{
+ [DbContext(typeof(ElegevContext))]
+ partial class ElegevContextModelSnapshot : ModelSnapshot
+ {
+ protected override void BuildModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .HasAnnotation("ProductVersion", "7.0.5")
+ .HasAnnotation("Relational:MaxIdentifierLength", 63);
+
+ NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
+
+ modelBuilder.HasSequence("seq_cargo");
+
+ modelBuilder.HasSequence("seq_client");
+
+ modelBuilder.HasSequence("seq_trucking");
+
+ modelBuilder.HasSequence("seq_type_transport");
+
+ modelBuilder.HasSequence("seq_type_transportation");
+
+ modelBuilder.Entity("TransportCompanyDatabaseImplements.Models.Cargo", b =>
+ {
+ b.Property("Id")
+ .HasColumnType("integer")
+ .HasColumnName("id");
+
+ b.Property("TypeCargo")
+ .IsRequired()
+ .HasMaxLength(255)
+ .HasColumnType("character varying(255)")
+ .HasColumnName("type_cargo");
+
+ b.HasKey("Id")
+ .HasName("cargo_pkey");
+
+ b.ToTable("cargo", (string)null);
+ });
+
+ modelBuilder.Entity("TransportCompanyDatabaseImplements.Models.Client", b =>
+ {
+ b.Property("Id")
+ .HasColumnType("integer")
+ .HasColumnName("id");
+
+ b.Property("Email")
+ .IsRequired()
+ .HasMaxLength(255)
+ .HasColumnType("character varying(255)")
+ .HasColumnName("email");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasMaxLength(255)
+ .HasColumnType("character varying(255)")
+ .HasColumnName("name");
+
+ b.Property("Patronymic")
+ .IsRequired()
+ .HasMaxLength(255)
+ .HasColumnType("character varying(255)")
+ .HasColumnName("patronymic");
+
+ b.Property("Surname")
+ .IsRequired()
+ .HasMaxLength(255)
+ .HasColumnType("character varying(255)")
+ .HasColumnName("surname");
+
+ b.Property("Telephone")
+ .IsRequired()
+ .HasMaxLength(255)
+ .HasColumnType("character varying(255)")
+ .HasColumnName("telephone");
+
+ b.HasKey("Id")
+ .HasName("client_pkey");
+
+ b.ToTable("client", (string)null);
+ });
+
+ modelBuilder.Entity("TransportCompanyDatabaseImplements.Models.Transport", b =>
+ {
+ b.Property("Id")
+ .HasColumnType("integer")
+ .HasColumnName("id");
+
+ b.Property("TransportType")
+ .IsRequired()
+ .HasMaxLength(255)
+ .HasColumnType("character varying(255)")
+ .HasColumnName("transport_type");
+
+ b.HasKey("Id")
+ .HasName("transport_pkey");
+
+ b.ToTable("transport", (string)null);
+ });
+
+ modelBuilder.Entity("TransportCompanyDatabaseImplements.Models.Trucking", b =>
+ {
+ b.Property("Id")
+ .HasColumnType("integer")
+ .HasColumnName("id");
+
+ b.Property("CargoId")
+ .HasColumnType("integer")
+ .HasColumnName("cargo_id");
+
+ b.Property("ClientId")
+ .HasColumnType("integer")
+ .HasColumnName("client_id");
+
+ b.Property("DateEnd")
+ .HasColumnType("date")
+ .HasColumnName("date_end");
+
+ b.Property("DateStart")
+ .HasColumnType("date")
+ .HasColumnName("date_start");
+
+ b.Property("Price")
+ .HasColumnType("integer")
+ .HasColumnName("price");
+
+ b.Property("TransportId")
+ .HasColumnType("integer")
+ .HasColumnName("transport_id");
+
+ b.Property("TypeTransportationId")
+ .HasColumnType("integer")
+ .HasColumnName("type_transportation_id");
+
+ b.HasKey("Id")
+ .HasName("trucking_pkey");
+
+ b.HasIndex("CargoId");
+
+ b.HasIndex("ClientId");
+
+ b.HasIndex("TransportId");
+
+ b.HasIndex("TypeTransportationId");
+
+ b.ToTable("trucking", (string)null);
+ });
+
+ modelBuilder.Entity("TransportCompanyDatabaseImplements.Models.TypeTransportation", b =>
+ {
+ b.Property("Id")
+ .HasColumnType("integer")
+ .HasColumnName("id");
+
+ b.Property("TransportationType")
+ .IsRequired()
+ .HasMaxLength(255)
+ .HasColumnType("character varying(255)")
+ .HasColumnName("transportation_type");
+
+ b.HasKey("Id")
+ .HasName("type_transportation_pkey");
+
+ b.ToTable("type_transportation", (string)null);
+ });
+
+ modelBuilder.Entity("TransportCompanyDatabaseImplements.Models.Trucking", b =>
+ {
+ b.HasOne("TransportCompanyDatabaseImplements.Models.Cargo", "Cargo")
+ .WithMany("Truckings")
+ .HasForeignKey("CargoId")
+ .IsRequired()
+ .HasConstraintName("cargo_id");
+
+ b.HasOne("TransportCompanyDatabaseImplements.Models.Client", "Client")
+ .WithMany("Truckings")
+ .HasForeignKey("ClientId")
+ .IsRequired()
+ .HasConstraintName("client_id");
+
+ b.HasOne("TransportCompanyDatabaseImplements.Models.Transport", "Transport")
+ .WithMany("Truckings")
+ .HasForeignKey("TransportId")
+ .IsRequired()
+ .HasConstraintName("transport_id");
+
+ b.HasOne("TransportCompanyDatabaseImplements.Models.TypeTransportation", "TypeTransportation")
+ .WithMany("Truckings")
+ .HasForeignKey("TypeTransportationId")
+ .IsRequired()
+ .HasConstraintName("type_transportation_id");
+
+ b.Navigation("Cargo");
+
+ b.Navigation("Client");
+
+ b.Navigation("Transport");
+
+ b.Navigation("TypeTransportation");
+ });
+
+ modelBuilder.Entity("TransportCompanyDatabaseImplements.Models.Cargo", b =>
+ {
+ b.Navigation("Truckings");
+ });
+
+ modelBuilder.Entity("TransportCompanyDatabaseImplements.Models.Client", b =>
+ {
+ b.Navigation("Truckings");
+ });
+
+ modelBuilder.Entity("TransportCompanyDatabaseImplements.Models.Transport", b =>
+ {
+ b.Navigation("Truckings");
+ });
+
+ modelBuilder.Entity("TransportCompanyDatabaseImplements.Models.TypeTransportation", b =>
+ {
+ b.Navigation("Truckings");
+ });
+#pragma warning restore 612, 618
+ }
+ }
+}
diff --git a/TransportCompany/TransportCompanyDatabaseImplements/Models/Cargo.cs b/TransportCompany/TransportCompanyDatabaseImplements/Models/Cargo.cs
new file mode 100644
index 0000000..7d664c9
--- /dev/null
+++ b/TransportCompany/TransportCompanyDatabaseImplements/Models/Cargo.cs
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+
+namespace TransportCompanyDatabaseImplements.Models;
+
+public partial class Cargo
+{
+ public int Id { get; set; }
+
+ public string TypeCargo { get; set; } = null!;
+
+ public virtual ICollection Truckings { get; set; } = new List();
+}
diff --git a/TransportCompany/TransportCompanyDatabaseImplements/Models/Client.cs b/TransportCompany/TransportCompanyDatabaseImplements/Models/Client.cs
new file mode 100644
index 0000000..cc25807
--- /dev/null
+++ b/TransportCompany/TransportCompanyDatabaseImplements/Models/Client.cs
@@ -0,0 +1,57 @@
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using TransportCompanyContracts.BindingModels;
+using TransportCompanyContracts.ViewModels;
+
+namespace TransportCompanyDatabaseImplements.Models;
+
+public partial class Client
+{
+ public int Id { get; set; }
+
+ public string Name { get; set; } = null!;
+
+ public string Surname { get; set; } = null!;
+
+ public string Patronymic { get; set; } = null!;
+
+ public string Telephone { get; set; } = null!;
+
+ public string Email { get; set; } = null!;
+
+ public virtual ICollection Truckings { get; set; } = new List();
+
+ public static Client Create(ElegevContext context, ClientBindingModel model)
+ {
+ return new Client()
+ {
+ Id = model.Id,
+ Name = model.Name,
+ Surname = model.Surname,
+ Patronymic = model.Patronymic,
+ Telephone = model.TelephoneNumber,
+ Email = model.Email,
+ };
+ }
+
+ public void Update(ClientBindingModel model)
+ {
+ Id = model.Id;
+ Name = model.Name;
+ Surname = model.Surname;
+ Patronymic = model.Patronymic;
+ Telephone = model.TelephoneNumber;
+ Email = model.Email;
+ }
+
+ public ClientViewModel GetViewModel => new()
+ {
+ Id = Id,
+ Name = Name,
+ Surname = Surname,
+ Patronymic = Patronymic,
+ TelephoneNumber = Telephone,
+ Email = Email
+ };
+}
diff --git a/TransportCompany/TransportCompanyDatabaseImplements/Models/Transport.cs b/TransportCompany/TransportCompanyDatabaseImplements/Models/Transport.cs
new file mode 100644
index 0000000..9e19b3c
--- /dev/null
+++ b/TransportCompany/TransportCompanyDatabaseImplements/Models/Transport.cs
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+
+namespace TransportCompanyDatabaseImplements.Models;
+
+public partial class Transport
+{
+ public int Id { get; set; }
+
+ public string TransportType { get; set; } = null!;
+
+ public virtual ICollection Truckings { get; set; } = new List();
+}
diff --git a/TransportCompany/TransportCompanyDatabaseImplements/Models/Trucking.cs b/TransportCompany/TransportCompanyDatabaseImplements/Models/Trucking.cs
new file mode 100644
index 0000000..7ccbc6a
--- /dev/null
+++ b/TransportCompany/TransportCompanyDatabaseImplements/Models/Trucking.cs
@@ -0,0 +1,31 @@
+using System;
+using System.Collections.Generic;
+
+namespace TransportCompanyDatabaseImplements.Models;
+
+public partial class Trucking
+{
+ public int Id { get; set; }
+
+ public int ClientId { get; set; }
+
+ public int CargoId { get; set; }
+
+ public int Price { get; set; }
+
+ public DateOnly DateStart { get; set; }
+
+ public DateOnly DateEnd { get; set; }
+
+ public int TypeTransportationId { get; set; }
+
+ public int TransportId { get; set; }
+
+ public virtual Cargo Cargo { get; set; } = null!;
+
+ public virtual Client Client { get; set; } = null!;
+
+ public virtual Transport Transport { get; set; } = null!;
+
+ public virtual TypeTransportation TypeTransportation { get; set; } = null!;
+}
diff --git a/TransportCompany/TransportCompanyDatabaseImplements/Models/TypeTransportation.cs b/TransportCompany/TransportCompanyDatabaseImplements/Models/TypeTransportation.cs
new file mode 100644
index 0000000..adbbd9b
--- /dev/null
+++ b/TransportCompany/TransportCompanyDatabaseImplements/Models/TypeTransportation.cs
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+
+namespace TransportCompanyDatabaseImplements.Models;
+
+public partial class TypeTransportation
+{
+ public int Id { get; set; }
+
+ public string TransportationType { get; set; } = null!;
+
+ public virtual ICollection Truckings { get; set; } = new List();
+}
diff --git a/TransportCompany/TransportCompanyDatabaseImplements/TransportCompanyDatabaseImplements.csproj b/TransportCompany/TransportCompanyDatabaseImplements/TransportCompanyDatabaseImplements.csproj
new file mode 100644
index 0000000..07207df
--- /dev/null
+++ b/TransportCompany/TransportCompanyDatabaseImplements/TransportCompanyDatabaseImplements.csproj
@@ -0,0 +1,27 @@
+
+
+
+ net6.0
+ enable
+ enable
+
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+
+
+
+
+
+
+
+
+