diff --git a/SecuritySystem/Program.cs b/SecuritySystem/Program.cs index 2045af2..2c94571 100644 --- a/SecuritySystem/Program.cs +++ b/SecuritySystem/Program.cs @@ -40,11 +40,10 @@ namespace SecuritySystem services.AddTransient(); services.AddTransient(); services.AddTransient(); - services.AddTransient(); services.AddTransient(); - services.AddTransient(); services.AddTransient(); services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); services.AddTransient(); diff --git a/SecuritySystemContracts/BindingModels/OrderBindingModel.cs b/SecuritySystemContracts/BindingModels/OrderBindingModel.cs index ae51c4c..e37083b 100644 --- a/SecuritySystemContracts/BindingModels/OrderBindingModel.cs +++ b/SecuritySystemContracts/BindingModels/OrderBindingModel.cs @@ -11,7 +11,7 @@ namespace SecuritySystemContracts.BindingModels public double Sum { get; set; } public string SecureName { get; set; } = string.Empty; public OrderStatus Status { get; set; } = OrderStatus.Неизвестен; - public DateTime DateCreate { get; set; } = DateTime.Now; + public DateTime DateCreate { get; set; } = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Utc); public DateTime? DateImplement { get; set; } } } diff --git a/SecuritySystemDatabaseImplement/Migrations/20230320130415_InitialCreate.Designer.cs b/SecuritySystemDatabaseImplement/Migrations/20230404083007_InitialCreate.Designer.cs similarity index 74% rename from SecuritySystemDatabaseImplement/Migrations/20230320130415_InitialCreate.Designer.cs rename to SecuritySystemDatabaseImplement/Migrations/20230404083007_InitialCreate.Designer.cs index efd1c38..89afd67 100644 --- a/SecuritySystemDatabaseImplement/Migrations/20230320130415_InitialCreate.Designer.cs +++ b/SecuritySystemDatabaseImplement/Migrations/20230404083007_InitialCreate.Designer.cs @@ -2,9 +2,9 @@ using System; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Metadata; using Microsoft.EntityFrameworkCore.Migrations; using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; using SecuritySystemDatabaseImplement; #nullable disable @@ -12,7 +12,7 @@ using SecuritySystemDatabaseImplement; namespace SecuritySystemDatabaseImplement.Migrations { [DbContext(typeof(SecuritySystemDatabase))] - [Migration("20230320130415_InitialCreate")] + [Migration("20230404083007_InitialCreate")] partial class InitialCreate { /// @@ -21,24 +21,24 @@ namespace SecuritySystemDatabaseImplement.Migrations #pragma warning disable 612, 618 modelBuilder .HasAnnotation("ProductVersion", "7.0.4") - .HasAnnotation("Relational:MaxIdentifierLength", 128); + .HasAnnotation("Relational:MaxIdentifierLength", 63); - SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); + NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); modelBuilder.Entity("SecuritySystemDatabaseImplement.Models.Component", b => { b.Property("Id") .ValueGeneratedOnAdd() - .HasColumnType("int"); + .HasColumnType("integer"); - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("ComponentName") .IsRequired() - .HasColumnType("nvarchar(max)"); + .HasColumnType("text"); b.Property("Cost") - .HasColumnType("float"); + .HasColumnType("double precision"); b.HasKey("Id"); @@ -49,27 +49,27 @@ namespace SecuritySystemDatabaseImplement.Migrations { b.Property("Id") .ValueGeneratedOnAdd() - .HasColumnType("int"); + .HasColumnType("integer"); - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("Count") - .HasColumnType("int"); + .HasColumnType("integer"); b.Property("DateCreate") - .HasColumnType("datetime2"); + .HasColumnType("timestamp with time zone"); b.Property("DateImplement") - .HasColumnType("datetime2"); + .HasColumnType("timestamp with time zone"); b.Property("SecureId") - .HasColumnType("int"); + .HasColumnType("integer"); b.Property("Status") - .HasColumnType("int"); + .HasColumnType("integer"); b.Property("Sum") - .HasColumnType("float"); + .HasColumnType("double precision"); b.HasKey("Id"); @@ -82,16 +82,16 @@ namespace SecuritySystemDatabaseImplement.Migrations { b.Property("Id") .ValueGeneratedOnAdd() - .HasColumnType("int"); + .HasColumnType("integer"); - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("Price") - .HasColumnType("float"); + .HasColumnType("double precision"); b.Property("SecureName") .IsRequired() - .HasColumnType("nvarchar(max)"); + .HasColumnType("text"); b.HasKey("Id"); @@ -102,18 +102,18 @@ namespace SecuritySystemDatabaseImplement.Migrations { b.Property("Id") .ValueGeneratedOnAdd() - .HasColumnType("int"); + .HasColumnType("integer"); - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("ComponentId") - .HasColumnType("int"); + .HasColumnType("integer"); b.Property("Count") - .HasColumnType("int"); + .HasColumnType("integer"); b.Property("SecureId") - .HasColumnType("int"); + .HasColumnType("integer"); b.HasKey("Id"); diff --git a/SecuritySystemDatabaseImplement/Migrations/20230320130415_InitialCreate.cs b/SecuritySystemDatabaseImplement/Migrations/20230404083007_InitialCreate.cs similarity index 65% rename from SecuritySystemDatabaseImplement/Migrations/20230320130415_InitialCreate.cs rename to SecuritySystemDatabaseImplement/Migrations/20230404083007_InitialCreate.cs index 3d9d255..0eee1a3 100644 --- a/SecuritySystemDatabaseImplement/Migrations/20230320130415_InitialCreate.cs +++ b/SecuritySystemDatabaseImplement/Migrations/20230404083007_InitialCreate.cs @@ -1,5 +1,6 @@ using System; using Microsoft.EntityFrameworkCore.Migrations; +using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; #nullable disable @@ -15,10 +16,10 @@ namespace SecuritySystemDatabaseImplement.Migrations name: "Components", columns: table => new { - Id = table.Column(type: "int", nullable: false) - .Annotation("SqlServer:Identity", "1, 1"), - ComponentName = table.Column(type: "nvarchar(max)", nullable: false), - Cost = table.Column(type: "float", nullable: false) + Id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + ComponentName = table.Column(type: "text", nullable: false), + Cost = table.Column(type: "double precision", nullable: false) }, constraints: table => { @@ -29,10 +30,10 @@ namespace SecuritySystemDatabaseImplement.Migrations name: "Secures", columns: table => new { - Id = table.Column(type: "int", nullable: false) - .Annotation("SqlServer:Identity", "1, 1"), - SecureName = table.Column(type: "nvarchar(max)", nullable: false), - Price = table.Column(type: "float", nullable: false) + Id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + SecureName = table.Column(type: "text", nullable: false), + Price = table.Column(type: "double precision", nullable: false) }, constraints: table => { @@ -43,14 +44,14 @@ namespace SecuritySystemDatabaseImplement.Migrations name: "Orders", columns: table => new { - Id = table.Column(type: "int", nullable: false) - .Annotation("SqlServer:Identity", "1, 1"), - SecureId = table.Column(type: "int", nullable: false), - Count = table.Column(type: "int", nullable: false), - Sum = table.Column(type: "float", nullable: false), - Status = table.Column(type: "int", nullable: false), - DateCreate = table.Column(type: "datetime2", nullable: false), - DateImplement = table.Column(type: "datetime2", nullable: true) + Id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + SecureId = table.Column(type: "integer", nullable: false), + Count = table.Column(type: "integer", nullable: false), + Sum = table.Column(type: "double precision", nullable: false), + Status = table.Column(type: "integer", nullable: false), + DateCreate = table.Column(type: "timestamp with time zone", nullable: false), + DateImplement = table.Column(type: "timestamp with time zone", nullable: true) }, constraints: table => { @@ -67,11 +68,11 @@ namespace SecuritySystemDatabaseImplement.Migrations name: "SecureComponents", columns: table => new { - Id = table.Column(type: "int", nullable: false) - .Annotation("SqlServer:Identity", "1, 1"), - SecureId = table.Column(type: "int", nullable: false), - ComponentId = table.Column(type: "int", nullable: false), - Count = table.Column(type: "int", nullable: false) + Id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + SecureId = table.Column(type: "integer", nullable: false), + ComponentId = table.Column(type: "integer", nullable: false), + Count = table.Column(type: "integer", nullable: false) }, constraints: table => { diff --git a/SecuritySystemDatabaseImplement/Migrations/20230404083020_InitialCreate4.Designer.cs b/SecuritySystemDatabaseImplement/Migrations/20230404083020_InitialCreate4.Designer.cs new file mode 100644 index 0000000..28de3ce --- /dev/null +++ b/SecuritySystemDatabaseImplement/Migrations/20230404083020_InitialCreate4.Designer.cs @@ -0,0 +1,171 @@ +// +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; +using SecuritySystemDatabaseImplement; + +#nullable disable + +namespace SecuritySystemDatabaseImplement.Migrations +{ + [DbContext(typeof(SecuritySystemDatabase))] + [Migration("20230404083020_InitialCreate4")] + partial class InitialCreate4 + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "7.0.4") + .HasAnnotation("Relational:MaxIdentifierLength", 63); + + NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); + + modelBuilder.Entity("SecuritySystemDatabaseImplement.Models.Component", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("ComponentName") + .IsRequired() + .HasColumnType("text"); + + b.Property("Cost") + .HasColumnType("double precision"); + + b.HasKey("Id"); + + b.ToTable("Components"); + }); + + modelBuilder.Entity("SecuritySystemDatabaseImplement.Models.Order", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Count") + .HasColumnType("integer"); + + b.Property("DateCreate") + .HasColumnType("timestamp with time zone"); + + b.Property("DateImplement") + .HasColumnType("timestamp with time zone"); + + b.Property("SecureId") + .HasColumnType("integer"); + + b.Property("Status") + .HasColumnType("integer"); + + b.Property("Sum") + .HasColumnType("double precision"); + + b.HasKey("Id"); + + b.HasIndex("SecureId"); + + b.ToTable("Orders"); + }); + + modelBuilder.Entity("SecuritySystemDatabaseImplement.Models.Secure", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Price") + .HasColumnType("double precision"); + + b.Property("SecureName") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("Secures"); + }); + + modelBuilder.Entity("SecuritySystemDatabaseImplement.Models.SecureComponent", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("ComponentId") + .HasColumnType("integer"); + + b.Property("Count") + .HasColumnType("integer"); + + b.Property("SecureId") + .HasColumnType("integer"); + + b.HasKey("Id"); + + b.HasIndex("ComponentId"); + + b.HasIndex("SecureId"); + + b.ToTable("SecureComponents"); + }); + + modelBuilder.Entity("SecuritySystemDatabaseImplement.Models.Order", b => + { + b.HasOne("SecuritySystemDatabaseImplement.Models.Secure", "Secure") + .WithMany("Orders") + .HasForeignKey("SecureId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Secure"); + }); + + modelBuilder.Entity("SecuritySystemDatabaseImplement.Models.SecureComponent", b => + { + b.HasOne("SecuritySystemDatabaseImplement.Models.Component", "Component") + .WithMany("SecureComponents") + .HasForeignKey("ComponentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("SecuritySystemDatabaseImplement.Models.Secure", "Secure") + .WithMany("Components") + .HasForeignKey("SecureId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Component"); + + b.Navigation("Secure"); + }); + + modelBuilder.Entity("SecuritySystemDatabaseImplement.Models.Component", b => + { + b.Navigation("SecureComponents"); + }); + + modelBuilder.Entity("SecuritySystemDatabaseImplement.Models.Secure", b => + { + b.Navigation("Components"); + + b.Navigation("Orders"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/SecuritySystemDatabaseImplement/Migrations/20230404083020_InitialCreate4.cs b/SecuritySystemDatabaseImplement/Migrations/20230404083020_InitialCreate4.cs new file mode 100644 index 0000000..ba4a396 --- /dev/null +++ b/SecuritySystemDatabaseImplement/Migrations/20230404083020_InitialCreate4.cs @@ -0,0 +1,22 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace SecuritySystemDatabaseImplement.Migrations +{ + /// + public partial class InitialCreate4 : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + + } + } +} diff --git a/SecuritySystemDatabaseImplement/Migrations/SecuritySystemDatabaseModelSnapshot.cs b/SecuritySystemDatabaseImplement/Migrations/SecuritySystemDatabaseModelSnapshot.cs index 0c9fa48..9e14cab 100644 --- a/SecuritySystemDatabaseImplement/Migrations/SecuritySystemDatabaseModelSnapshot.cs +++ b/SecuritySystemDatabaseImplement/Migrations/SecuritySystemDatabaseModelSnapshot.cs @@ -2,8 +2,8 @@ using System; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Metadata; using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; using SecuritySystemDatabaseImplement; #nullable disable @@ -18,24 +18,24 @@ namespace SecuritySystemDatabaseImplement.Migrations #pragma warning disable 612, 618 modelBuilder .HasAnnotation("ProductVersion", "7.0.4") - .HasAnnotation("Relational:MaxIdentifierLength", 128); + .HasAnnotation("Relational:MaxIdentifierLength", 63); - SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); + NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); modelBuilder.Entity("SecuritySystemDatabaseImplement.Models.Component", b => { b.Property("Id") .ValueGeneratedOnAdd() - .HasColumnType("int"); + .HasColumnType("integer"); - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("ComponentName") .IsRequired() - .HasColumnType("nvarchar(max)"); + .HasColumnType("text"); b.Property("Cost") - .HasColumnType("float"); + .HasColumnType("double precision"); b.HasKey("Id"); @@ -46,27 +46,27 @@ namespace SecuritySystemDatabaseImplement.Migrations { b.Property("Id") .ValueGeneratedOnAdd() - .HasColumnType("int"); + .HasColumnType("integer"); - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("Count") - .HasColumnType("int"); + .HasColumnType("integer"); b.Property("DateCreate") - .HasColumnType("datetime2"); + .HasColumnType("timestamp with time zone"); b.Property("DateImplement") - .HasColumnType("datetime2"); + .HasColumnType("timestamp with time zone"); b.Property("SecureId") - .HasColumnType("int"); + .HasColumnType("integer"); b.Property("Status") - .HasColumnType("int"); + .HasColumnType("integer"); b.Property("Sum") - .HasColumnType("float"); + .HasColumnType("double precision"); b.HasKey("Id"); @@ -79,16 +79,16 @@ namespace SecuritySystemDatabaseImplement.Migrations { b.Property("Id") .ValueGeneratedOnAdd() - .HasColumnType("int"); + .HasColumnType("integer"); - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("Price") - .HasColumnType("float"); + .HasColumnType("double precision"); b.Property("SecureName") .IsRequired() - .HasColumnType("nvarchar(max)"); + .HasColumnType("text"); b.HasKey("Id"); @@ -99,18 +99,18 @@ namespace SecuritySystemDatabaseImplement.Migrations { b.Property("Id") .ValueGeneratedOnAdd() - .HasColumnType("int"); + .HasColumnType("integer"); - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("ComponentId") - .HasColumnType("int"); + .HasColumnType("integer"); b.Property("Count") - .HasColumnType("int"); + .HasColumnType("integer"); b.Property("SecureId") - .HasColumnType("int"); + .HasColumnType("integer"); b.HasKey("Id"); diff --git a/SecuritySystemDatabaseImplement/SecuritySystem.cs b/SecuritySystemDatabaseImplement/SecuritySystemDatabase.cs similarity index 76% rename from SecuritySystemDatabaseImplement/SecuritySystem.cs rename to SecuritySystemDatabaseImplement/SecuritySystemDatabase.cs index 487aa1c..0588be8 100644 --- a/SecuritySystemDatabaseImplement/SecuritySystem.cs +++ b/SecuritySystemDatabaseImplement/SecuritySystemDatabase.cs @@ -9,7 +9,7 @@ namespace SecuritySystemDatabaseImplement { if (optionsBuilder.IsConfigured == false) { - optionsBuilder.UseSqlServer(@"Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=SecuritySystemDatabase;Integrated Security=True;MultipleActiveResultSets=True;;TrustServerCertificate=True"); + optionsBuilder.UseNpgsql(@"Host=localhost;Port=5432;Database=SecuritySystemDatabaseFull;Username=postgres;Password=1953"); } base.OnConfiguring(optionsBuilder); } diff --git a/SecuritySystemDatabaseImplement/SecuritySystemDatabaseImplement.csproj b/SecuritySystemDatabaseImplement/SecuritySystemDatabaseImplement.csproj index 97c97d4..48614cb 100644 --- a/SecuritySystemDatabaseImplement/SecuritySystemDatabaseImplement.csproj +++ b/SecuritySystemDatabaseImplement/SecuritySystemDatabaseImplement.csproj @@ -8,11 +8,11 @@ - all runtime; build; native; contentfiles; analyzers; buildtransitive +