diff --git a/CarService/CarService.sln b/CarService/CarService.sln index 3126932..fc99e2d 100644 --- a/CarService/CarService.sln +++ b/CarService/CarService.sln @@ -7,6 +7,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConsoleMainApp", "ConsoleMa EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CarServiceDataBaseImplements", "CarServiceDataBaseImplements\CarServiceDataBaseImplements.csproj", "{48D159D4-7150-417E-BBE9-2B636E1EAFFB}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CarServiceDataModels", "CarServiceDataModels\CarServiceDataModels.csproj", "{7E6DC5DC-32CA-464C-884C-D949742DBF07}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -21,6 +23,10 @@ Global {48D159D4-7150-417E-BBE9-2B636E1EAFFB}.Debug|Any CPU.Build.0 = Debug|Any CPU {48D159D4-7150-417E-BBE9-2B636E1EAFFB}.Release|Any CPU.ActiveCfg = Release|Any CPU {48D159D4-7150-417E-BBE9-2B636E1EAFFB}.Release|Any CPU.Build.0 = Release|Any CPU + {7E6DC5DC-32CA-464C-884C-D949742DBF07}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7E6DC5DC-32CA-464C-884C-D949742DBF07}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7E6DC5DC-32CA-464C-884C-D949742DBF07}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7E6DC5DC-32CA-464C-884C-D949742DBF07}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CarService/CarServiceDataBaseImplements/CarServiceDataBase.cs b/CarService/CarServiceDataBaseImplements/CarServiceDataBase.cs index 75ce2cf..7010f98 100644 --- a/CarService/CarServiceDataBaseImplements/CarServiceDataBase.cs +++ b/CarService/CarServiceDataBaseImplements/CarServiceDataBase.cs @@ -1,4 +1,5 @@ -using Microsoft.EntityFrameworkCore; +using CarServiceDataBaseImplements.Models; +using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; using System.Linq; @@ -7,16 +8,20 @@ using System.Threading.Tasks; namespace CarServiceDataBaseImplements { - public class CarServiceDataBase : DbContext + public class CarServiceDataBase : DbContext { protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { - if(optionsBuilder.IsConfigured == false) + if (optionsBuilder.IsConfigured == false) { optionsBuilder.UseNpgsql("Host=localhost;Database=CarServiceDataBase;Username=postgres;Password=postgres"); } base.OnConfiguring(optionsBuilder); } - + public virtual DbSet Cars { get; set; } + public virtual DbSet Clients { get; set; } + public virtual DbSet Receipts { get; set; } + public virtual DbSet Services { get; set; } + public virtual DbSet Staffs { get; set; } } } diff --git a/CarService/CarServiceDataBaseImplements/CarServiceDataBaseImplements.csproj b/CarService/CarServiceDataBaseImplements/CarServiceDataBaseImplements.csproj index 7003c17..7a344b6 100644 --- a/CarService/CarServiceDataBaseImplements/CarServiceDataBaseImplements.csproj +++ b/CarService/CarServiceDataBaseImplements/CarServiceDataBaseImplements.csproj @@ -8,7 +8,15 @@ + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + diff --git a/CarService/CarServiceDataBaseImplements/Migrations/20240505121028_InitMigration.Designer.cs b/CarService/CarServiceDataBaseImplements/Migrations/20240505121028_InitMigration.Designer.cs new file mode 100644 index 0000000..357a5bf --- /dev/null +++ b/CarService/CarServiceDataBaseImplements/Migrations/20240505121028_InitMigration.Designer.cs @@ -0,0 +1,125 @@ +// +using System; +using CarServiceDataBaseImplements; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; + +#nullable disable + +namespace CarServiceDataBaseImplements.Migrations +{ + [DbContext(typeof(CarServiceDataBase))] + [Migration("20240505121028_InitMigration")] + partial class InitMigration + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "7.0.3") + .HasAnnotation("Relational:MaxIdentifierLength", 63); + + NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); + + modelBuilder.Entity("CarServiceDataBaseImplements.Models.Car", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Brand") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("Cars"); + }); + + modelBuilder.Entity("CarServiceDataBaseImplements.Models.Client", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Email") + .IsRequired() + .HasColumnType("text"); + + b.Property("Name") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("Clients"); + }); + + modelBuilder.Entity("CarServiceDataBaseImplements.Models.Receipt", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("DateOfApplication") + .HasColumnType("timestamp with time zone"); + + b.HasKey("Id"); + + b.ToTable("Receipts"); + }); + + modelBuilder.Entity("CarServiceDataBaseImplements.Models.Service", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Name") + .IsRequired() + .HasColumnType("text"); + + b.Property("Price") + .HasColumnType("double precision"); + + b.HasKey("Id"); + + b.ToTable("Services"); + }); + + modelBuilder.Entity("CarServiceDataBaseImplements.Models.Staff", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Name") + .IsRequired() + .HasColumnType("text"); + + b.Property("PositionAtWork") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("Staffs"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/CarService/CarServiceDataBaseImplements/Migrations/20240505121028_InitMigration.cs b/CarService/CarServiceDataBaseImplements/Migrations/20240505121028_InitMigration.cs new file mode 100644 index 0000000..0b90f76 --- /dev/null +++ b/CarService/CarServiceDataBaseImplements/Migrations/20240505121028_InitMigration.cs @@ -0,0 +1,103 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; +using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; + +#nullable disable + +namespace CarServiceDataBaseImplements.Migrations +{ + /// + public partial class InitMigration : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.CreateTable( + name: "Cars", + columns: table => new + { + Id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + Brand = table.Column(type: "text", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Cars", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "Clients", + columns: table => new + { + Id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + Name = table.Column(type: "text", nullable: false), + Email = table.Column(type: "text", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Clients", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "Receipts", + columns: table => new + { + Id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + DateOfApplication = table.Column(type: "timestamp with time zone", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Receipts", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "Services", + columns: table => new + { + Id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + Name = table.Column(type: "text", nullable: false), + Price = table.Column(type: "double precision", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Services", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "Staffs", + columns: table => new + { + Id = table.Column(type: "integer", nullable: false) + .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn), + Name = table.Column(type: "text", nullable: false), + PositionAtWork = table.Column(type: "text", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Staffs", x => x.Id); + }); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "Cars"); + + migrationBuilder.DropTable( + name: "Clients"); + + migrationBuilder.DropTable( + name: "Receipts"); + + migrationBuilder.DropTable( + name: "Services"); + + migrationBuilder.DropTable( + name: "Staffs"); + } + } +} diff --git a/CarService/CarServiceDataBaseImplements/Migrations/CarServiceDataBaseModelSnapshot.cs b/CarService/CarServiceDataBaseImplements/Migrations/CarServiceDataBaseModelSnapshot.cs new file mode 100644 index 0000000..4c44a3d --- /dev/null +++ b/CarService/CarServiceDataBaseImplements/Migrations/CarServiceDataBaseModelSnapshot.cs @@ -0,0 +1,122 @@ +// +using System; +using CarServiceDataBaseImplements; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; + +#nullable disable + +namespace CarServiceDataBaseImplements.Migrations +{ + [DbContext(typeof(CarServiceDataBase))] + partial class CarServiceDataBaseModelSnapshot : ModelSnapshot + { + protected override void BuildModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "7.0.3") + .HasAnnotation("Relational:MaxIdentifierLength", 63); + + NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); + + modelBuilder.Entity("CarServiceDataBaseImplements.Models.Car", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Brand") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("Cars"); + }); + + modelBuilder.Entity("CarServiceDataBaseImplements.Models.Client", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Email") + .IsRequired() + .HasColumnType("text"); + + b.Property("Name") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("Clients"); + }); + + modelBuilder.Entity("CarServiceDataBaseImplements.Models.Receipt", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("DateOfApplication") + .HasColumnType("timestamp with time zone"); + + b.HasKey("Id"); + + b.ToTable("Receipts"); + }); + + modelBuilder.Entity("CarServiceDataBaseImplements.Models.Service", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Name") + .IsRequired() + .HasColumnType("text"); + + b.Property("Price") + .HasColumnType("double precision"); + + b.HasKey("Id"); + + b.ToTable("Services"); + }); + + modelBuilder.Entity("CarServiceDataBaseImplements.Models.Staff", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Name") + .IsRequired() + .HasColumnType("text"); + + b.Property("PositionAtWork") + .IsRequired() + .HasColumnType("text"); + + b.HasKey("Id"); + + b.ToTable("Staffs"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/CarService/CarServiceDataBaseImplements/Models/Car.cs b/CarService/CarServiceDataBaseImplements/Models/Car.cs new file mode 100644 index 0000000..8dd6765 --- /dev/null +++ b/CarService/CarServiceDataBaseImplements/Models/Car.cs @@ -0,0 +1,35 @@ +using CarServiceDataModels.Models; +using CarServiceDataModels.ModelsImplements; +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CarServiceDataBaseImplements.Models +{ + public class Car : ICar + { + [Required] + public string Brand {get; set;} = string.Empty; + public int Id { get; set; } + + public static Car? Create(CarModel? model) + { + if (model == null) + { + return null; + } + return new Car() + { + Id = model.Id, + Brand = model.Brand + }; + } + public void Update(CarModel? model) { + if (model == null) { return; } + Brand = model.Brand; + } + } +} diff --git a/CarService/CarServiceDataBaseImplements/Models/Client.cs b/CarService/CarServiceDataBaseImplements/Models/Client.cs new file mode 100644 index 0000000..21d00a0 --- /dev/null +++ b/CarService/CarServiceDataBaseImplements/Models/Client.cs @@ -0,0 +1,41 @@ +using CarServiceDataModels.Models; +using CarServiceDataModels.ModelsImplements; +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CarServiceDataBaseImplements.Models +{ + public class Client : IClient + { + [Required] + public string Name { get; set; } = String.Empty; + [Required] + public string Email { get; set; } = String.Empty; + + public int Id { get; set; } + + public static Client? Create(ClientModel? model) + { + if (model == null) + { + return null; + } + return new Client() + { + Id = model.Id, + Name = model.Name, + Email = model.Email + }; + } + public void Update(ClientModel? model) + { + if (model == null) { return; } + Name = model.Name; + Email = model.Email; + } + } +} diff --git a/CarService/CarServiceDataBaseImplements/Models/Receipt.cs b/CarService/CarServiceDataBaseImplements/Models/Receipt.cs new file mode 100644 index 0000000..99ba8c9 --- /dev/null +++ b/CarService/CarServiceDataBaseImplements/Models/Receipt.cs @@ -0,0 +1,38 @@ +using CarServiceDataModels.Models; +using CarServiceDataModels.ModelsImplements; +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Xml.Linq; + +namespace CarServiceDataBaseImplements.Models +{ + public class Receipt : IReceipt + { + [Required] + public DateTime DateOfApplication { get; set; } = DateTime.Now; + + public int Id { get; set; } + + public static Receipt? Create(ReceiptModel? model) + { + if (model == null) + { + return null; + } + return new Receipt() + { + Id = model.Id, + DateOfApplication = model.DateOfApplication, + }; + } + public void Update(ReceiptModel? model) + { + if (model == null) { return; } + DateOfApplication = model.DateOfApplication; + } + } +} diff --git a/CarService/CarServiceDataBaseImplements/Models/Service.cs b/CarService/CarServiceDataBaseImplements/Models/Service.cs new file mode 100644 index 0000000..dbbb5e4 --- /dev/null +++ b/CarService/CarServiceDataBaseImplements/Models/Service.cs @@ -0,0 +1,41 @@ +using CarServiceDataModels.Models; +using CarServiceDataModels.ModelsImplements; +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CarServiceDataBaseImplements.Models +{ + public class Service : IService + { + [Required] + public string Name { get; set; } + [Required] + public double Price { get; set; } + + public int Id { get; set; } + + public static Service? Create(ServiceModel? model) + { + if (model == null) + { + return null; + } + return new Service() + { + Id = model.Id, + Name = model.Name, + Price = model.Price + }; + } + public void Update(ServiceModel? model) + { + if (model == null) { return; } + Name = model.Name; + Price = model.Price; + } + } +} diff --git a/CarService/CarServiceDataBaseImplements/Models/Staff.cs b/CarService/CarServiceDataBaseImplements/Models/Staff.cs new file mode 100644 index 0000000..a3080b5 --- /dev/null +++ b/CarService/CarServiceDataBaseImplements/Models/Staff.cs @@ -0,0 +1,42 @@ +using CarServiceDataModels.Models; +using CarServiceDataModels.ModelsImplements; +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Diagnostics; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CarServiceDataBaseImplements.Models +{ + public class Staff : IStaff + { + [Required] + public string Name { get; set; } = string.Empty; + [Required] + public string PositionAtWork { get; set; } = string.Empty; + + public int Id { get; set; } + + public static Staff? Create(StaffModel? model) + { + if (model == null) + { + return null; + } + return new Staff() + { + Id = model.Id, + Name = model.Name, + PositionAtWork = model.PositionAtWork, + }; + } + public void Update(StaffModel? model) + { + if (model == null) { return; } + Name = model.Name; + PositionAtWork = model.PositionAtWork; + } + } +} diff --git a/CarService/CarServiceDataModels/CarServiceDataModels.csproj b/CarService/CarServiceDataModels/CarServiceDataModels.csproj new file mode 100644 index 0000000..cfadb03 --- /dev/null +++ b/CarService/CarServiceDataModels/CarServiceDataModels.csproj @@ -0,0 +1,9 @@ + + + + net7.0 + enable + enable + + + diff --git a/CarService/CarServiceDataModels/Models/ICar.cs b/CarService/CarServiceDataModels/Models/ICar.cs new file mode 100644 index 0000000..bb05930 --- /dev/null +++ b/CarService/CarServiceDataModels/Models/ICar.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CarServiceDataModels.Models +{ + public interface ICar : Iid + { + string Brand { get; } + } +} diff --git a/CarService/CarServiceDataModels/Models/IClient.cs b/CarService/CarServiceDataModels/Models/IClient.cs new file mode 100644 index 0000000..5861897 --- /dev/null +++ b/CarService/CarServiceDataModels/Models/IClient.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CarServiceDataModels.Models +{ + public interface IClient : Iid + { + string Name { get; } + string Email { get; } + + } +} diff --git a/CarService/CarServiceDataModels/Models/IReceipt.cs b/CarService/CarServiceDataModels/Models/IReceipt.cs new file mode 100644 index 0000000..3962776 --- /dev/null +++ b/CarService/CarServiceDataModels/Models/IReceipt.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CarServiceDataModels.Models +{ + public interface IReceipt : Iid + { + DateTime DateOfApplication { get; } + + } +} diff --git a/CarService/CarServiceDataModels/Models/IService.cs b/CarService/CarServiceDataModels/Models/IService.cs new file mode 100644 index 0000000..455bf68 --- /dev/null +++ b/CarService/CarServiceDataModels/Models/IService.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CarServiceDataModels.Models +{ + public interface IService : Iid + { + string Name { get; } + double Price { get; } + } +} diff --git a/CarService/CarServiceDataModels/Models/IStaff.cs b/CarService/CarServiceDataModels/Models/IStaff.cs new file mode 100644 index 0000000..5f38cd2 --- /dev/null +++ b/CarService/CarServiceDataModels/Models/IStaff.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CarServiceDataModels.Models +{ + public interface IStaff : Iid + { + string Name { get; } + string PositionAtWork { get; } + } +} diff --git a/CarService/CarServiceDataModels/Models/Iid.cs b/CarService/CarServiceDataModels/Models/Iid.cs new file mode 100644 index 0000000..b2589c4 --- /dev/null +++ b/CarService/CarServiceDataModels/Models/Iid.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CarServiceDataModels.Models +{ + public interface Iid + { + int Id { get; } + } +} diff --git a/CarService/CarServiceDataModels/ModelsImplements/CarModel.cs b/CarService/CarServiceDataModels/ModelsImplements/CarModel.cs new file mode 100644 index 0000000..94363a0 --- /dev/null +++ b/CarService/CarServiceDataModels/ModelsImplements/CarModel.cs @@ -0,0 +1,16 @@ +using CarServiceDataModels.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CarServiceDataModels.ModelsImplements +{ + public class CarModel : ICar + { + public string Brand {get; set;} = string.Empty; + + public int Id { get; set;} + } +} diff --git a/CarService/CarServiceDataModels/ModelsImplements/ClientModel.cs b/CarService/CarServiceDataModels/ModelsImplements/ClientModel.cs new file mode 100644 index 0000000..9523451 --- /dev/null +++ b/CarService/CarServiceDataModels/ModelsImplements/ClientModel.cs @@ -0,0 +1,18 @@ +using CarServiceDataModels.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CarServiceDataModels.ModelsImplements +{ + public class ClientModel : IClient + { + public string Name {get;set;} = string.Empty; + + public string Email { get; set; } = string.Empty; + + public int Id { get; set; } + } +} diff --git a/CarService/CarServiceDataModels/ModelsImplements/ReceiptModel.cs b/CarService/CarServiceDataModels/ModelsImplements/ReceiptModel.cs new file mode 100644 index 0000000..a14cf00 --- /dev/null +++ b/CarService/CarServiceDataModels/ModelsImplements/ReceiptModel.cs @@ -0,0 +1,16 @@ +using CarServiceDataModels.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CarServiceDataModels.ModelsImplements +{ + public class ReceiptModel : IReceipt + { + public DateTime DateOfApplication { get; set; } = DateTime.Now; + + public int Id { get; set; } + } +} diff --git a/CarService/CarServiceDataModels/ModelsImplements/ServiceModel.cs b/CarService/CarServiceDataModels/ModelsImplements/ServiceModel.cs new file mode 100644 index 0000000..86b0343 --- /dev/null +++ b/CarService/CarServiceDataModels/ModelsImplements/ServiceModel.cs @@ -0,0 +1,18 @@ +using CarServiceDataModels.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CarServiceDataModels.ModelsImplements +{ + public class ServiceModel : IService + { + public string Name { get; set; } = string.Empty; + + public double Price { get; set; } + + public int Id { get; set; } + } +} diff --git a/CarService/CarServiceDataModels/ModelsImplements/StaffModel.cs b/CarService/CarServiceDataModels/ModelsImplements/StaffModel.cs new file mode 100644 index 0000000..8cbffb8 --- /dev/null +++ b/CarService/CarServiceDataModels/ModelsImplements/StaffModel.cs @@ -0,0 +1,18 @@ +using CarServiceDataModels.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CarServiceDataModels.ModelsImplements +{ + public class StaffModel : IStaff + { + public string Name { get; set; } = string.Empty; + + public string PositionAtWork { get; set; } = string.Empty; + + public int Id { get; set; } + } +} diff --git a/CarService/ConsoleMainApp/ConsoleMainApp.csproj b/CarService/ConsoleMainApp/ConsoleMainApp.csproj index 6b27552..26d39ad 100644 --- a/CarService/ConsoleMainApp/ConsoleMainApp.csproj +++ b/CarService/ConsoleMainApp/ConsoleMainApp.csproj @@ -1,4 +1,4 @@ - + Exe @@ -8,6 +8,10 @@ + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + diff --git a/CarService/ConsoleMainApp/Program.cs b/CarService/ConsoleMainApp/Program.cs index 3ee824f..d32fcd6 100644 --- a/CarService/ConsoleMainApp/Program.cs +++ b/CarService/ConsoleMainApp/Program.cs @@ -10,8 +10,19 @@ namespace ConsoleMainApp static void Main(string[] args) { using var context = new CarServiceDataBase(); - context.Database.OpenConnection(); + try + { + context.Database.OpenConnection(); + Console.WriteLine("Connect open"); + } + catch { + Console.WriteLine("Connect error"); + return; + } context.Database.CloseConnection(); + if(context.Database.GetDbConnection().State == System.Data.ConnectionState.Open) { + Console.WriteLine("Connect still open"); + } } } } \ No newline at end of file