Создание временных моделей и бд
This commit is contained in:
parent
0878bff8c7
commit
3f55e0a509
@ -9,6 +9,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CarServiceContracts", "CarS
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CarServiceBusinessLogic", "CarServiceBusinessLogic\CarServiceBusinessLogic.csproj", "{F59A4E9C-1547-472A-ADE6-313D208430E1}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CarServiceDatabase", "CarServiceDatabase\CarServiceDatabase.csproj", "{1E57DD5F-5110-457C-8D9F-E34BBFE75A1F}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
@ -27,6 +29,10 @@ Global
|
||||
{F59A4E9C-1547-472A-ADE6-313D208430E1}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{F59A4E9C-1547-472A-ADE6-313D208430E1}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{F59A4E9C-1547-472A-ADE6-313D208430E1}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{1E57DD5F-5110-457C-8D9F-E34BBFE75A1F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{1E57DD5F-5110-457C-8D9F-E34BBFE75A1F}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{1E57DD5F-5110-457C-8D9F-E34BBFE75A1F}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{1E57DD5F-5110-457C-8D9F-E34BBFE75A1F}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
27
CarService/CarServiceDatabase/CarServiceDatabase.csproj
Normal file
27
CarService/CarServiceDatabase/CarServiceDatabase.csproj
Normal file
@ -0,0 +1,27 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="7.0.4" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="7.0.4" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="7.0.4">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Folder Include="Implements\" />
|
||||
<Folder Include="Migrations\" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\CarServiceContracts\CarServiceContracts.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
33
CarService/CarServiceDatabase/CarServiceDbContext.cs
Normal file
33
CarService/CarServiceDatabase/CarServiceDbContext.cs
Normal file
@ -0,0 +1,33 @@
|
||||
using CarServiceDatabase.Models;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
|
||||
namespace CarServiceDatabase
|
||||
{
|
||||
public class CarServiceDbContext : DbContext
|
||||
{
|
||||
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
|
||||
{
|
||||
if (optionsBuilder.IsConfigured == false)
|
||||
{
|
||||
optionsBuilder.UseSqlServer
|
||||
(
|
||||
@"Data Source=IGORS_2011;
|
||||
Initial Catalog=CarServiceDatabase;
|
||||
Integrated Security=True;
|
||||
MultipleActiveResultSets=True;
|
||||
TrustServerCertificate=True"
|
||||
);
|
||||
}
|
||||
base.OnConfiguring(optionsBuilder);
|
||||
}
|
||||
public virtual DbSet<Customer> Customers { get; set; }
|
||||
public virtual DbSet<Item> Items { get; set; }
|
||||
public virtual DbSet<ItemForRepair> ItemsForRepair { get; set; }
|
||||
public virtual DbSet<RepairRequest> RepairRequests { get; set; }
|
||||
public virtual DbSet<Vehicle> Vehicles { get; set; }
|
||||
public virtual DbSet<Work> Works { get; set; }
|
||||
public virtual DbSet<Worker> Workers { get; set; }
|
||||
public virtual DbSet<WorkInRequest> WorksInRequest { get; set; }
|
||||
public virtual DbSet<WorkPayment> WorkPayments { get; set; }
|
||||
}
|
||||
}
|
386
CarService/CarServiceDatabase/Migrations/20230402115927_InitMigration.Designer.cs
generated
Normal file
386
CarService/CarServiceDatabase/Migrations/20230402115927_InitMigration.Designer.cs
generated
Normal file
@ -0,0 +1,386 @@
|
||||
// <auto-generated />
|
||||
using System;
|
||||
using CarServiceDatabase;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||
using Microsoft.EntityFrameworkCore.Metadata;
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
||||
|
||||
#nullable disable
|
||||
|
||||
namespace CarServiceDatabase.Migrations
|
||||
{
|
||||
[DbContext(typeof(CarServiceDbContext))]
|
||||
[Migration("20230402115927_InitMigration")]
|
||||
partial class InitMigration
|
||||
{
|
||||
/// <inheritdoc />
|
||||
protected override void BuildTargetModel(ModelBuilder modelBuilder)
|
||||
{
|
||||
#pragma warning disable 612, 618
|
||||
modelBuilder
|
||||
.HasAnnotation("ProductVersion", "7.0.4")
|
||||
.HasAnnotation("Relational:MaxIdentifierLength", 128);
|
||||
|
||||
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
|
||||
|
||||
modelBuilder.Entity("CarServiceDatabase.Models.Customer", b =>
|
||||
{
|
||||
b.Property<int>("Id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("int");
|
||||
|
||||
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
|
||||
|
||||
b.Property<string>("Login")
|
||||
.IsRequired()
|
||||
.HasColumnType("nvarchar(max)");
|
||||
|
||||
b.Property<string>("Name")
|
||||
.IsRequired()
|
||||
.HasColumnType("nvarchar(max)");
|
||||
|
||||
b.Property<string>("Password")
|
||||
.IsRequired()
|
||||
.HasColumnType("nvarchar(max)");
|
||||
|
||||
b.Property<string>("Surname")
|
||||
.IsRequired()
|
||||
.HasColumnType("nvarchar(max)");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.ToTable("Customers");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("CarServiceDatabase.Models.Item", b =>
|
||||
{
|
||||
b.Property<int>("Id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("int");
|
||||
|
||||
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
|
||||
|
||||
b.Property<int>("Count")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.Property<string>("Name")
|
||||
.IsRequired()
|
||||
.HasColumnType("nvarchar(max)");
|
||||
|
||||
b.Property<decimal>("Price")
|
||||
.HasColumnType("decimal (10,2)");
|
||||
|
||||
b.Property<int>("WorkerId")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("WorkerId");
|
||||
|
||||
b.ToTable("Items");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("CarServiceDatabase.Models.ItemForRepair", b =>
|
||||
{
|
||||
b.Property<int>("Id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("int");
|
||||
|
||||
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
|
||||
|
||||
b.Property<int>("Count")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.Property<int>("ItemId")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.Property<int>("RepairRequestId")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("ItemId");
|
||||
|
||||
b.HasIndex("RepairRequestId");
|
||||
|
||||
b.ToTable("ItemsForRepair");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("CarServiceDatabase.Models.RepairRequest", b =>
|
||||
{
|
||||
b.Property<int>("Id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("int");
|
||||
|
||||
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
|
||||
|
||||
b.Property<DateTime>("DateCreated")
|
||||
.HasColumnType("datetime2");
|
||||
|
||||
b.Property<int>("VehicleId")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("VehicleId");
|
||||
|
||||
b.ToTable("RepairRequests");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("CarServiceDatabase.Models.Vehicle", b =>
|
||||
{
|
||||
b.Property<int>("Id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("int");
|
||||
|
||||
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
|
||||
|
||||
b.Property<int>("CustomerId")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.Property<string>("Name")
|
||||
.IsRequired()
|
||||
.HasColumnType("nvarchar(max)");
|
||||
|
||||
b.Property<string>("Plate")
|
||||
.HasColumnType("nvarchar(max)");
|
||||
|
||||
b.Property<string>("VIN")
|
||||
.HasColumnType("nvarchar(max)");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("CustomerId");
|
||||
|
||||
b.ToTable("Vehicles");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("CarServiceDatabase.Models.Work", b =>
|
||||
{
|
||||
b.Property<int>("Id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("int");
|
||||
|
||||
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
|
||||
|
||||
b.Property<decimal>("Duration")
|
||||
.HasColumnType("decimal (3,1)");
|
||||
|
||||
b.Property<string>("Name")
|
||||
.IsRequired()
|
||||
.HasColumnType("nvarchar(max)");
|
||||
|
||||
b.Property<decimal>("Price")
|
||||
.HasColumnType("decimal (10,2)");
|
||||
|
||||
b.Property<int>("WorkerId")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("WorkerId");
|
||||
|
||||
b.ToTable("Works");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("CarServiceDatabase.Models.WorkInRequest", b =>
|
||||
{
|
||||
b.Property<int>("Id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("int");
|
||||
|
||||
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
|
||||
|
||||
b.Property<decimal>("Cost")
|
||||
.HasColumnType("decimal (10,2)");
|
||||
|
||||
b.Property<int>("Count")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.Property<int>("RepairRequestId")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.Property<int>("WorkId")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("RepairRequestId");
|
||||
|
||||
b.HasIndex("WorkId");
|
||||
|
||||
b.ToTable("WorksInRequest");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("CarServiceDatabase.Models.WorkPayment", b =>
|
||||
{
|
||||
b.Property<int>("Id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("int");
|
||||
|
||||
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
|
||||
|
||||
b.Property<DateTime>("DatePayment")
|
||||
.HasColumnType("datetime2");
|
||||
|
||||
b.Property<decimal>("Sum")
|
||||
.HasColumnType("decimal (10,2)");
|
||||
|
||||
b.Property<int>("WorkInRequestId")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("WorkInRequestId");
|
||||
|
||||
b.ToTable("WorkPayments");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("CarServiceDatabase.Models.Worker", b =>
|
||||
{
|
||||
b.Property<int>("Id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("int");
|
||||
|
||||
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
|
||||
|
||||
b.Property<string>("Login")
|
||||
.IsRequired()
|
||||
.HasColumnType("nvarchar(max)");
|
||||
|
||||
b.Property<string>("Name")
|
||||
.IsRequired()
|
||||
.HasColumnType("nvarchar(max)");
|
||||
|
||||
b.Property<string>("Password")
|
||||
.IsRequired()
|
||||
.HasColumnType("nvarchar(max)");
|
||||
|
||||
b.Property<string>("Surname")
|
||||
.IsRequired()
|
||||
.HasColumnType("nvarchar(max)");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.ToTable("Workers");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("CarServiceDatabase.Models.Item", b =>
|
||||
{
|
||||
b.HasOne("CarServiceDatabase.Models.Worker", null)
|
||||
.WithMany("Items")
|
||||
.HasForeignKey("WorkerId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
});
|
||||
|
||||
modelBuilder.Entity("CarServiceDatabase.Models.ItemForRepair", b =>
|
||||
{
|
||||
b.HasOne("CarServiceDatabase.Models.Item", null)
|
||||
.WithMany("ItemsForRepair")
|
||||
.HasForeignKey("ItemId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("CarServiceDatabase.Models.RepairRequest", null)
|
||||
.WithMany("ItemsForRepair")
|
||||
.HasForeignKey("RepairRequestId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
});
|
||||
|
||||
modelBuilder.Entity("CarServiceDatabase.Models.RepairRequest", b =>
|
||||
{
|
||||
b.HasOne("CarServiceDatabase.Models.Vehicle", null)
|
||||
.WithMany("RepairRequests")
|
||||
.HasForeignKey("VehicleId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
});
|
||||
|
||||
modelBuilder.Entity("CarServiceDatabase.Models.Vehicle", b =>
|
||||
{
|
||||
b.HasOne("CarServiceDatabase.Models.Customer", null)
|
||||
.WithMany("Vehicles")
|
||||
.HasForeignKey("CustomerId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
});
|
||||
|
||||
modelBuilder.Entity("CarServiceDatabase.Models.Work", b =>
|
||||
{
|
||||
b.HasOne("CarServiceDatabase.Models.Worker", null)
|
||||
.WithMany("Works")
|
||||
.HasForeignKey("WorkerId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
});
|
||||
|
||||
modelBuilder.Entity("CarServiceDatabase.Models.WorkInRequest", b =>
|
||||
{
|
||||
b.HasOne("CarServiceDatabase.Models.RepairRequest", null)
|
||||
.WithMany("WorksInRequest")
|
||||
.HasForeignKey("RepairRequestId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("CarServiceDatabase.Models.Work", null)
|
||||
.WithMany("WorksInRequest")
|
||||
.HasForeignKey("WorkId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
});
|
||||
|
||||
modelBuilder.Entity("CarServiceDatabase.Models.WorkPayment", b =>
|
||||
{
|
||||
b.HasOne("CarServiceDatabase.Models.WorkInRequest", null)
|
||||
.WithMany("WorkPayments")
|
||||
.HasForeignKey("WorkInRequestId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
});
|
||||
|
||||
modelBuilder.Entity("CarServiceDatabase.Models.Customer", b =>
|
||||
{
|
||||
b.Navigation("Vehicles");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("CarServiceDatabase.Models.Item", b =>
|
||||
{
|
||||
b.Navigation("ItemsForRepair");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("CarServiceDatabase.Models.RepairRequest", b =>
|
||||
{
|
||||
b.Navigation("ItemsForRepair");
|
||||
|
||||
b.Navigation("WorksInRequest");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("CarServiceDatabase.Models.Vehicle", b =>
|
||||
{
|
||||
b.Navigation("RepairRequests");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("CarServiceDatabase.Models.Work", b =>
|
||||
{
|
||||
b.Navigation("WorksInRequest");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("CarServiceDatabase.Models.WorkInRequest", b =>
|
||||
{
|
||||
b.Navigation("WorkPayments");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("CarServiceDatabase.Models.Worker", b =>
|
||||
{
|
||||
b.Navigation("Items");
|
||||
|
||||
b.Navigation("Works");
|
||||
});
|
||||
#pragma warning restore 612, 618
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,285 @@
|
||||
using System;
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
|
||||
#nullable disable
|
||||
|
||||
namespace CarServiceDatabase.Migrations
|
||||
{
|
||||
/// <inheritdoc />
|
||||
public partial class InitMigration : Migration
|
||||
{
|
||||
/// <inheritdoc />
|
||||
protected override void Up(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.CreateTable(
|
||||
name: "Customers",
|
||||
columns: table => new
|
||||
{
|
||||
Id = table.Column<int>(type: "int", nullable: false)
|
||||
.Annotation("SqlServer:Identity", "1, 1"),
|
||||
Login = table.Column<string>(type: "nvarchar(max)", nullable: false),
|
||||
Password = table.Column<string>(type: "nvarchar(max)", nullable: false),
|
||||
Name = table.Column<string>(type: "nvarchar(max)", nullable: false),
|
||||
Surname = table.Column<string>(type: "nvarchar(max)", nullable: false)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
table.PrimaryKey("PK_Customers", x => x.Id);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "Workers",
|
||||
columns: table => new
|
||||
{
|
||||
Id = table.Column<int>(type: "int", nullable: false)
|
||||
.Annotation("SqlServer:Identity", "1, 1"),
|
||||
Login = table.Column<string>(type: "nvarchar(max)", nullable: false),
|
||||
Password = table.Column<string>(type: "nvarchar(max)", nullable: false),
|
||||
Name = table.Column<string>(type: "nvarchar(max)", nullable: false),
|
||||
Surname = table.Column<string>(type: "nvarchar(max)", nullable: false)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
table.PrimaryKey("PK_Workers", x => x.Id);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "Vehicles",
|
||||
columns: table => new
|
||||
{
|
||||
Id = table.Column<int>(type: "int", nullable: false)
|
||||
.Annotation("SqlServer:Identity", "1, 1"),
|
||||
Name = table.Column<string>(type: "nvarchar(max)", nullable: false),
|
||||
Plate = table.Column<string>(type: "nvarchar(max)", nullable: true),
|
||||
VIN = table.Column<string>(type: "nvarchar(max)", nullable: true),
|
||||
CustomerId = table.Column<int>(type: "int", nullable: false)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
table.PrimaryKey("PK_Vehicles", x => x.Id);
|
||||
table.ForeignKey(
|
||||
name: "FK_Vehicles_Customers_CustomerId",
|
||||
column: x => x.CustomerId,
|
||||
principalTable: "Customers",
|
||||
principalColumn: "Id",
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "Items",
|
||||
columns: table => new
|
||||
{
|
||||
Id = table.Column<int>(type: "int", nullable: false)
|
||||
.Annotation("SqlServer:Identity", "1, 1"),
|
||||
Name = table.Column<string>(type: "nvarchar(max)", nullable: false),
|
||||
Price = table.Column<decimal>(type: "decimal (10,2)", nullable: false),
|
||||
Count = table.Column<int>(type: "int", nullable: false),
|
||||
WorkerId = table.Column<int>(type: "int", nullable: false)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
table.PrimaryKey("PK_Items", x => x.Id);
|
||||
table.ForeignKey(
|
||||
name: "FK_Items_Workers_WorkerId",
|
||||
column: x => x.WorkerId,
|
||||
principalTable: "Workers",
|
||||
principalColumn: "Id",
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "Works",
|
||||
columns: table => new
|
||||
{
|
||||
Id = table.Column<int>(type: "int", nullable: false)
|
||||
.Annotation("SqlServer:Identity", "1, 1"),
|
||||
Name = table.Column<string>(type: "nvarchar(max)", nullable: false),
|
||||
Price = table.Column<decimal>(type: "decimal (10,2)", nullable: false),
|
||||
Duration = table.Column<decimal>(type: "decimal (3,1)", nullable: false),
|
||||
WorkerId = table.Column<int>(type: "int", nullable: false)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
table.PrimaryKey("PK_Works", x => x.Id);
|
||||
table.ForeignKey(
|
||||
name: "FK_Works_Workers_WorkerId",
|
||||
column: x => x.WorkerId,
|
||||
principalTable: "Workers",
|
||||
principalColumn: "Id",
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "RepairRequests",
|
||||
columns: table => new
|
||||
{
|
||||
Id = table.Column<int>(type: "int", nullable: false)
|
||||
.Annotation("SqlServer:Identity", "1, 1"),
|
||||
DateCreated = table.Column<DateTime>(type: "datetime2", nullable: false),
|
||||
VehicleId = table.Column<int>(type: "int", nullable: false)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
table.PrimaryKey("PK_RepairRequests", x => x.Id);
|
||||
table.ForeignKey(
|
||||
name: "FK_RepairRequests_Vehicles_VehicleId",
|
||||
column: x => x.VehicleId,
|
||||
principalTable: "Vehicles",
|
||||
principalColumn: "Id",
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "ItemsForRepair",
|
||||
columns: table => new
|
||||
{
|
||||
Id = table.Column<int>(type: "int", nullable: false)
|
||||
.Annotation("SqlServer:Identity", "1, 1"),
|
||||
Count = table.Column<int>(type: "int", nullable: false),
|
||||
ItemId = table.Column<int>(type: "int", nullable: false),
|
||||
RepairRequestId = table.Column<int>(type: "int", nullable: false)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
table.PrimaryKey("PK_ItemsForRepair", x => x.Id);
|
||||
table.ForeignKey(
|
||||
name: "FK_ItemsForRepair_Items_ItemId",
|
||||
column: x => x.ItemId,
|
||||
principalTable: "Items",
|
||||
principalColumn: "Id",
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
table.ForeignKey(
|
||||
name: "FK_ItemsForRepair_RepairRequests_RepairRequestId",
|
||||
column: x => x.RepairRequestId,
|
||||
principalTable: "RepairRequests",
|
||||
principalColumn: "Id",
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "WorksInRequest",
|
||||
columns: table => new
|
||||
{
|
||||
Id = table.Column<int>(type: "int", nullable: false)
|
||||
.Annotation("SqlServer:Identity", "1, 1"),
|
||||
Count = table.Column<int>(type: "int", nullable: false),
|
||||
Cost = table.Column<decimal>(type: "decimal (10,2)", nullable: false),
|
||||
RepairRequestId = table.Column<int>(type: "int", nullable: false),
|
||||
WorkId = table.Column<int>(type: "int", nullable: false)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
table.PrimaryKey("PK_WorksInRequest", x => x.Id);
|
||||
table.ForeignKey(
|
||||
name: "FK_WorksInRequest_RepairRequests_RepairRequestId",
|
||||
column: x => x.RepairRequestId,
|
||||
principalTable: "RepairRequests",
|
||||
principalColumn: "Id",
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
table.ForeignKey(
|
||||
name: "FK_WorksInRequest_Works_WorkId",
|
||||
column: x => x.WorkId,
|
||||
principalTable: "Works",
|
||||
principalColumn: "Id",
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "WorkPayments",
|
||||
columns: table => new
|
||||
{
|
||||
Id = table.Column<int>(type: "int", nullable: false)
|
||||
.Annotation("SqlServer:Identity", "1, 1"),
|
||||
DatePayment = table.Column<DateTime>(type: "datetime2", nullable: false),
|
||||
Sum = table.Column<decimal>(type: "decimal (10,2)", nullable: false),
|
||||
WorkInRequestId = table.Column<int>(type: "int", nullable: false)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
table.PrimaryKey("PK_WorkPayments", x => x.Id);
|
||||
table.ForeignKey(
|
||||
name: "FK_WorkPayments_WorksInRequest_WorkInRequestId",
|
||||
column: x => x.WorkInRequestId,
|
||||
principalTable: "WorksInRequest",
|
||||
principalColumn: "Id",
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_Items_WorkerId",
|
||||
table: "Items",
|
||||
column: "WorkerId");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_ItemsForRepair_ItemId",
|
||||
table: "ItemsForRepair",
|
||||
column: "ItemId");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_ItemsForRepair_RepairRequestId",
|
||||
table: "ItemsForRepair",
|
||||
column: "RepairRequestId");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_RepairRequests_VehicleId",
|
||||
table: "RepairRequests",
|
||||
column: "VehicleId");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_Vehicles_CustomerId",
|
||||
table: "Vehicles",
|
||||
column: "CustomerId");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_WorkPayments_WorkInRequestId",
|
||||
table: "WorkPayments",
|
||||
column: "WorkInRequestId");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_Works_WorkerId",
|
||||
table: "Works",
|
||||
column: "WorkerId");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_WorksInRequest_RepairRequestId",
|
||||
table: "WorksInRequest",
|
||||
column: "RepairRequestId");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_WorksInRequest_WorkId",
|
||||
table: "WorksInRequest",
|
||||
column: "WorkId");
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
protected override void Down(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.DropTable(
|
||||
name: "ItemsForRepair");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "WorkPayments");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "Items");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "WorksInRequest");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "RepairRequests");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "Works");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "Vehicles");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "Workers");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "Customers");
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,383 @@
|
||||
// <auto-generated />
|
||||
using System;
|
||||
using CarServiceDatabase;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||
using Microsoft.EntityFrameworkCore.Metadata;
|
||||
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
||||
|
||||
#nullable disable
|
||||
|
||||
namespace CarServiceDatabase.Migrations
|
||||
{
|
||||
[DbContext(typeof(CarServiceDbContext))]
|
||||
partial class CarServiceDbContextModelSnapshot : ModelSnapshot
|
||||
{
|
||||
protected override void BuildModel(ModelBuilder modelBuilder)
|
||||
{
|
||||
#pragma warning disable 612, 618
|
||||
modelBuilder
|
||||
.HasAnnotation("ProductVersion", "7.0.4")
|
||||
.HasAnnotation("Relational:MaxIdentifierLength", 128);
|
||||
|
||||
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
|
||||
|
||||
modelBuilder.Entity("CarServiceDatabase.Models.Customer", b =>
|
||||
{
|
||||
b.Property<int>("Id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("int");
|
||||
|
||||
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
|
||||
|
||||
b.Property<string>("Login")
|
||||
.IsRequired()
|
||||
.HasColumnType("nvarchar(max)");
|
||||
|
||||
b.Property<string>("Name")
|
||||
.IsRequired()
|
||||
.HasColumnType("nvarchar(max)");
|
||||
|
||||
b.Property<string>("Password")
|
||||
.IsRequired()
|
||||
.HasColumnType("nvarchar(max)");
|
||||
|
||||
b.Property<string>("Surname")
|
||||
.IsRequired()
|
||||
.HasColumnType("nvarchar(max)");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.ToTable("Customers");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("CarServiceDatabase.Models.Item", b =>
|
||||
{
|
||||
b.Property<int>("Id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("int");
|
||||
|
||||
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
|
||||
|
||||
b.Property<int>("Count")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.Property<string>("Name")
|
||||
.IsRequired()
|
||||
.HasColumnType("nvarchar(max)");
|
||||
|
||||
b.Property<decimal>("Price")
|
||||
.HasColumnType("decimal (10,2)");
|
||||
|
||||
b.Property<int>("WorkerId")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("WorkerId");
|
||||
|
||||
b.ToTable("Items");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("CarServiceDatabase.Models.ItemForRepair", b =>
|
||||
{
|
||||
b.Property<int>("Id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("int");
|
||||
|
||||
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
|
||||
|
||||
b.Property<int>("Count")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.Property<int>("ItemId")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.Property<int>("RepairRequestId")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("ItemId");
|
||||
|
||||
b.HasIndex("RepairRequestId");
|
||||
|
||||
b.ToTable("ItemsForRepair");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("CarServiceDatabase.Models.RepairRequest", b =>
|
||||
{
|
||||
b.Property<int>("Id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("int");
|
||||
|
||||
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
|
||||
|
||||
b.Property<DateTime>("DateCreated")
|
||||
.HasColumnType("datetime2");
|
||||
|
||||
b.Property<int>("VehicleId")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("VehicleId");
|
||||
|
||||
b.ToTable("RepairRequests");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("CarServiceDatabase.Models.Vehicle", b =>
|
||||
{
|
||||
b.Property<int>("Id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("int");
|
||||
|
||||
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
|
||||
|
||||
b.Property<int>("CustomerId")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.Property<string>("Name")
|
||||
.IsRequired()
|
||||
.HasColumnType("nvarchar(max)");
|
||||
|
||||
b.Property<string>("Plate")
|
||||
.HasColumnType("nvarchar(max)");
|
||||
|
||||
b.Property<string>("VIN")
|
||||
.HasColumnType("nvarchar(max)");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("CustomerId");
|
||||
|
||||
b.ToTable("Vehicles");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("CarServiceDatabase.Models.Work", b =>
|
||||
{
|
||||
b.Property<int>("Id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("int");
|
||||
|
||||
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
|
||||
|
||||
b.Property<decimal>("Duration")
|
||||
.HasColumnType("decimal (3,1)");
|
||||
|
||||
b.Property<string>("Name")
|
||||
.IsRequired()
|
||||
.HasColumnType("nvarchar(max)");
|
||||
|
||||
b.Property<decimal>("Price")
|
||||
.HasColumnType("decimal (10,2)");
|
||||
|
||||
b.Property<int>("WorkerId")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("WorkerId");
|
||||
|
||||
b.ToTable("Works");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("CarServiceDatabase.Models.WorkInRequest", b =>
|
||||
{
|
||||
b.Property<int>("Id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("int");
|
||||
|
||||
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
|
||||
|
||||
b.Property<decimal>("Cost")
|
||||
.HasColumnType("decimal (10,2)");
|
||||
|
||||
b.Property<int>("Count")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.Property<int>("RepairRequestId")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.Property<int>("WorkId")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("RepairRequestId");
|
||||
|
||||
b.HasIndex("WorkId");
|
||||
|
||||
b.ToTable("WorksInRequest");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("CarServiceDatabase.Models.WorkPayment", b =>
|
||||
{
|
||||
b.Property<int>("Id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("int");
|
||||
|
||||
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
|
||||
|
||||
b.Property<DateTime>("DatePayment")
|
||||
.HasColumnType("datetime2");
|
||||
|
||||
b.Property<decimal>("Sum")
|
||||
.HasColumnType("decimal (10,2)");
|
||||
|
||||
b.Property<int>("WorkInRequestId")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("WorkInRequestId");
|
||||
|
||||
b.ToTable("WorkPayments");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("CarServiceDatabase.Models.Worker", b =>
|
||||
{
|
||||
b.Property<int>("Id")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("int");
|
||||
|
||||
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
|
||||
|
||||
b.Property<string>("Login")
|
||||
.IsRequired()
|
||||
.HasColumnType("nvarchar(max)");
|
||||
|
||||
b.Property<string>("Name")
|
||||
.IsRequired()
|
||||
.HasColumnType("nvarchar(max)");
|
||||
|
||||
b.Property<string>("Password")
|
||||
.IsRequired()
|
||||
.HasColumnType("nvarchar(max)");
|
||||
|
||||
b.Property<string>("Surname")
|
||||
.IsRequired()
|
||||
.HasColumnType("nvarchar(max)");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.ToTable("Workers");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("CarServiceDatabase.Models.Item", b =>
|
||||
{
|
||||
b.HasOne("CarServiceDatabase.Models.Worker", null)
|
||||
.WithMany("Items")
|
||||
.HasForeignKey("WorkerId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
});
|
||||
|
||||
modelBuilder.Entity("CarServiceDatabase.Models.ItemForRepair", b =>
|
||||
{
|
||||
b.HasOne("CarServiceDatabase.Models.Item", null)
|
||||
.WithMany("ItemsForRepair")
|
||||
.HasForeignKey("ItemId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("CarServiceDatabase.Models.RepairRequest", null)
|
||||
.WithMany("ItemsForRepair")
|
||||
.HasForeignKey("RepairRequestId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
});
|
||||
|
||||
modelBuilder.Entity("CarServiceDatabase.Models.RepairRequest", b =>
|
||||
{
|
||||
b.HasOne("CarServiceDatabase.Models.Vehicle", null)
|
||||
.WithMany("RepairRequests")
|
||||
.HasForeignKey("VehicleId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
});
|
||||
|
||||
modelBuilder.Entity("CarServiceDatabase.Models.Vehicle", b =>
|
||||
{
|
||||
b.HasOne("CarServiceDatabase.Models.Customer", null)
|
||||
.WithMany("Vehicles")
|
||||
.HasForeignKey("CustomerId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
});
|
||||
|
||||
modelBuilder.Entity("CarServiceDatabase.Models.Work", b =>
|
||||
{
|
||||
b.HasOne("CarServiceDatabase.Models.Worker", null)
|
||||
.WithMany("Works")
|
||||
.HasForeignKey("WorkerId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
});
|
||||
|
||||
modelBuilder.Entity("CarServiceDatabase.Models.WorkInRequest", b =>
|
||||
{
|
||||
b.HasOne("CarServiceDatabase.Models.RepairRequest", null)
|
||||
.WithMany("WorksInRequest")
|
||||
.HasForeignKey("RepairRequestId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("CarServiceDatabase.Models.Work", null)
|
||||
.WithMany("WorksInRequest")
|
||||
.HasForeignKey("WorkId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
});
|
||||
|
||||
modelBuilder.Entity("CarServiceDatabase.Models.WorkPayment", b =>
|
||||
{
|
||||
b.HasOne("CarServiceDatabase.Models.WorkInRequest", null)
|
||||
.WithMany("WorkPayments")
|
||||
.HasForeignKey("WorkInRequestId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
});
|
||||
|
||||
modelBuilder.Entity("CarServiceDatabase.Models.Customer", b =>
|
||||
{
|
||||
b.Navigation("Vehicles");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("CarServiceDatabase.Models.Item", b =>
|
||||
{
|
||||
b.Navigation("ItemsForRepair");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("CarServiceDatabase.Models.RepairRequest", b =>
|
||||
{
|
||||
b.Navigation("ItemsForRepair");
|
||||
|
||||
b.Navigation("WorksInRequest");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("CarServiceDatabase.Models.Vehicle", b =>
|
||||
{
|
||||
b.Navigation("RepairRequests");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("CarServiceDatabase.Models.Work", b =>
|
||||
{
|
||||
b.Navigation("WorksInRequest");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("CarServiceDatabase.Models.WorkInRequest", b =>
|
||||
{
|
||||
b.Navigation("WorkPayments");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("CarServiceDatabase.Models.Worker", b =>
|
||||
{
|
||||
b.Navigation("Items");
|
||||
|
||||
b.Navigation("Works");
|
||||
});
|
||||
#pragma warning restore 612, 618
|
||||
}
|
||||
}
|
||||
}
|
71
CarService/CarServiceDatabase/Models/Customer.cs
Normal file
71
CarService/CarServiceDatabase/Models/Customer.cs
Normal file
@ -0,0 +1,71 @@
|
||||
using CarServiceContracts.BindingModels;
|
||||
using CarServiceContracts.Models;
|
||||
using CarServiceContracts.ViewModels;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace CarServiceDatabase.Models
|
||||
{
|
||||
public class Customer : ICustomerModel
|
||||
{
|
||||
public int Id { get; private set; }
|
||||
[Required]
|
||||
public string Login { get; private set; } = string.Empty;
|
||||
[Required]
|
||||
public string Password { get; private set; } = string.Empty;
|
||||
[Required]
|
||||
public string Name { get; private set; } = string.Empty;
|
||||
[Required]
|
||||
public string Surname { get; private set; } = string.Empty;
|
||||
/// <summary>
|
||||
/// Транспортные средства
|
||||
/// </summary>
|
||||
[ForeignKey("CustomerId")]
|
||||
public virtual List<Vehicle> Vehicles { get; set; } = new();
|
||||
public static Customer? Create(CustomerBindingModel? model)
|
||||
{
|
||||
if (model == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return new()
|
||||
{
|
||||
Id = model.Id,
|
||||
Login = model.Login,
|
||||
Password = model.Password,
|
||||
Name = model.Name,
|
||||
Surname = model.Surname
|
||||
};
|
||||
}
|
||||
public static Customer Create(CustomerViewModel model)
|
||||
{
|
||||
return new()
|
||||
{
|
||||
Id = model.Id,
|
||||
Login = model.Login,
|
||||
Password = model.Password,
|
||||
Name = model.Name,
|
||||
Surname = model.Surname
|
||||
};
|
||||
}
|
||||
public void Update(CustomerBindingModel? model)
|
||||
{
|
||||
if (model == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
Login = model.Login;
|
||||
Password = model.Password;
|
||||
Name = model.Name;
|
||||
Surname = model.Surname;
|
||||
}
|
||||
public CustomerViewModel GetViewModel => new()
|
||||
{
|
||||
Id = Id,
|
||||
Login = Login,
|
||||
Password = Password,
|
||||
Name = Name,
|
||||
Surname = Surname
|
||||
};
|
||||
}
|
||||
}
|
72
CarService/CarServiceDatabase/Models/Item.cs
Normal file
72
CarService/CarServiceDatabase/Models/Item.cs
Normal file
@ -0,0 +1,72 @@
|
||||
using CarServiceContracts.BindingModels;
|
||||
using CarServiceContracts.Models;
|
||||
using CarServiceContracts.ViewModels;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace CarServiceDatabase.Models
|
||||
{
|
||||
public class Item : IItemModel
|
||||
{
|
||||
public int Id { get; private set; }
|
||||
[Required]
|
||||
public string Name { get; private set; } = string.Empty;
|
||||
[Required, Column(TypeName = "decimal (10,2)")]
|
||||
public decimal Price { get; private set; }
|
||||
[Required]
|
||||
public int Count { get; private set; }
|
||||
[Required]
|
||||
public int WorkerId { get; private set; }
|
||||
/// <summary>
|
||||
/// Затраты на ремонт
|
||||
/// </summary>
|
||||
[ForeignKey("ItemId")]
|
||||
public virtual List<ItemForRepair> ItemsForRepair { get; set; } = new();
|
||||
public static Item? Create(ItemBindingModel? model)
|
||||
{
|
||||
if (model == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return new()
|
||||
{
|
||||
Id = model.Id,
|
||||
Name = model.Name,
|
||||
Price = model.Price,
|
||||
Count = model.Count,
|
||||
WorkerId = model.WorkerId
|
||||
};
|
||||
}
|
||||
public static Item Create(ItemViewModel model)
|
||||
{
|
||||
return new()
|
||||
{
|
||||
Id = model.Id,
|
||||
Name = model.Name,
|
||||
Price = model.Price,
|
||||
Count = model.Count,
|
||||
WorkerId = model.WorkerId
|
||||
};
|
||||
}
|
||||
public void Update(ItemBindingModel? model)
|
||||
{
|
||||
if (model == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
Id = model.Id;
|
||||
Name = model.Name;
|
||||
Price = model.Price;
|
||||
Count = model.Count;
|
||||
WorkerId = model.WorkerId;
|
||||
}
|
||||
public ItemViewModel GetViewModel => new()
|
||||
{
|
||||
Id = Id,
|
||||
Name = Name,
|
||||
Price = Price,
|
||||
Count = Count,
|
||||
WorkerId = WorkerId
|
||||
};
|
||||
}
|
||||
}
|
60
CarService/CarServiceDatabase/Models/ItemForRepair.cs
Normal file
60
CarService/CarServiceDatabase/Models/ItemForRepair.cs
Normal file
@ -0,0 +1,60 @@
|
||||
using CarServiceContracts.BindingModels;
|
||||
using CarServiceContracts.Models;
|
||||
using CarServiceContracts.ViewModels;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace CarServiceDatabase.Models
|
||||
{
|
||||
public class ItemForRepair : IItemForRepairModel
|
||||
{
|
||||
public int Id { get; private set; }
|
||||
[Required]
|
||||
public int Count { get; private set; }
|
||||
[Required]
|
||||
public int ItemId { get; private set; }
|
||||
[Required]
|
||||
public int RepairRequestId { get; private set; }
|
||||
public static ItemForRepair? Create(ItemForRepairBindingModel? model)
|
||||
{
|
||||
if (model == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return new()
|
||||
{
|
||||
Id = model.Id,
|
||||
Count = model.Count,
|
||||
ItemId = model.ItemId,
|
||||
RepairRequestId = model.RepairRequestId
|
||||
};
|
||||
}
|
||||
public static ItemForRepair Create(ItemForRepairViewModel model)
|
||||
{
|
||||
return new()
|
||||
{
|
||||
Id = model.Id,
|
||||
Count = model.Count,
|
||||
ItemId = model.ItemId,
|
||||
RepairRequestId = model.RepairRequestId
|
||||
};
|
||||
}
|
||||
public void Update(ItemForRepairBindingModel? model)
|
||||
{
|
||||
if (model == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
Id = model.Id;
|
||||
Count = model.Count;
|
||||
ItemId = model.ItemId;
|
||||
RepairRequestId = model.RepairRequestId;
|
||||
}
|
||||
public ItemForRepairViewModel GetViewModel => new()
|
||||
{
|
||||
Id = Id,
|
||||
Count = Count,
|
||||
ItemId = ItemId,
|
||||
RepairRequestId = RepairRequestId
|
||||
};
|
||||
}
|
||||
}
|
65
CarService/CarServiceDatabase/Models/RepairRequest.cs
Normal file
65
CarService/CarServiceDatabase/Models/RepairRequest.cs
Normal file
@ -0,0 +1,65 @@
|
||||
using CarServiceContracts.BindingModels;
|
||||
using CarServiceContracts.Models;
|
||||
using CarServiceContracts.ViewModels;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace CarServiceDatabase.Models
|
||||
{
|
||||
public class RepairRequest : IRepairRequestModel
|
||||
{
|
||||
public int Id { get; private set; }
|
||||
[Required]
|
||||
public DateTime DateCreated { get; private set; } = DateTime.Now;
|
||||
[Required]
|
||||
public int VehicleId { get; private set; }
|
||||
/// <summary>
|
||||
/// Работы в заявке
|
||||
/// </summary>
|
||||
[ForeignKey("RepairRequestId")]
|
||||
public virtual List<WorkInRequest> WorksInRequest { get; set; } = new();
|
||||
/// <summary>
|
||||
/// Затраты на ремонт
|
||||
/// </summary>
|
||||
[ForeignKey("RepairRequestId")]
|
||||
public virtual List<ItemForRepair> ItemsForRepair { get; set; } = new();
|
||||
public static RepairRequest? Create(RepairRequestBindingModel? model)
|
||||
{
|
||||
if (model == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return new()
|
||||
{
|
||||
Id = model.Id,
|
||||
DateCreated = model.DateCreated,
|
||||
VehicleId = model.VehicleId
|
||||
};
|
||||
}
|
||||
public static RepairRequest Create(RepairRequestViewModel model)
|
||||
{
|
||||
return new()
|
||||
{
|
||||
Id = model.Id,
|
||||
DateCreated = model.DateCreated,
|
||||
VehicleId = model.VehicleId
|
||||
};
|
||||
}
|
||||
public void Update(RepairRequestBindingModel? model)
|
||||
{
|
||||
if (model == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
Id = model.Id;
|
||||
DateCreated = model.DateCreated;
|
||||
VehicleId = model.VehicleId;
|
||||
}
|
||||
public RepairRequestViewModel GetViewModel => new()
|
||||
{
|
||||
Id = Id,
|
||||
DateCreated = DateCreated,
|
||||
VehicleId = VehicleId
|
||||
};
|
||||
}
|
||||
}
|
70
CarService/CarServiceDatabase/Models/Vehicle.cs
Normal file
70
CarService/CarServiceDatabase/Models/Vehicle.cs
Normal file
@ -0,0 +1,70 @@
|
||||
using CarServiceContracts.BindingModels;
|
||||
using CarServiceContracts.Models;
|
||||
using CarServiceContracts.ViewModels;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace CarServiceDatabase.Models
|
||||
{
|
||||
public class Vehicle : IVehicleModel
|
||||
{
|
||||
public int Id { get; private set; }
|
||||
[Required]
|
||||
public string Name { get; private set; } = string.Empty;
|
||||
public string? Plate { get; private set; }
|
||||
public string? VIN { get; private set; }
|
||||
[Required]
|
||||
public int CustomerId { get; private set; }
|
||||
/// <summary>
|
||||
/// Заявки на ремонт
|
||||
/// </summary>
|
||||
[ForeignKey("VehicleId")]
|
||||
public virtual List<RepairRequest> RepairRequests { get; set; } = new();
|
||||
public static Vehicle? Create(VehicleBindingModel? model)
|
||||
{
|
||||
if (model == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return new()
|
||||
{
|
||||
Id = model.Id,
|
||||
Name = model.Name,
|
||||
Plate = model.Plate,
|
||||
VIN = model.VIN,
|
||||
CustomerId = model.CustomerId
|
||||
};
|
||||
}
|
||||
public static Vehicle Create(VehicleViewModel model)
|
||||
{
|
||||
return new()
|
||||
{
|
||||
Id = model.Id,
|
||||
Name = model.Name,
|
||||
Plate = model.Plate,
|
||||
VIN = model.VIN,
|
||||
CustomerId = model.CustomerId
|
||||
};
|
||||
}
|
||||
public void Update(VehicleBindingModel? model)
|
||||
{
|
||||
if (model == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
Id = model.Id;
|
||||
Name = model.Name;
|
||||
Plate = model.Plate;
|
||||
VIN = model.VIN;
|
||||
CustomerId = model.CustomerId;
|
||||
}
|
||||
public VehicleViewModel GetViewModel => new()
|
||||
{
|
||||
Id = Id,
|
||||
Name = Name,
|
||||
Plate = Plate,
|
||||
VIN = VIN,
|
||||
CustomerId = CustomerId
|
||||
};
|
||||
}
|
||||
}
|
72
CarService/CarServiceDatabase/Models/Work.cs
Normal file
72
CarService/CarServiceDatabase/Models/Work.cs
Normal file
@ -0,0 +1,72 @@
|
||||
using CarServiceContracts.BindingModels;
|
||||
using CarServiceContracts.Models;
|
||||
using CarServiceContracts.ViewModels;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace CarServiceDatabase.Models
|
||||
{
|
||||
public class Work : IWorkModel
|
||||
{
|
||||
public int Id { get; private set; }
|
||||
[Required]
|
||||
public string Name { get; private set; } = string.Empty;
|
||||
[Required, Column(TypeName = "decimal (10,2)")]
|
||||
public decimal Price { get; private set; }
|
||||
[Required, Column(TypeName = "decimal (3,1)")]
|
||||
public decimal Duration { get; private set; }
|
||||
[Required]
|
||||
public int WorkerId { get; private set; }
|
||||
/// <summary>
|
||||
/// Работы в заявке
|
||||
/// </summary>
|
||||
[ForeignKey("WorkId")]
|
||||
public virtual List<WorkInRequest> WorksInRequest { get; set; } = new();
|
||||
public static Work? Create(WorkBindingModel? model)
|
||||
{
|
||||
if (model == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return new()
|
||||
{
|
||||
Id = model.Id,
|
||||
Name = model.Name,
|
||||
Price = model.Price,
|
||||
Duration = model.Duration,
|
||||
WorkerId = model.WorkerId
|
||||
};
|
||||
}
|
||||
public static Work Create(WorkViewModel model)
|
||||
{
|
||||
return new()
|
||||
{
|
||||
Id = model.Id,
|
||||
Name = model.Name,
|
||||
Price = model.Price,
|
||||
Duration = model.Duration,
|
||||
WorkerId = model.WorkerId
|
||||
};
|
||||
}
|
||||
public void Update(WorkBindingModel? model)
|
||||
{
|
||||
if (model == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
Id = model.Id;
|
||||
Name = model.Name;
|
||||
Price = model.Price;
|
||||
Duration = model.Duration;
|
||||
WorkerId = model.WorkerId;
|
||||
}
|
||||
public WorkViewModel GetViewModel => new()
|
||||
{
|
||||
Id = Id,
|
||||
Name = Name,
|
||||
Price = Price,
|
||||
Duration = Duration,
|
||||
WorkerId = WorkerId
|
||||
};
|
||||
}
|
||||
}
|
72
CarService/CarServiceDatabase/Models/WorkInRequest.cs
Normal file
72
CarService/CarServiceDatabase/Models/WorkInRequest.cs
Normal file
@ -0,0 +1,72 @@
|
||||
using CarServiceContracts.BindingModels;
|
||||
using CarServiceContracts.Models;
|
||||
using CarServiceContracts.ViewModels;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace CarServiceDatabase.Models
|
||||
{
|
||||
public class WorkInRequest : IWorkInRequestModel
|
||||
{
|
||||
public int Id { get; private set; }
|
||||
[Required]
|
||||
public int Count { get; private set; }
|
||||
[Required, Column(TypeName = "decimal (10,2)")]
|
||||
public decimal Cost { get; private set; }
|
||||
[Required]
|
||||
public int RepairRequestId { get; private set; }
|
||||
[Required]
|
||||
public int WorkId { get; private set; }
|
||||
/// <summary>
|
||||
/// Оплаты за ремонт
|
||||
/// </summary>
|
||||
[ForeignKey("WorkInRequestId")]
|
||||
public virtual List<WorkPayment> WorkPayments { get; set; } = new();
|
||||
public static WorkInRequest? Create(WorkInRequestBindingModel? model)
|
||||
{
|
||||
if (model == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return new()
|
||||
{
|
||||
Id = model.Id,
|
||||
Count = model.Count,
|
||||
Cost = model.Cost,
|
||||
RepairRequestId = model.RepairRequestId,
|
||||
WorkId = model.WorkId
|
||||
};
|
||||
}
|
||||
public static WorkInRequest Create(WorkInRequestViewModel model)
|
||||
{
|
||||
return new()
|
||||
{
|
||||
Id = model.Id,
|
||||
Count = model.Count,
|
||||
Cost = model.Cost,
|
||||
RepairRequestId = model.RepairRequestId,
|
||||
WorkId = model.WorkId
|
||||
};
|
||||
}
|
||||
public void Update(WorkInRequestBindingModel? model)
|
||||
{
|
||||
if (model == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
Id = model.Id;
|
||||
Count = model.Count;
|
||||
Cost = model.Cost;
|
||||
RepairRequestId = model.RepairRequestId;
|
||||
WorkId = model.WorkId;
|
||||
}
|
||||
public WorkInRequestViewModel GetViewModel => new()
|
||||
{
|
||||
Id = Id,
|
||||
Count = Count,
|
||||
Cost = Cost,
|
||||
RepairRequestId = RepairRequestId,
|
||||
WorkId = WorkId
|
||||
};
|
||||
}
|
||||
}
|
62
CarService/CarServiceDatabase/Models/WorkPayment.cs
Normal file
62
CarService/CarServiceDatabase/Models/WorkPayment.cs
Normal file
@ -0,0 +1,62 @@
|
||||
using CarServiceContracts.BindingModels;
|
||||
using CarServiceContracts.Models;
|
||||
using CarServiceContracts.ViewModels;
|
||||
using Microsoft.EntityFrameworkCore.Metadata.Internal;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace CarServiceDatabase.Models
|
||||
{
|
||||
public class WorkPayment : IWorkPaymentModel
|
||||
{
|
||||
public int Id { get; private set; }
|
||||
[Required]
|
||||
public DateTime DatePayment { get; private set; } = DateTime.Now;
|
||||
[Required, Column(TypeName = "decimal (10,2)")]
|
||||
public decimal Sum { get; private set; }
|
||||
[Required]
|
||||
public int WorkInRequestId { get; private set; }
|
||||
public static WorkPayment? Create(WorkPaymentBindingModel? model)
|
||||
{
|
||||
if (model == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return new()
|
||||
{
|
||||
Id = model.Id,
|
||||
DatePayment = model.DatePayment,
|
||||
Sum = model.Sum,
|
||||
WorkInRequestId = model.WorkInRequestId
|
||||
};
|
||||
}
|
||||
public static WorkPayment Create(WorkPaymentViewModel model)
|
||||
{
|
||||
return new()
|
||||
{
|
||||
Id = model.Id,
|
||||
DatePayment = model.DatePayment,
|
||||
Sum = model.Sum,
|
||||
WorkInRequestId = model.WorkInRequestId
|
||||
};
|
||||
}
|
||||
public void Update(WorkPaymentBindingModel? model)
|
||||
{
|
||||
if (model == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
Id = model.Id;
|
||||
DatePayment = model.DatePayment;
|
||||
Sum = model.Sum;
|
||||
WorkInRequestId = model.WorkInRequestId;
|
||||
}
|
||||
public WorkPaymentViewModel GetViewModel => new()
|
||||
{
|
||||
Id = Id,
|
||||
DatePayment = DatePayment,
|
||||
Sum = Sum,
|
||||
WorkInRequestId = WorkInRequestId
|
||||
};
|
||||
}
|
||||
}
|
76
CarService/CarServiceDatabase/Models/Worker.cs
Normal file
76
CarService/CarServiceDatabase/Models/Worker.cs
Normal file
@ -0,0 +1,76 @@
|
||||
using CarServiceContracts.BindingModels;
|
||||
using CarServiceContracts.Models;
|
||||
using CarServiceContracts.ViewModels;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace CarServiceDatabase.Models
|
||||
{
|
||||
public class Worker : IWorkerModel
|
||||
{
|
||||
public int Id { get; private set; }
|
||||
[Required]
|
||||
public string Login { get; private set; } = string.Empty;
|
||||
[Required]
|
||||
public string Password { get; private set; } = string.Empty;
|
||||
[Required]
|
||||
public string Name { get; private set; } = string.Empty;
|
||||
[Required]
|
||||
public string Surname { get; private set; } = string.Empty;
|
||||
/// <summary>
|
||||
/// Работы
|
||||
/// </summary>
|
||||
[ForeignKey("WorkerId")]
|
||||
public virtual List<Work> Works { get; set; } = new();
|
||||
/// <summary>
|
||||
/// Статьи затрат
|
||||
/// </summary>
|
||||
[ForeignKey("WorkerId")]
|
||||
public virtual List<Item> Items { get; set; } = new();
|
||||
public static Worker? Create(WorkerBindingModel? model)
|
||||
{
|
||||
if (model == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return new()
|
||||
{
|
||||
Id = model.Id,
|
||||
Login = model.Login,
|
||||
Password = model.Password,
|
||||
Name = model.Name,
|
||||
Surname = model.Surname
|
||||
};
|
||||
}
|
||||
public static Worker Create(WorkerViewModel model)
|
||||
{
|
||||
return new()
|
||||
{
|
||||
Id = model.Id,
|
||||
Login = model.Login,
|
||||
Password = model.Password,
|
||||
Name = model.Name,
|
||||
Surname = model.Surname
|
||||
};
|
||||
}
|
||||
public void Update(WorkerBindingModel? model)
|
||||
{
|
||||
if (model == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
Login = model.Login;
|
||||
Password = model.Password;
|
||||
Name = model.Name;
|
||||
Surname = model.Surname;
|
||||
}
|
||||
public WorkerViewModel GetViewModel => new()
|
||||
{
|
||||
Id = Id,
|
||||
Login = Login,
|
||||
Password = Password,
|
||||
Name = Name,
|
||||
Surname = Surname
|
||||
};
|
||||
}
|
||||
}
|
@ -8,4 +8,25 @@
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<None Remove="nlog.config" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="nlog.config">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="7.0.4">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\CarServiceDatabase\CarServiceDatabase.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
14
CarService/CarServiceView/nlog.config
Normal file
14
CarService/CarServiceView/nlog.config
Normal file
@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<configuration>
|
||||
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
autoReload="true" internalLogLevel="Info">
|
||||
<targets>
|
||||
<target xsi:type="File" name="tofile" fileName="${basedir}/log-${shortdate}.log" />
|
||||
</targets>
|
||||
|
||||
<rules>
|
||||
<logger name="*" minlevel="Debug" writeTo="tofile" />
|
||||
</rules>
|
||||
</nlog>
|
||||
</configuration>
|
Loading…
Reference in New Issue
Block a user