DataBaseInit

This commit is contained in:
Sergey Kozyrev 2024-04-18 20:24:26 +04:00
parent e341a81eef
commit 4d15c2e38f
13 changed files with 172 additions and 24 deletions

View File

@ -12,7 +12,7 @@ using System.Threading.Tasks;
namespace SewingDressesBusinessLogic.BusinessLogic
{
public class ImplementLogic : IImplementLogic
public class ImplementLogic //: IImplementLogic
{
private readonly ILogger _logger;
private readonly IImplementStorage _storage;
@ -74,3 +74,4 @@ namespace SewingDressesBusinessLogic.BusinessLogic
}
}
}
}

View File

@ -34,7 +34,7 @@ namespace SewingDressesBusinessLogic.BusinessLogic
}
_logger.LogDebug("DoWork for {Count} orders", orders.Count);
foreach (var implementer in implementers) {
Task.Run(() => Worker);
//Task.Run(() => Worker);
}
}
@ -42,7 +42,7 @@ namespace SewingDressesBusinessLogic.BusinessLogic
{
if (_orderLogic == null || implement == null)
return;
await RunOr
//await RunOr
}
private async Task RunOrderInWork(ImplementViewModel implement)

View File

@ -1,4 +1,5 @@
using SewingDressesContracts.SearchModels;
using SewingDressesContracts.BindingModels;
using SewingDressesContracts.SearchModels;
using SewingDressesContracts.ViewModels;
using System;
using System.Collections.Generic;
@ -13,9 +14,9 @@ namespace SewingDressesContracts.StoragesContracts
List<ImplementViewModel> GetFullList();
List<ImplementViewModel> GetFilteredList(ImplementSearchModel model);
ImplementViewModel? GetElement(ImplementSearchModel model);
ImplementViewModel? Insert(ImplementSearchModel? model);
ImplementViewModel? Update(ImplementSearchModel? model);
ImplementViewModel? Delete(ImplementSearchModel? model);
ImplementViewModel? Insert(ImplementBindingModel? model);
ImplementViewModel? Update(ImplementBindingModel? model);
ImplementViewModel? Delete(ImplementBindingModel? model);
}
}

View File

@ -14,7 +14,7 @@ namespace SewingDressesContracts.ViewModels
[DisplayName("Имя клиента")]
public string ClientFIO { get; set; } = string.Empty;
[DisplayName("Имя исполнителя")]
public string ImplementFIO { get; set; } = string.Empty;
public string? ImplementFIO { get; set; } = string.Empty;
[DisplayName("Платье")]
public string DressName { get; set; } = string.Empty;
[DisplayName("Количество")]

View File

@ -13,7 +13,7 @@ namespace SewingDressesDatabaseImplement.Implements
{
public class ImplementStorage : IImplementStorage
{
public ImplementViewModel? Insert(ImplementBindingModel model)
public ImplementViewModel? Insert(ImplementBindingModel? model)
{
using var context = new SewingDressesDatabase();
var newImplement = Implement.Create(model);
@ -23,16 +23,18 @@ namespace SewingDressesDatabaseImplement.Implements
context.SaveChanges();
return newImplement.GetViewModel;
}
public ImplementViewModel? Update(ImplementBindingModel model)
public ImplementViewModel? Update(ImplementBindingModel? model)
{
using var context = new SewingDressesDatabase();
if (model == null)
return null;
var implement = context.Implements.FirstOrDefault(x => x.Id == model.Id);
if (implement == null) return null;
implement.Update(model);
context.SaveChanges();
return implement.GetViewModel;
}
public ImplementViewModel? Delete(ImplementBindingModel model)
public ImplementViewModel? Delete(ImplementBindingModel? model)
{
using var context = new SewingDressesDatabase();
var implement = context.Implements.FirstOrDefault(x => x.Id == model.Id);
@ -41,6 +43,13 @@ namespace SewingDressesDatabaseImplement.Implements
context.SaveChanges();
return implement.GetViewModel;
}
public ImplementViewModel? GetElement(ImplementSearchModel model)
{
if (string.IsNullOrEmpty(model.ImplementFIO) && !model.Id.HasValue)
return null;
using var context = new SewingDressesDatabase();
return context.Implements.FirstOrDefault(x => !(string.IsNullOrEmpty(model.ImplementFIO) && x.ImplementFIO.Contains(model.ImplementFIO)) || (model.Id.HasValue && model.Id == x.Id))?.GetViewModel;
}
public List<ImplementViewModel> GetFullList()
{
using var context = new SewingDressesDatabase();

View File

@ -12,8 +12,8 @@ using SewingDressesDatabaseImplement;
namespace SewingDressesDatabaseImplement.Migrations
{
[DbContext(typeof(SewingDressesDatabase))]
[Migration("20240403180823_InitialCreate")]
partial class InitialCreate
[Migration("20240418162241_init")]
partial class init
{
/// <inheritdoc />
protected override void BuildTargetModel(ModelBuilder modelBuilder)
@ -116,6 +116,33 @@ namespace SewingDressesDatabaseImplement.Migrations
b.ToTable("DressComponents");
});
modelBuilder.Entity("SewingDressesDatabaseImplement.Models.Implement", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
b.Property<string>("ImplementFIO")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("Password")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("Qualification")
.HasColumnType("int");
b.Property<int>("WorkExperience")
.HasColumnType("int");
b.HasKey("Id");
b.ToTable("Implements");
});
modelBuilder.Entity("SewingDressesDatabaseImplement.Models.Order", b =>
{
b.Property<int>("Id")
@ -139,6 +166,10 @@ namespace SewingDressesDatabaseImplement.Migrations
b.Property<int>("DressId")
.HasColumnType("int");
b.Property<int?>("ImplementId")
.IsRequired()
.HasColumnType("int");
b.Property<int>("Status")
.HasColumnType("int");
@ -151,6 +182,8 @@ namespace SewingDressesDatabaseImplement.Migrations
b.HasIndex("DressId");
b.HasIndex("ImplementId");
b.ToTable("Orders");
});
@ -175,17 +208,29 @@ namespace SewingDressesDatabaseImplement.Migrations
modelBuilder.Entity("SewingDressesDatabaseImplement.Models.Order", b =>
{
b.HasOne("SewingDressesDatabaseImplement.Models.Client", null)
b.HasOne("SewingDressesDatabaseImplement.Models.Client", "Client")
.WithMany("Orders")
.HasForeignKey("ClientId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("SewingDressesDatabaseImplement.Models.Dress", null)
b.HasOne("SewingDressesDatabaseImplement.Models.Dress", "Dress")
.WithMany("Orders")
.HasForeignKey("DressId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("SewingDressesDatabaseImplement.Models.Implement", "Implement")
.WithMany("Orders")
.HasForeignKey("ImplementId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Client");
b.Navigation("Dress");
b.Navigation("Implement");
});
modelBuilder.Entity("SewingDressesDatabaseImplement.Models.Client", b =>
@ -204,6 +249,11 @@ namespace SewingDressesDatabaseImplement.Migrations
b.Navigation("Orders");
});
modelBuilder.Entity("SewingDressesDatabaseImplement.Models.Implement", b =>
{
b.Navigation("Orders");
});
#pragma warning restore 612, 618
}
}

View File

@ -6,7 +6,7 @@ using Microsoft.EntityFrameworkCore.Migrations;
namespace SewingDressesDatabaseImplement.Migrations
{
/// <inheritdoc />
public partial class InitialCreate : Migration
public partial class init : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
@ -54,6 +54,22 @@ namespace SewingDressesDatabaseImplement.Migrations
table.PrimaryKey("PK_Dresses", x => x.Id);
});
migrationBuilder.CreateTable(
name: "Implements",
columns: table => new
{
Id = table.Column<int>(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
ImplementFIO = table.Column<string>(type: "nvarchar(max)", nullable: false),
WorkExperience = table.Column<int>(type: "int", nullable: false),
Password = table.Column<string>(type: "nvarchar(max)", nullable: false),
Qualification = table.Column<int>(type: "int", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Implements", x => x.Id);
});
migrationBuilder.CreateTable(
name: "DressComponents",
columns: table => new
@ -89,6 +105,7 @@ namespace SewingDressesDatabaseImplement.Migrations
.Annotation("SqlServer:Identity", "1, 1"),
DressId = table.Column<int>(type: "int", nullable: false),
ClientId = table.Column<int>(type: "int", nullable: false),
ImplementId = table.Column<int>(type: "int", nullable: false),
Count = table.Column<int>(type: "int", nullable: false),
Sum = table.Column<double>(type: "float", nullable: false),
Status = table.Column<int>(type: "int", nullable: false),
@ -110,6 +127,12 @@ namespace SewingDressesDatabaseImplement.Migrations
principalTable: "Dresses",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_Orders_Implements_ImplementId",
column: x => x.ImplementId,
principalTable: "Implements",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateIndex(
@ -131,6 +154,11 @@ namespace SewingDressesDatabaseImplement.Migrations
name: "IX_Orders_DressId",
table: "Orders",
column: "DressId");
migrationBuilder.CreateIndex(
name: "IX_Orders_ImplementId",
table: "Orders",
column: "ImplementId");
}
/// <inheritdoc />
@ -150,6 +178,9 @@ namespace SewingDressesDatabaseImplement.Migrations
migrationBuilder.DropTable(
name: "Dresses");
migrationBuilder.DropTable(
name: "Implements");
}
}
}

View File

@ -113,6 +113,33 @@ namespace SewingDressesDatabaseImplement.Migrations
b.ToTable("DressComponents");
});
modelBuilder.Entity("SewingDressesDatabaseImplement.Models.Implement", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
b.Property<string>("ImplementFIO")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("Password")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<int>("Qualification")
.HasColumnType("int");
b.Property<int>("WorkExperience")
.HasColumnType("int");
b.HasKey("Id");
b.ToTable("Implements");
});
modelBuilder.Entity("SewingDressesDatabaseImplement.Models.Order", b =>
{
b.Property<int>("Id")
@ -136,6 +163,10 @@ namespace SewingDressesDatabaseImplement.Migrations
b.Property<int>("DressId")
.HasColumnType("int");
b.Property<int?>("ImplementId")
.IsRequired()
.HasColumnType("int");
b.Property<int>("Status")
.HasColumnType("int");
@ -148,6 +179,8 @@ namespace SewingDressesDatabaseImplement.Migrations
b.HasIndex("DressId");
b.HasIndex("ImplementId");
b.ToTable("Orders");
});
@ -172,17 +205,29 @@ namespace SewingDressesDatabaseImplement.Migrations
modelBuilder.Entity("SewingDressesDatabaseImplement.Models.Order", b =>
{
b.HasOne("SewingDressesDatabaseImplement.Models.Client", null)
b.HasOne("SewingDressesDatabaseImplement.Models.Client", "Client")
.WithMany("Orders")
.HasForeignKey("ClientId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("SewingDressesDatabaseImplement.Models.Dress", null)
b.HasOne("SewingDressesDatabaseImplement.Models.Dress", "Dress")
.WithMany("Orders")
.HasForeignKey("DressId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("SewingDressesDatabaseImplement.Models.Implement", "Implement")
.WithMany("Orders")
.HasForeignKey("ImplementId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Client");
b.Navigation("Dress");
b.Navigation("Implement");
});
modelBuilder.Entity("SewingDressesDatabaseImplement.Models.Client", b =>
@ -201,6 +246,11 @@ namespace SewingDressesDatabaseImplement.Migrations
b.Navigation("Orders");
});
modelBuilder.Entity("SewingDressesDatabaseImplement.Models.Implement", b =>
{
b.Navigation("Orders");
});
#pragma warning restore 612, 618
}
}

View File

@ -24,7 +24,7 @@ namespace SewingDressesDatabaseImplement.Models
public int Qualification { get; private set; }
[ForeignKey("ImplementId")]
public virtual List<Order>? Orders { get; set; } = new();
public static Implement? Create(ImplementBindingModel model)
public static Implement? Create(ImplementBindingModel? model)
{
if (model == null)
return null;
@ -45,7 +45,7 @@ namespace SewingDressesDatabaseImplement.Models
Password = Password,
Qualification = Qualification
};
public void Update(ImplementBindingModel model)
public void Update(ImplementBindingModel? model)
{
if (model == null) return;
ImplementFIO = model.ImplementFIO;

View File

@ -60,7 +60,9 @@ namespace SewingDressesDatabaseImplement.Models
{
Id = Id,
DressId = DressId,
DressName = Dress.DressName,
ClientId = ClientId,
ClientFIO = Client.ClientFIO,
ImplementId = ImplementId,
ImplementFIO = Implement?.ImplementFIO,
Count = Count,

View File

@ -20,8 +20,4 @@
<ProjectReference Include="..\SewingDressesDataModels\SewingDressesDataModels.csproj" />
</ItemGroup>
<ItemGroup>
<Folder Include="Migrations\" />
</ItemGroup>
</Project>

View File

@ -11,6 +11,8 @@ namespace SewingDressesFileImplement.Models
{
public int Id { get; private set; }
public int DressId { get; private set; }
public int ClientId { get; private set; }
public int? ImplementId { get; private set; }
public int Count { get; private set; }
public double Sum { get; private set; }
public OrderStatus Status { get; private set; }

View File

@ -9,6 +9,8 @@ namespace SewingDressesListImplement.Models
{
public int Id { get; private set; }
public int DressId { get; private set; }
public int ClientId { get; private set; }
public int? ImplementId { get; private set; }
public int Count { get; private set; }
public double Sum { get; private set; }
public OrderStatus Status { get; private set; }
@ -25,6 +27,8 @@ namespace SewingDressesListImplement.Models
{
Id = model.Id,
DressId = model.DressId,
ClientId = model.ClientId,
ImplementId = model.ImplementId,
Count = model.Count,
Sum = model.Sum,
Status = model.Status,
@ -46,6 +50,8 @@ namespace SewingDressesListImplement.Models
{
Id = Id,
DressId = DressId,
ClientId = ClientId,
ImplementId = ImplementId,
Count = Count,
Sum = Sum,
Status = Status,