diff --git a/SoftwareInstallation/AbstractSoftwareInstallationDatabaseImplement/AbstractSoftwareInstallationDatabase.cs b/SoftwareInstallation/AbstractSoftwareInstallationDatabaseImplement/AbstractSoftwareInstallationDatabase.cs deleted file mode 100644 index b9e561b..0000000 --- a/SoftwareInstallation/AbstractSoftwareInstallationDatabaseImplement/AbstractSoftwareInstallationDatabase.cs +++ /dev/null @@ -1,30 +0,0 @@ -using AbstractPackageInstallationDatabaseImplement.Models; -using AbstractSoftwareInstallationDatabaseImplement.Models; -using Microsoft.EntityFrameworkCore; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace AbstractSoftwareInstallationDatabaseImplement -{ - public class AbstractSoftwareInstallationDatabase : DbContext - { - protected override void OnConfiguring(DbContextOptionsBuilder -optionsBuilder) - { - if (optionsBuilder.IsConfigured == false) - { - optionsBuilder.UseSqlServer(@"Data Source=DESKTOP-QA8P9OJ;Initial Catalog=SoftwareInstallation;Integrated Security=True;MultipleActiveResultSets=True;TrustServerCertificate=True"); - } - base.OnConfiguring(optionsBuilder); - } - public virtual DbSet Softwares { set; get; } - public virtual DbSet Packages { set; get; } - public virtual DbSet PackageSoftwares { set; get; } - public virtual DbSet Orders { set; get; } - public virtual DbSet Clients { set; get; } - public virtual DbSet Implementers { set; get; } - } -} diff --git a/SoftwareInstallation/AbstractSoftwareInstallationDatabaseImplement/AbstractSoftwareInstallationDatabaseImplement.csproj b/SoftwareInstallation/AbstractSoftwareInstallationDatabaseImplement/AbstractSoftwareInstallationDatabaseImplement.csproj deleted file mode 100644 index 1f9db50..0000000 --- a/SoftwareInstallation/AbstractSoftwareInstallationDatabaseImplement/AbstractSoftwareInstallationDatabaseImplement.csproj +++ /dev/null @@ -1,24 +0,0 @@ - - - - net6.0 - enable - enable - - - - - - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - - - - - - - - - - diff --git a/SoftwareInstallation/AbstractSoftwareInstallationDatabaseImplement/Implements/ClientStorage.cs b/SoftwareInstallation/AbstractSoftwareInstallationDatabaseImplement/Implements/ClientStorage.cs deleted file mode 100644 index a7496be..0000000 --- a/SoftwareInstallation/AbstractSoftwareInstallationDatabaseImplement/Implements/ClientStorage.cs +++ /dev/null @@ -1,89 +0,0 @@ -using AbstractSoftwareInstallationContracts.BindingModels; -using AbstractSoftwareInstallationContracts.SearchModels; -using AbstractSoftwareInstallationContracts.StoragesContracts; -using AbstractSoftwareInstallationContracts.ViewModels; -using AbstractSoftwareInstallationDatabaseImplement.Models; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace AbstractSoftwareInstallationDatabaseImplement.Implements -{ - public class ClientStorage : IClientStorage - { - public ClientViewModel? GetElement(ClientSearchModel model) - { - if (string.IsNullOrEmpty(model.Email) && !model.Id.HasValue) - { - return null; - } - using var context = new AbstractSoftwareInstallationDatabase(); - return context.Clients - .FirstOrDefault(x => (!string.IsNullOrEmpty(model.Email) - && x.Email == model.Email) - || (model.Id.HasValue && x.Id == model.Id)) - ?.GetViewModel; - } - - public List GetFilteredList(ClientSearchModel model) - { - if (string.IsNullOrEmpty(model.Email)) - { - return new(); - } - using var context = new AbstractSoftwareInstallationDatabase(); - return context.Clients - .Where(x => x.Email.Contains(model.Email)) - .Select(x => x.GetViewModel) - .ToList(); - } - - public List GetFullList() - { - using var context = new AbstractSoftwareInstallationDatabase(); - return context.Clients - .Select(x => x.GetViewModel) - .ToList(); - } - - public ClientViewModel? Insert(ClientBindingModel model) - { - var newClient = Client.Create(model); - if (newClient == null) - { - return null; - } - using var context = new AbstractSoftwareInstallationDatabase(); - context.Clients.Add(newClient); - context.SaveChanges(); - return newClient.GetViewModel; - } - - public ClientViewModel? Update(ClientBindingModel model) - { - using var context = new AbstractSoftwareInstallationDatabase(); - var Client = context.Clients.FirstOrDefault(x => x.Id == model.Id); - if (Client == null) - { - return null; - } - Client.Update(model); - context.SaveChanges(); - return Client.GetViewModel; - } - public ClientViewModel? Delete(ClientBindingModel model) - { - using var context = new AbstractSoftwareInstallationDatabase(); - var element = context.Clients.FirstOrDefault(rec => rec.Id == model.Id); - if (element != null) - { - context.Clients.Remove(element); - context.SaveChanges(); - return element.GetViewModel; - } - return null; - } - } -} diff --git a/SoftwareInstallation/AbstractSoftwareInstallationDatabaseImplement/Implements/ImplementerStorage.cs b/SoftwareInstallation/AbstractSoftwareInstallationDatabaseImplement/Implements/ImplementerStorage.cs deleted file mode 100644 index e010416..0000000 --- a/SoftwareInstallation/AbstractSoftwareInstallationDatabaseImplement/Implements/ImplementerStorage.cs +++ /dev/null @@ -1,84 +0,0 @@ -using AbstractSoftwareInstallationContracts.BindingModels; -using AbstractSoftwareInstallationContracts.SearchModels; -using AbstractSoftwareInstallationContracts.StoragesContracts; -using AbstractSoftwareInstallationContracts.ViewModels; -using AbstractSoftwareInstallationDatabaseImplement.Models; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace AbstractSoftwareInstallationDatabaseImplement.Implements -{ - public class ImplementerStorage : IImplementerStorage - { - - public ImplementerViewModel? GetElement(ImplementerSearchModel model) - { - using var context = new AbstractSoftwareInstallationDatabase(); - if (model.Id.HasValue) return context.Implementers.FirstOrDefault(x => x.Id == model.Id)?.GetViewModel; - if (model.ImplementerFIO != null && model.Password != null) return context.Implementers.FirstOrDefault(x => x.ImplementerFIO.Equals(model.ImplementerFIO) && x.Password.Equals(model.Password))?.GetViewModel; - if (model.ImplementerFIO != null) return context.Implementers.FirstOrDefault(x => x.ImplementerFIO.Equals(model.ImplementerFIO))?.GetViewModel; - return null; - } - - public List GetFilteredList(ImplementerSearchModel model) - { - if (model == null) - { - return new(); - } - if (model.ImplementerFIO != null) - { - using var context = new AbstractSoftwareInstallationDatabase(); - return context.Implementers - .Where(x => x.ImplementerFIO.Contains(model.ImplementerFIO)) - .Select(x => x.GetViewModel) - .ToList(); - } - return new(); - } - - public List GetFullList() - { - using var context = new AbstractSoftwareInstallationDatabase(); - return context.Implementers.Select(x => x.GetViewModel).ToList(); - } - - public ImplementerViewModel? Insert(ImplementerBindingModel model) - { - using var context = new AbstractSoftwareInstallationDatabase(); - var res = Implementer.Create(model); - if (res != null) - { - context.Implementers.Add(res); - context.SaveChanges(); - } - return res?.GetViewModel; - } - - public ImplementerViewModel? Update(ImplementerBindingModel model) - { - using var context = new AbstractSoftwareInstallationDatabase(); - var res = context.Implementers.FirstOrDefault(x => x.Id == model.Id); - if (res != null) - { - res.Update(model); - context.SaveChanges(); - } - return res?.GetViewModel; - } - public ImplementerViewModel? Delete(ImplementerBindingModel model) - { - using var context = new AbstractSoftwareInstallationDatabase(); - var res = context.Implementers.FirstOrDefault(x => x.Id == model.Id); - if (res != null) - { - context.Implementers.Remove(res); - context.SaveChanges(); - } - return res?.GetViewModel; - } - } -} diff --git a/SoftwareInstallation/AbstractSoftwareInstallationDatabaseImplement/Implements/OrderStorage.cs b/SoftwareInstallation/AbstractSoftwareInstallationDatabaseImplement/Implements/OrderStorage.cs deleted file mode 100644 index 8203f74..0000000 --- a/SoftwareInstallation/AbstractSoftwareInstallationDatabaseImplement/Implements/OrderStorage.cs +++ /dev/null @@ -1,100 +0,0 @@ -using AbstractPackageInstallationDatabaseImplement.Models; -using AbstractSoftwareInstallationContracts.BindingModels; -using AbstractSoftwareInstallationContracts.SearchModels; -using AbstractSoftwareInstallationContracts.StoragesContracts; -using AbstractSoftwareInstallationContracts.ViewModels; -using Microsoft.EntityFrameworkCore; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace AbstractSoftwareInstallationDatabaseImplement.Implements -{ - public class OrderStorage : IOrderStorage - { - public OrderViewModel? Delete(OrderBindingModel model) - { - using var context = new AbstractSoftwareInstallationDatabase(); - var element = context.Orders.FirstOrDefault(rec => rec.Id == model.Id); - if (element != null) - { - context.Orders.Remove(element); - context.SaveChanges(); - return element.GetViewModel; - } - return null; - } - - public OrderViewModel? GetElement(OrderSearchModel model) - { - if (!model.Id.HasValue) - { - return null; - } - using var context = new AbstractSoftwareInstallationDatabase(); - return context.Orders.Include(x => x.Package).Include(x => x.Client).Include(x => x.Implementer).FirstOrDefault(x => (model.Id.HasValue && x.Id == model.Id))?.GetViewModel; - } - - public List GetFilteredList(OrderSearchModel model) - { - using var context = new AbstractSoftwareInstallationDatabase(); - - if (model.ClientId.HasValue) - { - return context.Orders - .Include(x => x.Package) - .Include(x => x.Client) - .Include(x => x.Implementer) - .Where(x => x.ClientId == model.ClientId) - .Select(x => x.GetViewModel) - .ToList(); - } - - return context.Orders - .Where(x => x.DateCreate >= model.DateFrom && x.DateCreate <= model.DateTo) - .Include(x => x.Package).Include(x => x.Client).Include(x => x.Implementer) - .Select(x => x.GetViewModel) - .ToList(); - - } - - public List GetFullList() - { - using var context = new AbstractSoftwareInstallationDatabase(); - return context.Orders - .Include(x => x.Package).Include(x => x.Client).Include(x => x.Implementer) - .Select(x => x.GetViewModel) - .ToList(); - } - - public OrderViewModel? Insert(OrderBindingModel model) - { - var newOrder = Order.Create(model); - - if (newOrder == null) - { - return null; - } - using var context = new AbstractSoftwareInstallationDatabase(); - context.Orders.Add(newOrder); - context.SaveChanges(); - return context.Orders.Include(x => x.Package).Include(x => x.Client).Include(x => x.Implementer).FirstOrDefault(x => x.Id == newOrder.Id)?.GetViewModel; - - } - - public OrderViewModel? Update(OrderBindingModel model) - { - using var context = new AbstractSoftwareInstallationDatabase(); - var order = context.Orders.FirstOrDefault(x => x.Id == model.Id); - if (order == null) - { - return null; - } - order.Update(model); - context.SaveChanges(); - return context.Orders.Include(x => x.Package).Include(x => x.Client).Include(x => x.Implementer).FirstOrDefault(x => x.Id == order.Id)?.GetViewModel; - } - } -} diff --git a/SoftwareInstallation/AbstractSoftwareInstallationDatabaseImplement/Implements/PackageStorage.cs b/SoftwareInstallation/AbstractSoftwareInstallationDatabaseImplement/Implements/PackageStorage.cs deleted file mode 100644 index f692d22..0000000 --- a/SoftwareInstallation/AbstractSoftwareInstallationDatabaseImplement/Implements/PackageStorage.cs +++ /dev/null @@ -1,113 +0,0 @@ -using AbstractSoftwareInstallationContracts.BindingModels; -using AbstractSoftwareInstallationContracts.SearchModels; -using AbstractSoftwareInstallationContracts.StoragesContracts; -using AbstractSoftwareInstallationContracts.ViewModels; -using AbstractSoftwareInstallationDatabaseImplement.Models; -using Microsoft.EntityFrameworkCore; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace AbstractSoftwareInstallationDatabaseImplement.Implements -{ - public class PackageStorage : IPackageStorage - { - public List GetFullList() - { - using var context = new AbstractSoftwareInstallationDatabase(); - return context.Packages - .Include(x => x.Softwares) - .ThenInclude(x => x.Software) - .ToList() - .Select(x => x.GetViewModel) - .ToList(); - } - - public List GetFilteredList(PackageSearchModel model) - { - if (string.IsNullOrEmpty(model.PackageName)) - { - return new(); - } - using var context = new AbstractSoftwareInstallationDatabase(); - return context.Packages - .Include(x => x.Softwares) - .ThenInclude(x => x.Software) - .Where(x => x.PackageName.Contains(model.PackageName)) - .ToList() - .Select(x => x.GetViewModel) - .ToList(); - } - - public PackageViewModel? GetElement(PackageSearchModel model) - { - if (string.IsNullOrEmpty(model.PackageName) && - !model.Id.HasValue) - { - return null; - } - using var context = new AbstractSoftwareInstallationDatabase(); - return context.Packages - .Include(x => x.Softwares) - .ThenInclude(x => x.Software) - .FirstOrDefault(x => (!string.IsNullOrEmpty(model.PackageName) - && x.PackageName == model.PackageName) - || (model.Id.HasValue && x.Id == model.Id)) - ?.GetViewModel; - } - - public PackageViewModel? Insert(PackageBindingModel model) - { - using var context = new AbstractSoftwareInstallationDatabase(); - var newPackage = Package.Create(context, model); - if (newPackage == null) - { - return null; - } - context.Packages.Add(newPackage); - context.SaveChanges(); - return newPackage.GetViewModel; - } - - public PackageViewModel? Update(PackageBindingModel model) - { - using var context = new AbstractSoftwareInstallationDatabase(); - using var transaction = context.Database.BeginTransaction(); - try - { - var Package = context.Packages.FirstOrDefault(rec => rec.Id == model.Id); - if (Package == null) - { - return null; - } - Package.Update(model); - context.SaveChanges(); - Package.UpdateSoftwares(context, model); - transaction.Commit(); - return Package.GetViewModel; - } - catch - { - transaction.Rollback(); - throw; - } - } - - public PackageViewModel? Delete(PackageBindingModel model) - { - using var context = new AbstractSoftwareInstallationDatabase(); - var element = context.Packages - .Include(x => x.Softwares) - .FirstOrDefault(rec => rec.Id == model.Id); - if (element != null) - { - context.Packages.Remove(element); - context.SaveChanges(); - return element.GetViewModel; - } - return null; - } - } -} diff --git a/SoftwareInstallation/AbstractSoftwareInstallationDatabaseImplement/Implements/SoftwareStorage.cs b/SoftwareInstallation/AbstractSoftwareInstallationDatabaseImplement/Implements/SoftwareStorage.cs deleted file mode 100644 index 80d382f..0000000 --- a/SoftwareInstallation/AbstractSoftwareInstallationDatabaseImplement/Implements/SoftwareStorage.cs +++ /dev/null @@ -1,90 +0,0 @@ -using AbstractSoftwareInstallationContracts.BindingModels; -using AbstractSoftwareInstallationContracts.SearchModels; -using AbstractSoftwareInstallationContracts.StoragesContracts; -using AbstractSoftwareInstallationContracts.ViewModels; -using AbstractSoftwareInstallationDatabaseImplement.Models; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace AbstractSoftwareInstallationDatabaseImplement.Implements -{ - public class SoftwareStorage : ISoftwareStorage - { - public List GetFullList() - { - using var context = new AbstractSoftwareInstallationDatabase(); - return context.Softwares - .Select(x => x.GetViewModel) - .ToList(); - } - - public List GetFilteredList(SoftwareSearchModel model) - { - if (string.IsNullOrEmpty(model.SoftwareName)) - { - return new(); - } - using var context = new AbstractSoftwareInstallationDatabase(); - return context.Softwares - .Where(x => x.SoftwareName.Contains(model.SoftwareName)) - .Select(x => x.GetViewModel) - .ToList(); - } - - public SoftwareViewModel? GetElement(SoftwareSearchModel model) - { - if (string.IsNullOrEmpty(model.SoftwareName) && !model.Id.HasValue) - { - return null; - } - using var context = new AbstractSoftwareInstallationDatabase(); - return context.Softwares - .FirstOrDefault(x => (!string.IsNullOrEmpty(model.SoftwareName) - && x.SoftwareName == model.SoftwareName) - || (model.Id.HasValue && x.Id == model.Id)) - ?.GetViewModel; - } - - public SoftwareViewModel? Insert(SoftwareBindingModel model) - { - var newSoftware = Software.Create(model); - if (newSoftware == null) - { - return null; - } - using var context = new AbstractSoftwareInstallationDatabase(); - context.Softwares.Add(newSoftware); - context.SaveChanges(); - return newSoftware.GetViewModel; - } - - public SoftwareViewModel? Update(SoftwareBindingModel model) - { - using var context = new AbstractSoftwareInstallationDatabase(); - var Software = context.Softwares.FirstOrDefault(x => x.Id == model.Id); - if (Software == null) - { - return null; - } - Software.Update(model); - context.SaveChanges(); - return Software.GetViewModel; - } - - public SoftwareViewModel? Delete(SoftwareBindingModel model) - { - using var context = new AbstractSoftwareInstallationDatabase(); - var element = context.Softwares.FirstOrDefault(rec => rec.Id == model.Id); - if (element != null) - { - context.Softwares.Remove(element); - context.SaveChanges(); - return element.GetViewModel; - } - return null; - } - } -} diff --git a/SoftwareInstallation/AbstractSoftwareInstallationDatabaseImplement/Migrations/20230419141439_Init.Designer.cs b/SoftwareInstallation/AbstractSoftwareInstallationDatabaseImplement/Migrations/20230419141439_Init.Designer.cs deleted file mode 100644 index ba3d063..0000000 --- a/SoftwareInstallation/AbstractSoftwareInstallationDatabaseImplement/Migrations/20230419141439_Init.Designer.cs +++ /dev/null @@ -1,171 +0,0 @@ -// -using System; -using AbstractSoftwareInstallationDatabaseImplement; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Metadata; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; - -#nullable disable - -namespace AbstractSoftwareInstallationDatabaseImplement.Migrations -{ - [DbContext(typeof(AbstractSoftwareInstallationDatabase))] - [Migration("20230419141439_Init")] - partial class Init - { - /// - 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("AbstractPackageInstallationDatabaseImplement.Models.Order", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("Count") - .HasColumnType("int"); - - b.Property("DateCreate") - .HasColumnType("datetime2"); - - b.Property("DateImplement") - .HasColumnType("datetime2"); - - b.Property("PackageId") - .HasColumnType("int"); - - b.Property("Status") - .HasColumnType("int"); - - b.Property("Sum") - .HasColumnType("float"); - - b.HasKey("Id"); - - b.HasIndex("PackageId"); - - b.ToTable("Orders"); - }); - - modelBuilder.Entity("AbstractSoftwareInstallationDatabaseImplement.Models.Package", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("PackageName") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.Property("Price") - .HasColumnType("float"); - - b.HasKey("Id"); - - b.ToTable("Packages"); - }); - - modelBuilder.Entity("AbstractSoftwareInstallationDatabaseImplement.Models.PackageSoftware", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("Count") - .HasColumnType("int"); - - b.Property("PackageId") - .HasColumnType("int"); - - b.Property("SoftwareId") - .HasColumnType("int"); - - b.HasKey("Id"); - - b.HasIndex("PackageId"); - - b.HasIndex("SoftwareId"); - - b.ToTable("PackageSoftwares"); - }); - - modelBuilder.Entity("AbstractSoftwareInstallationDatabaseImplement.Models.Software", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("Cost") - .HasColumnType("float"); - - b.Property("SoftwareName") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.ToTable("Softwares"); - }); - - modelBuilder.Entity("AbstractPackageInstallationDatabaseImplement.Models.Order", b => - { - b.HasOne("AbstractSoftwareInstallationDatabaseImplement.Models.Package", "Package") - .WithMany("Orders") - .HasForeignKey("PackageId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Package"); - }); - - modelBuilder.Entity("AbstractSoftwareInstallationDatabaseImplement.Models.PackageSoftware", b => - { - b.HasOne("AbstractSoftwareInstallationDatabaseImplement.Models.Package", "Package") - .WithMany("Softwares") - .HasForeignKey("PackageId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AbstractSoftwareInstallationDatabaseImplement.Models.Software", "Software") - .WithMany("PackageSoftwares") - .HasForeignKey("SoftwareId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Package"); - - b.Navigation("Software"); - }); - - modelBuilder.Entity("AbstractSoftwareInstallationDatabaseImplement.Models.Package", b => - { - b.Navigation("Orders"); - - b.Navigation("Softwares"); - }); - - modelBuilder.Entity("AbstractSoftwareInstallationDatabaseImplement.Models.Software", b => - { - b.Navigation("PackageSoftwares"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/SoftwareInstallation/AbstractSoftwareInstallationDatabaseImplement/Migrations/20230419141439_Init.cs b/SoftwareInstallation/AbstractSoftwareInstallationDatabaseImplement/Migrations/20230419141439_Init.cs deleted file mode 100644 index 28f3761..0000000 --- a/SoftwareInstallation/AbstractSoftwareInstallationDatabaseImplement/Migrations/20230419141439_Init.cs +++ /dev/null @@ -1,125 +0,0 @@ -using System; -using Microsoft.EntityFrameworkCore.Migrations; - -#nullable disable - -namespace AbstractSoftwareInstallationDatabaseImplement.Migrations -{ - /// - public partial class Init : Migration - { - /// - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.CreateTable( - name: "Packages", - columns: table => new - { - Id = table.Column(type: "int", nullable: false) - .Annotation("SqlServer:Identity", "1, 1"), - PackageName = table.Column(type: "nvarchar(max)", nullable: false), - Price = table.Column(type: "float", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_Packages", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "Softwares", - columns: table => new - { - Id = table.Column(type: "int", nullable: false) - .Annotation("SqlServer:Identity", "1, 1"), - SoftwareName = table.Column(type: "nvarchar(max)", nullable: false), - Cost = table.Column(type: "float", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_Softwares", x => x.Id); - }); - - migrationBuilder.CreateTable( - name: "Orders", - columns: table => new - { - Id = table.Column(type: "int", nullable: false) - .Annotation("SqlServer:Identity", "1, 1"), - PackageId = 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) - }, - constraints: table => - { - table.PrimaryKey("PK_Orders", x => x.Id); - table.ForeignKey( - name: "FK_Orders_Packages_PackageId", - column: x => x.PackageId, - principalTable: "Packages", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateTable( - name: "PackageSoftwares", - columns: table => new - { - Id = table.Column(type: "int", nullable: false) - .Annotation("SqlServer:Identity", "1, 1"), - PackageId = table.Column(type: "int", nullable: false), - SoftwareId = table.Column(type: "int", nullable: false), - Count = table.Column(type: "int", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_PackageSoftwares", x => x.Id); - table.ForeignKey( - name: "FK_PackageSoftwares_Packages_PackageId", - column: x => x.PackageId, - principalTable: "Packages", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - table.ForeignKey( - name: "FK_PackageSoftwares_Softwares_SoftwareId", - column: x => x.SoftwareId, - principalTable: "Softwares", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - }); - - migrationBuilder.CreateIndex( - name: "IX_Orders_PackageId", - table: "Orders", - column: "PackageId"); - - migrationBuilder.CreateIndex( - name: "IX_PackageSoftwares_PackageId", - table: "PackageSoftwares", - column: "PackageId"); - - migrationBuilder.CreateIndex( - name: "IX_PackageSoftwares_SoftwareId", - table: "PackageSoftwares", - column: "SoftwareId"); - } - - /// - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropTable( - name: "Orders"); - - migrationBuilder.DropTable( - name: "PackageSoftwares"); - - migrationBuilder.DropTable( - name: "Packages"); - - migrationBuilder.DropTable( - name: "Softwares"); - } - } -} diff --git a/SoftwareInstallation/AbstractSoftwareInstallationDatabaseImplement/Migrations/20230422195123_Client.Designer.cs b/SoftwareInstallation/AbstractSoftwareInstallationDatabaseImplement/Migrations/20230422195123_Client.Designer.cs deleted file mode 100644 index 4f61cbf..0000000 --- a/SoftwareInstallation/AbstractSoftwareInstallationDatabaseImplement/Migrations/20230422195123_Client.Designer.cs +++ /dev/null @@ -1,214 +0,0 @@ -// -using System; -using AbstractSoftwareInstallationDatabaseImplement; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Metadata; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; - -#nullable disable - -namespace AbstractSoftwareInstallationDatabaseImplement.Migrations -{ - [DbContext(typeof(AbstractSoftwareInstallationDatabase))] - [Migration("20230422195123_Client")] - partial class Client - { - /// - 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("AbstractPackageInstallationDatabaseImplement.Models.Order", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("ClientId") - .HasColumnType("int"); - - b.Property("Count") - .HasColumnType("int"); - - b.Property("DateCreate") - .HasColumnType("datetime2"); - - b.Property("DateImplement") - .HasColumnType("datetime2"); - - b.Property("PackageId") - .HasColumnType("int"); - - b.Property("Status") - .HasColumnType("int"); - - b.Property("Sum") - .HasColumnType("float"); - - b.HasKey("Id"); - - b.HasIndex("ClientId"); - - b.HasIndex("PackageId"); - - b.ToTable("Orders"); - }); - - modelBuilder.Entity("AbstractSoftwareInstallationDatabaseImplement.Models.Client", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("ClientFIO") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.Property("Email") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.Property("Password") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.ToTable("Clients"); - }); - - modelBuilder.Entity("AbstractSoftwareInstallationDatabaseImplement.Models.Package", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("PackageName") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.Property("Price") - .HasColumnType("float"); - - b.HasKey("Id"); - - b.ToTable("Packages"); - }); - - modelBuilder.Entity("AbstractSoftwareInstallationDatabaseImplement.Models.PackageSoftware", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("Count") - .HasColumnType("int"); - - b.Property("PackageId") - .HasColumnType("int"); - - b.Property("SoftwareId") - .HasColumnType("int"); - - b.HasKey("Id"); - - b.HasIndex("PackageId"); - - b.HasIndex("SoftwareId"); - - b.ToTable("PackageSoftwares"); - }); - - modelBuilder.Entity("AbstractSoftwareInstallationDatabaseImplement.Models.Software", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("Cost") - .HasColumnType("float"); - - b.Property("SoftwareName") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.ToTable("Softwares"); - }); - - modelBuilder.Entity("AbstractPackageInstallationDatabaseImplement.Models.Order", b => - { - b.HasOne("AbstractSoftwareInstallationDatabaseImplement.Models.Client", "Client") - .WithMany("Orders") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AbstractSoftwareInstallationDatabaseImplement.Models.Package", "Package") - .WithMany("Orders") - .HasForeignKey("PackageId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Client"); - - b.Navigation("Package"); - }); - - modelBuilder.Entity("AbstractSoftwareInstallationDatabaseImplement.Models.PackageSoftware", b => - { - b.HasOne("AbstractSoftwareInstallationDatabaseImplement.Models.Package", "Package") - .WithMany("Softwares") - .HasForeignKey("PackageId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AbstractSoftwareInstallationDatabaseImplement.Models.Software", "Software") - .WithMany("PackageSoftwares") - .HasForeignKey("SoftwareId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Package"); - - b.Navigation("Software"); - }); - - modelBuilder.Entity("AbstractSoftwareInstallationDatabaseImplement.Models.Client", b => - { - b.Navigation("Orders"); - }); - - modelBuilder.Entity("AbstractSoftwareInstallationDatabaseImplement.Models.Package", b => - { - b.Navigation("Orders"); - - b.Navigation("Softwares"); - }); - - modelBuilder.Entity("AbstractSoftwareInstallationDatabaseImplement.Models.Software", b => - { - b.Navigation("PackageSoftwares"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/SoftwareInstallation/AbstractSoftwareInstallationDatabaseImplement/Migrations/20230422195123_Client.cs b/SoftwareInstallation/AbstractSoftwareInstallationDatabaseImplement/Migrations/20230422195123_Client.cs deleted file mode 100644 index 1e199b5..0000000 --- a/SoftwareInstallation/AbstractSoftwareInstallationDatabaseImplement/Migrations/20230422195123_Client.cs +++ /dev/null @@ -1,68 +0,0 @@ -using Microsoft.EntityFrameworkCore.Migrations; - -#nullable disable - -namespace AbstractSoftwareInstallationDatabaseImplement.Migrations -{ - /// - public partial class Client : Migration - { - /// - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.AddColumn( - name: "ClientId", - table: "Orders", - type: "int", - nullable: false, - defaultValue: 0); - - migrationBuilder.CreateTable( - name: "Clients", - columns: table => new - { - Id = table.Column(type: "int", nullable: false) - .Annotation("SqlServer:Identity", "1, 1"), - ClientFIO = table.Column(type: "nvarchar(max)", nullable: false), - Email = table.Column(type: "nvarchar(max)", nullable: false), - Password = table.Column(type: "nvarchar(max)", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_Clients", x => x.Id); - }); - - migrationBuilder.CreateIndex( - name: "IX_Orders_ClientId", - table: "Orders", - column: "ClientId"); - - migrationBuilder.AddForeignKey( - name: "FK_Orders_Clients_ClientId", - table: "Orders", - column: "ClientId", - principalTable: "Clients", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - } - - /// - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropForeignKey( - name: "FK_Orders_Clients_ClientId", - table: "Orders"); - - migrationBuilder.DropTable( - name: "Clients"); - - migrationBuilder.DropIndex( - name: "IX_Orders_ClientId", - table: "Orders"); - - migrationBuilder.DropColumn( - name: "ClientId", - table: "Orders"); - } - } -} diff --git a/SoftwareInstallation/AbstractSoftwareInstallationDatabaseImplement/Migrations/20230423193329_Implementer.Designer.cs b/SoftwareInstallation/AbstractSoftwareInstallationDatabaseImplement/Migrations/20230423193329_Implementer.Designer.cs deleted file mode 100644 index f5b9aae..0000000 --- a/SoftwareInstallation/AbstractSoftwareInstallationDatabaseImplement/Migrations/20230423193329_Implementer.Designer.cs +++ /dev/null @@ -1,255 +0,0 @@ -// -using System; -using AbstractSoftwareInstallationDatabaseImplement; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Metadata; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; - -#nullable disable - -namespace AbstractSoftwareInstallationDatabaseImplement.Migrations -{ - [DbContext(typeof(AbstractSoftwareInstallationDatabase))] - [Migration("20230423193329_Implementer")] - partial class Implementer - { - /// - 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("AbstractPackageInstallationDatabaseImplement.Models.Order", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("ClientId") - .HasColumnType("int"); - - b.Property("Count") - .HasColumnType("int"); - - b.Property("DateCreate") - .HasColumnType("datetime2"); - - b.Property("DateImplement") - .HasColumnType("datetime2"); - - b.Property("ImplementerId") - .HasColumnType("int"); - - b.Property("PackageId") - .HasColumnType("int"); - - b.Property("Status") - .HasColumnType("int"); - - b.Property("Sum") - .HasColumnType("float"); - - b.HasKey("Id"); - - b.HasIndex("ClientId"); - - b.HasIndex("ImplementerId"); - - b.HasIndex("PackageId"); - - b.ToTable("Orders"); - }); - - modelBuilder.Entity("AbstractSoftwareInstallationDatabaseImplement.Models.Client", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("ClientFIO") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.Property("Email") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.Property("Password") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.ToTable("Clients"); - }); - - modelBuilder.Entity("AbstractSoftwareInstallationDatabaseImplement.Models.Implementer", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("ImplementerFIO") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.Property("Password") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.Property("Qualification") - .HasColumnType("int"); - - b.Property("WorkExperience") - .HasColumnType("int"); - - b.HasKey("Id"); - - b.ToTable("Implementers"); - }); - - modelBuilder.Entity("AbstractSoftwareInstallationDatabaseImplement.Models.Package", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("PackageName") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.Property("Price") - .HasColumnType("float"); - - b.HasKey("Id"); - - b.ToTable("Packages"); - }); - - modelBuilder.Entity("AbstractSoftwareInstallationDatabaseImplement.Models.PackageSoftware", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("Count") - .HasColumnType("int"); - - b.Property("PackageId") - .HasColumnType("int"); - - b.Property("SoftwareId") - .HasColumnType("int"); - - b.HasKey("Id"); - - b.HasIndex("PackageId"); - - b.HasIndex("SoftwareId"); - - b.ToTable("PackageSoftwares"); - }); - - modelBuilder.Entity("AbstractSoftwareInstallationDatabaseImplement.Models.Software", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("Cost") - .HasColumnType("float"); - - b.Property("SoftwareName") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.ToTable("Softwares"); - }); - - modelBuilder.Entity("AbstractPackageInstallationDatabaseImplement.Models.Order", b => - { - b.HasOne("AbstractSoftwareInstallationDatabaseImplement.Models.Client", "Client") - .WithMany("Orders") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AbstractSoftwareInstallationDatabaseImplement.Models.Implementer", null) - .WithMany("Orders") - .HasForeignKey("ImplementerId"); - - b.HasOne("AbstractSoftwareInstallationDatabaseImplement.Models.Package", "Package") - .WithMany("Orders") - .HasForeignKey("PackageId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Client"); - - b.Navigation("Package"); - }); - - modelBuilder.Entity("AbstractSoftwareInstallationDatabaseImplement.Models.PackageSoftware", b => - { - b.HasOne("AbstractSoftwareInstallationDatabaseImplement.Models.Package", "Package") - .WithMany("Softwares") - .HasForeignKey("PackageId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AbstractSoftwareInstallationDatabaseImplement.Models.Software", "Software") - .WithMany("PackageSoftwares") - .HasForeignKey("SoftwareId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Package"); - - b.Navigation("Software"); - }); - - modelBuilder.Entity("AbstractSoftwareInstallationDatabaseImplement.Models.Client", b => - { - b.Navigation("Orders"); - }); - - modelBuilder.Entity("AbstractSoftwareInstallationDatabaseImplement.Models.Implementer", b => - { - b.Navigation("Orders"); - }); - - modelBuilder.Entity("AbstractSoftwareInstallationDatabaseImplement.Models.Package", b => - { - b.Navigation("Orders"); - - b.Navigation("Softwares"); - }); - - modelBuilder.Entity("AbstractSoftwareInstallationDatabaseImplement.Models.Software", b => - { - b.Navigation("PackageSoftwares"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/SoftwareInstallation/AbstractSoftwareInstallationDatabaseImplement/Migrations/20230423193329_Implementer.cs b/SoftwareInstallation/AbstractSoftwareInstallationDatabaseImplement/Migrations/20230423193329_Implementer.cs deleted file mode 100644 index 9c24aaf..0000000 --- a/SoftwareInstallation/AbstractSoftwareInstallationDatabaseImplement/Migrations/20230423193329_Implementer.cs +++ /dev/null @@ -1,67 +0,0 @@ -using Microsoft.EntityFrameworkCore.Migrations; - -#nullable disable - -namespace AbstractSoftwareInstallationDatabaseImplement.Migrations -{ - /// - public partial class Implementer : Migration - { - /// - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.AddColumn( - name: "ImplementerId", - table: "Orders", - type: "int", - nullable: true); - - migrationBuilder.CreateTable( - name: "Implementers", - columns: table => new - { - Id = table.Column(type: "int", nullable: false) - .Annotation("SqlServer:Identity", "1, 1"), - Qualification = table.Column(type: "int", nullable: false), - ImplementerFIO = table.Column(type: "nvarchar(max)", nullable: false), - WorkExperience = table.Column(type: "int", nullable: false), - Password = table.Column(type: "nvarchar(max)", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_Implementers", x => x.Id); - }); - - migrationBuilder.CreateIndex( - name: "IX_Orders_ImplementerId", - table: "Orders", - column: "ImplementerId"); - - migrationBuilder.AddForeignKey( - name: "FK_Orders_Implementers_ImplementerId", - table: "Orders", - column: "ImplementerId", - principalTable: "Implementers", - principalColumn: "Id"); - } - - /// - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropForeignKey( - name: "FK_Orders_Implementers_ImplementerId", - table: "Orders"); - - migrationBuilder.DropTable( - name: "Implementers"); - - migrationBuilder.DropIndex( - name: "IX_Orders_ImplementerId", - table: "Orders"); - - migrationBuilder.DropColumn( - name: "ImplementerId", - table: "Orders"); - } - } -} diff --git a/SoftwareInstallation/AbstractSoftwareInstallationDatabaseImplement/Migrations/20230423205115_OrderUPDATE.Designer.cs b/SoftwareInstallation/AbstractSoftwareInstallationDatabaseImplement/Migrations/20230423205115_OrderUPDATE.Designer.cs deleted file mode 100644 index 3e8fb73..0000000 --- a/SoftwareInstallation/AbstractSoftwareInstallationDatabaseImplement/Migrations/20230423205115_OrderUPDATE.Designer.cs +++ /dev/null @@ -1,259 +0,0 @@ -// -using System; -using AbstractSoftwareInstallationDatabaseImplement; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Metadata; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; - -#nullable disable - -namespace AbstractSoftwareInstallationDatabaseImplement.Migrations -{ - [DbContext(typeof(AbstractSoftwareInstallationDatabase))] - [Migration("20230423205115_OrderUPDATE")] - partial class OrderUPDATE - { - /// - 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("AbstractPackageInstallationDatabaseImplement.Models.Order", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("ClientId") - .HasColumnType("int"); - - b.Property("Count") - .HasColumnType("int"); - - b.Property("DateCreate") - .HasColumnType("datetime2"); - - b.Property("DateImplement") - .HasColumnType("datetime2"); - - b.Property("ImplementerId") - .HasColumnType("int"); - - b.Property("PackageId") - .HasColumnType("int"); - - b.Property("Status") - .HasColumnType("int"); - - b.Property("Sum") - .HasColumnType("float"); - - b.HasKey("Id"); - - b.HasIndex("ClientId"); - - b.HasIndex("ImplementerId"); - - b.HasIndex("PackageId"); - - b.ToTable("Orders"); - }); - - modelBuilder.Entity("AbstractSoftwareInstallationDatabaseImplement.Models.Client", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("ClientFIO") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.Property("Email") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.Property("Password") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.ToTable("Clients"); - }); - - modelBuilder.Entity("AbstractSoftwareInstallationDatabaseImplement.Models.Implementer", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("ImplementerFIO") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.Property("Password") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.Property("Qualification") - .HasColumnType("int"); - - b.Property("WorkExperience") - .HasColumnType("int"); - - b.HasKey("Id"); - - b.ToTable("Implementers"); - }); - - modelBuilder.Entity("AbstractSoftwareInstallationDatabaseImplement.Models.Package", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("PackageName") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.Property("Price") - .HasColumnType("float"); - - b.HasKey("Id"); - - b.ToTable("Packages"); - }); - - modelBuilder.Entity("AbstractSoftwareInstallationDatabaseImplement.Models.PackageSoftware", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("Count") - .HasColumnType("int"); - - b.Property("PackageId") - .HasColumnType("int"); - - b.Property("SoftwareId") - .HasColumnType("int"); - - b.HasKey("Id"); - - b.HasIndex("PackageId"); - - b.HasIndex("SoftwareId"); - - b.ToTable("PackageSoftwares"); - }); - - modelBuilder.Entity("AbstractSoftwareInstallationDatabaseImplement.Models.Software", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("Cost") - .HasColumnType("float"); - - b.Property("SoftwareName") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.ToTable("Softwares"); - }); - - modelBuilder.Entity("AbstractPackageInstallationDatabaseImplement.Models.Order", b => - { - b.HasOne("AbstractSoftwareInstallationDatabaseImplement.Models.Client", "Client") - .WithMany("Orders") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AbstractSoftwareInstallationDatabaseImplement.Models.Implementer", "Implementer") - .WithMany("Orders") - .HasForeignKey("ImplementerId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AbstractSoftwareInstallationDatabaseImplement.Models.Package", "Package") - .WithMany("Orders") - .HasForeignKey("PackageId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Client"); - - b.Navigation("Implementer"); - - b.Navigation("Package"); - }); - - modelBuilder.Entity("AbstractSoftwareInstallationDatabaseImplement.Models.PackageSoftware", b => - { - b.HasOne("AbstractSoftwareInstallationDatabaseImplement.Models.Package", "Package") - .WithMany("Softwares") - .HasForeignKey("PackageId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AbstractSoftwareInstallationDatabaseImplement.Models.Software", "Software") - .WithMany("PackageSoftwares") - .HasForeignKey("SoftwareId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Package"); - - b.Navigation("Software"); - }); - - modelBuilder.Entity("AbstractSoftwareInstallationDatabaseImplement.Models.Client", b => - { - b.Navigation("Orders"); - }); - - modelBuilder.Entity("AbstractSoftwareInstallationDatabaseImplement.Models.Implementer", b => - { - b.Navigation("Orders"); - }); - - modelBuilder.Entity("AbstractSoftwareInstallationDatabaseImplement.Models.Package", b => - { - b.Navigation("Orders"); - - b.Navigation("Softwares"); - }); - - modelBuilder.Entity("AbstractSoftwareInstallationDatabaseImplement.Models.Software", b => - { - b.Navigation("PackageSoftwares"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/SoftwareInstallation/AbstractSoftwareInstallationDatabaseImplement/Migrations/20230423205115_OrderUPDATE.cs b/SoftwareInstallation/AbstractSoftwareInstallationDatabaseImplement/Migrations/20230423205115_OrderUPDATE.cs deleted file mode 100644 index cb79582..0000000 --- a/SoftwareInstallation/AbstractSoftwareInstallationDatabaseImplement/Migrations/20230423205115_OrderUPDATE.cs +++ /dev/null @@ -1,59 +0,0 @@ -using Microsoft.EntityFrameworkCore.Migrations; - -#nullable disable - -namespace AbstractSoftwareInstallationDatabaseImplement.Migrations -{ - /// - public partial class OrderUPDATE : Migration - { - /// - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropForeignKey( - name: "FK_Orders_Implementers_ImplementerId", - table: "Orders"); - - migrationBuilder.AlterColumn( - name: "ImplementerId", - table: "Orders", - type: "int", - nullable: false, - defaultValue: 0, - oldClrType: typeof(int), - oldType: "int", - oldNullable: true); - - migrationBuilder.AddForeignKey( - name: "FK_Orders_Implementers_ImplementerId", - table: "Orders", - column: "ImplementerId", - principalTable: "Implementers", - principalColumn: "Id", - onDelete: ReferentialAction.Cascade); - } - - /// - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropForeignKey( - name: "FK_Orders_Implementers_ImplementerId", - table: "Orders"); - - migrationBuilder.AlterColumn( - name: "ImplementerId", - table: "Orders", - type: "int", - nullable: true, - oldClrType: typeof(int), - oldType: "int"); - - migrationBuilder.AddForeignKey( - name: "FK_Orders_Implementers_ImplementerId", - table: "Orders", - column: "ImplementerId", - principalTable: "Implementers", - principalColumn: "Id"); - } - } -} diff --git a/SoftwareInstallation/AbstractSoftwareInstallationDatabaseImplement/Migrations/AbstractSoftwareInstallationDatabaseModelSnapshot.cs b/SoftwareInstallation/AbstractSoftwareInstallationDatabaseImplement/Migrations/AbstractSoftwareInstallationDatabaseModelSnapshot.cs deleted file mode 100644 index 51e1636..0000000 --- a/SoftwareInstallation/AbstractSoftwareInstallationDatabaseImplement/Migrations/AbstractSoftwareInstallationDatabaseModelSnapshot.cs +++ /dev/null @@ -1,256 +0,0 @@ -// -using System; -using AbstractSoftwareInstallationDatabaseImplement; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Metadata; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; - -#nullable disable - -namespace AbstractSoftwareInstallationDatabaseImplement.Migrations -{ - [DbContext(typeof(AbstractSoftwareInstallationDatabase))] - partial class AbstractSoftwareInstallationDatabaseModelSnapshot : 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("AbstractPackageInstallationDatabaseImplement.Models.Order", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("ClientId") - .HasColumnType("int"); - - b.Property("Count") - .HasColumnType("int"); - - b.Property("DateCreate") - .HasColumnType("datetime2"); - - b.Property("DateImplement") - .HasColumnType("datetime2"); - - b.Property("ImplementerId") - .HasColumnType("int"); - - b.Property("PackageId") - .HasColumnType("int"); - - b.Property("Status") - .HasColumnType("int"); - - b.Property("Sum") - .HasColumnType("float"); - - b.HasKey("Id"); - - b.HasIndex("ClientId"); - - b.HasIndex("ImplementerId"); - - b.HasIndex("PackageId"); - - b.ToTable("Orders"); - }); - - modelBuilder.Entity("AbstractSoftwareInstallationDatabaseImplement.Models.Client", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("ClientFIO") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.Property("Email") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.Property("Password") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.ToTable("Clients"); - }); - - modelBuilder.Entity("AbstractSoftwareInstallationDatabaseImplement.Models.Implementer", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("ImplementerFIO") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.Property("Password") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.Property("Qualification") - .HasColumnType("int"); - - b.Property("WorkExperience") - .HasColumnType("int"); - - b.HasKey("Id"); - - b.ToTable("Implementers"); - }); - - modelBuilder.Entity("AbstractSoftwareInstallationDatabaseImplement.Models.Package", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("PackageName") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.Property("Price") - .HasColumnType("float"); - - b.HasKey("Id"); - - b.ToTable("Packages"); - }); - - modelBuilder.Entity("AbstractSoftwareInstallationDatabaseImplement.Models.PackageSoftware", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("Count") - .HasColumnType("int"); - - b.Property("PackageId") - .HasColumnType("int"); - - b.Property("SoftwareId") - .HasColumnType("int"); - - b.HasKey("Id"); - - b.HasIndex("PackageId"); - - b.HasIndex("SoftwareId"); - - b.ToTable("PackageSoftwares"); - }); - - modelBuilder.Entity("AbstractSoftwareInstallationDatabaseImplement.Models.Software", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("Cost") - .HasColumnType("float"); - - b.Property("SoftwareName") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.ToTable("Softwares"); - }); - - modelBuilder.Entity("AbstractPackageInstallationDatabaseImplement.Models.Order", b => - { - b.HasOne("AbstractSoftwareInstallationDatabaseImplement.Models.Client", "Client") - .WithMany("Orders") - .HasForeignKey("ClientId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AbstractSoftwareInstallationDatabaseImplement.Models.Implementer", "Implementer") - .WithMany("Orders") - .HasForeignKey("ImplementerId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AbstractSoftwareInstallationDatabaseImplement.Models.Package", "Package") - .WithMany("Orders") - .HasForeignKey("PackageId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Client"); - - b.Navigation("Implementer"); - - b.Navigation("Package"); - }); - - modelBuilder.Entity("AbstractSoftwareInstallationDatabaseImplement.Models.PackageSoftware", b => - { - b.HasOne("AbstractSoftwareInstallationDatabaseImplement.Models.Package", "Package") - .WithMany("Softwares") - .HasForeignKey("PackageId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("AbstractSoftwareInstallationDatabaseImplement.Models.Software", "Software") - .WithMany("PackageSoftwares") - .HasForeignKey("SoftwareId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Package"); - - b.Navigation("Software"); - }); - - modelBuilder.Entity("AbstractSoftwareInstallationDatabaseImplement.Models.Client", b => - { - b.Navigation("Orders"); - }); - - modelBuilder.Entity("AbstractSoftwareInstallationDatabaseImplement.Models.Implementer", b => - { - b.Navigation("Orders"); - }); - - modelBuilder.Entity("AbstractSoftwareInstallationDatabaseImplement.Models.Package", b => - { - b.Navigation("Orders"); - - b.Navigation("Softwares"); - }); - - modelBuilder.Entity("AbstractSoftwareInstallationDatabaseImplement.Models.Software", b => - { - b.Navigation("PackageSoftwares"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/SoftwareInstallation/AbstractSoftwareInstallationDatabaseImplement/Models/Client.cs b/SoftwareInstallation/AbstractSoftwareInstallationDatabaseImplement/Models/Client.cs deleted file mode 100644 index f53311f..0000000 --- a/SoftwareInstallation/AbstractSoftwareInstallationDatabaseImplement/Models/Client.cs +++ /dev/null @@ -1,59 +0,0 @@ -using AbstractPackageInstallationDatabaseImplement.Models; -using AbstractSoftwareInstallationContracts.BindingModels; -using AbstractSoftwareInstallationContracts.ViewModels; -using AbstractSoftwareInstallationDataModels.Models; -using System; -using System.Collections.Generic; -using System.ComponentModel.DataAnnotations; -using System.ComponentModel.DataAnnotations.Schema; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace AbstractSoftwareInstallationDatabaseImplement.Models -{ - public class Client : IClientModel - { - public int Id { get; private set; } - [Required] - public string ClientFIO { get; private set; } = string.Empty; - [Required] - public string Email { get; private set; } = string.Empty; - [Required] - public string Password { get; private set; } = string.Empty; - [ForeignKey("ClientId")] - public virtual List Orders { get; set; } = new(); - - public static Client? Create(ClientBindingModel? model) - { - if (model == null) - { - return null; - } - return new Client() - { - Id = model.Id, - ClientFIO = model.ClientFIO, - Email = model.Email, - Password = model.Password - }; - } - public void Update(ClientBindingModel? model) - { - if (model == null) - { - return; - } - ClientFIO = model.ClientFIO; - Email = model.Email; - Password = model.Password; - } - public ClientViewModel GetViewModel => new() - { - Id = Id, - ClientFIO = ClientFIO, - Email = Email, - Password = Password - }; - } -} diff --git a/SoftwareInstallation/AbstractSoftwareInstallationDatabaseImplement/Models/Implementer.cs b/SoftwareInstallation/AbstractSoftwareInstallationDatabaseImplement/Models/Implementer.cs deleted file mode 100644 index a8ef5b3..0000000 --- a/SoftwareInstallation/AbstractSoftwareInstallationDatabaseImplement/Models/Implementer.cs +++ /dev/null @@ -1,64 +0,0 @@ -using AbstractPackageInstallationDatabaseImplement.Models; -using AbstractSoftwareInstallationContracts.BindingModels; -using AbstractSoftwareInstallationContracts.ViewModels; -using AbstractSoftwareInstallationDataModels.Models; -using System; -using System.Collections.Generic; -using System.ComponentModel.DataAnnotations; -using System.ComponentModel.DataAnnotations.Schema; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace AbstractSoftwareInstallationDatabaseImplement.Models -{ - public class Implementer : IImplementerModel - { - public int Id { get; private set; } - [Required] - public int Qualification { get; private set; } - [Required] - public string ImplementerFIO { get; private set; } = string.Empty; - [Required] - public int WorkExperience { get; private set; } - [Required] - public string Password { get; private set; } = string.Empty; - [ForeignKey("ImplementerId")] - public virtual List Orders { get; set; } = new(); - - public static Implementer? Create(ImplementerBindingModel? model) - { - if (model == null) - { - return null; - } - return new Implementer() - { - Id = model.Id, - Qualification = model.Qualification, - ImplementerFIO = model.ImplementerFIO, - WorkExperience = model.WorkExperience, - Password = model.Password - }; - } - public void Update(ImplementerBindingModel? model) - { - if (model == null) - { - return; - } - Qualification = model.Qualification; - ImplementerFIO = model.ImplementerFIO; - WorkExperience = model.WorkExperience; - Password = model.Password; - } - public ImplementerViewModel GetViewModel => new() - { - Id = Id, - Qualification = Qualification, - ImplementerFIO = ImplementerFIO, - WorkExperience = WorkExperience, - Password = Password - }; - } -} diff --git a/SoftwareInstallation/AbstractSoftwareInstallationDatabaseImplement/Models/Order.cs b/SoftwareInstallation/AbstractSoftwareInstallationDatabaseImplement/Models/Order.cs deleted file mode 100644 index 9d27cb2..0000000 --- a/SoftwareInstallation/AbstractSoftwareInstallationDatabaseImplement/Models/Order.cs +++ /dev/null @@ -1,84 +0,0 @@ -using AbstractSoftwareInstallationContracts.BindingModels; -using AbstractSoftwareInstallationContracts.ViewModels; -using AbstractSoftwareInstallationDatabaseImplement; -using AbstractSoftwareInstallationDatabaseImplement.Models; -using AbstractSoftwareInstallationDataModels; -using AbstractSoftwareInstallationDataModels.Models; -using System; -using System.Collections.Generic; -using System.ComponentModel.DataAnnotations; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace AbstractPackageInstallationDatabaseImplement.Models -{ - public class Order : IOrderModel - { - public int Id { get; private set; } - [Required] - public int PackageId { get; private set; } - [Required] - public int ClientId { get; private set; } - [Required] - public int ImplementerId { get; private set; } - [Required] - public int Count { get; private set; } - [Required] - public double Sum { get; private set; } - [Required] - public OrderStatus Status { get; private set; } = OrderStatus.Неизвестен; - [Required] - public DateTime DateCreate { get; private set; } = DateTime.Now; - - public DateTime? DateImplement { get; private set; } - public virtual Package Package { get; set; } - public virtual Client Client { get; set; } - public virtual Implementer Implementer { get; set; } - public static Order? Create(OrderBindingModel? model) - { - if (model == null) - { - return null; - } - return new Order - { - PackageId = model.PackageId, - ClientId = model.ClientId, - ImplementerId = model.ImplementerId, - Count = model.Count, - Sum = model.Sum, - Status = model.Status, - DateCreate = model.DateCreate, - DateImplement = model.DateImplement, - Id = model.Id - }; - } - - public void Update(OrderBindingModel? model) - { - if (model == null) - { - return; - } - Status = model.Status; - DateImplement = model.DateImplement; - } - - public OrderViewModel GetViewModel => new() - { - Id = Id, - PackageId = PackageId, - ClientId = ClientId, - ImplementerId = ImplementerId, - Count = Count, - Sum = Sum, - Status = Status, - DateCreate = DateCreate, - DateImplement = DateImplement, - PackageName = Package.PackageName, - Email = Client.Email, - ImplementerFIO = Implementer.ImplementerFIO - }; - } -} diff --git a/SoftwareInstallation/AbstractSoftwareInstallationDatabaseImplement/Models/Package.cs b/SoftwareInstallation/AbstractSoftwareInstallationDatabaseImplement/Models/Package.cs deleted file mode 100644 index e2578bb..0000000 --- a/SoftwareInstallation/AbstractSoftwareInstallationDatabaseImplement/Models/Package.cs +++ /dev/null @@ -1,107 +0,0 @@ -using AbstractPackageInstallationDatabaseImplement.Models; -using AbstractSoftwareInstallationContracts.BindingModels; -using AbstractSoftwareInstallationContracts.ViewModels; -using AbstractSoftwareInstallationDatabaseImplement.Models; -using AbstractSoftwareInstallationDataModels; -using AbstractSoftwareInstallationDataModels.Models; -using System; -using System.Collections.Generic; -using System.ComponentModel.DataAnnotations; -using System.ComponentModel.DataAnnotations.Schema; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace AbstractSoftwareInstallationDatabaseImplement.Models -{ - public class Package : IPackageModel - { - public int Id { get; private set; } - [Required] - public string PackageName { get; private set; } = string.Empty; - [Required] - public double Price { get; private set; } - - private Dictionary? _packageSoftwares = null; - - [NotMapped] - public Dictionary PackageSoftware - { - get - { - if (_packageSoftwares == null) - { - _packageSoftwares = Softwares.ToDictionary(recPC => recPC.SoftwareId, recPC => (recPC.Software as ISoftwareModel, recPC.Count)); - } - return _packageSoftwares; - } - } - - [ForeignKey("PackageId")] - public virtual List Softwares { get; set; } = new(); - [ForeignKey("PackageId")] - public virtual List Orders { get; set; } = new(); - - - public static Package? Create(AbstractSoftwareInstallationDatabase context, PackageBindingModel model) - { - var Softwares = context.Softwares; - - return new Package() - { - Id = model.Id, - PackageName = model.PackageName, - Price = model.Price, - Softwares = model.PackageSoftware.Select(x => new PackageSoftware - { - Software = context.Softwares.First(y => y.Id == x.Key), - Count = x.Value.Item2 - }).ToList() - }; - } - - public void Update(PackageBindingModel model) - { - PackageName = model.PackageName; - Price = model.Price; - } - public PackageViewModel GetViewModel => new() - { - Id = Id, - PackageName = PackageName, - Price = Price, - PackageSoftware = PackageSoftware - }; - - public void UpdateSoftwares(AbstractSoftwareInstallationDatabase context, PackageBindingModel model) - { - var packageSoftwares = context.PackageSoftwares - .Where(rec => rec.PackageId == model.Id).ToList(); - if (packageSoftwares != null && packageSoftwares.Count > 0) - { // удалили те, которых нет в модели - context.PackageSoftwares.RemoveRange(packageSoftwares.Where(rec => !model.PackageSoftware.ContainsKey(rec.SoftwareId))); - context.SaveChanges(); - // обновили количество у существующих записей - foreach (var updateSoftware in packageSoftwares) - { - updateSoftware.Count = model.PackageSoftware[updateSoftware.SoftwareId].Item2; - model.PackageSoftware.Remove(updateSoftware.SoftwareId); - } - context.SaveChanges(); - } - var package = context.Packages.First(x => x.Id == Id); - foreach (var pc in model.PackageSoftware) - { - context.PackageSoftwares.Add(new PackageSoftware - { - Package = package, - Software = context.Softwares.First(x => x.Id == pc.Key), - Count = pc.Value.Item2 - }); - context.SaveChanges(); - } - _packageSoftwares = null; - } - - } -} diff --git a/SoftwareInstallation/AbstractSoftwareInstallationDatabaseImplement/Models/PackageSoftware.cs b/SoftwareInstallation/AbstractSoftwareInstallationDatabaseImplement/Models/PackageSoftware.cs deleted file mode 100644 index eeca146..0000000 --- a/SoftwareInstallation/AbstractSoftwareInstallationDatabaseImplement/Models/PackageSoftware.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel.DataAnnotations; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace AbstractSoftwareInstallationDatabaseImplement.Models -{ - public class PackageSoftware - { - public int Id { get; set; } - [Required] - public int PackageId { get; set; } - [Required] - public int SoftwareId { get; set; } - [Required] - public int Count { get; set; } - public virtual Software Software { get; set; } = new(); - public virtual Package Package { get; set; } = new(); - } -} diff --git a/SoftwareInstallation/AbstractSoftwareInstallationDatabaseImplement/Models/Software.cs b/SoftwareInstallation/AbstractSoftwareInstallationDatabaseImplement/Models/Software.cs deleted file mode 100644 index d7e9151..0000000 --- a/SoftwareInstallation/AbstractSoftwareInstallationDatabaseImplement/Models/Software.cs +++ /dev/null @@ -1,53 +0,0 @@ -using AbstractSoftwareInstallationContracts.BindingModels; -using AbstractSoftwareInstallationContracts.ViewModels; -using AbstractSoftwareInstallationDataModels.Models; -using System; -using System.Collections.Generic; -using System.ComponentModel.DataAnnotations; -using System.ComponentModel.DataAnnotations.Schema; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace AbstractSoftwareInstallationDatabaseImplement.Models -{ - public class Software : ISoftwareModel - { - public int Id { get; private set; } - [Required] - public string SoftwareName { get; private set; } = String.Empty; - [Required] - public double Cost { get; set; } - [ForeignKey("SoftwareId")] - public virtual List PackageSoftwares { get; set; } = new(); - public static Software? Create(SoftwareBindingModel? model) - { - if (model == null) - { - return null; - } - return new Software() - { - Id = model.Id, - SoftwareName = model.SoftwareName, - Cost = model.Cost - }; - } - public void Update(SoftwareBindingModel? model) - { - if (model == null) - { - return; - } - SoftwareName = model.SoftwareName; - Cost = model.Cost; - } - public SoftwareViewModel GetViewModel => new() - { - Id = Id, - SoftwareName = SoftwareName, - Cost = Cost - }; - - } -}