Commit 1d5f4c82 authored by hasan khaddour's avatar hasan khaddour

update infrastucture

parent 17a7a1c9
......@@ -2,8 +2,7 @@
using PSManagement.Domain.Customers.Aggregate;
using PSManagement.Domain.Employees.Entities;
using PSManagement.Domain.Identity.Entities;
using PSManagement.Domain.Projects.Aggregate;
using PSManagement.Domain.Steps.Entities;
using PSManagement.Domain.Projects.Entities;
using PSManagement.Domain.Tracking;
using PSManagement.Domain.Tracking.Entities;
......@@ -26,9 +25,7 @@ namespace PSManagement.Infrastructure.Persistence
public DbSet<Project> Projects { get; set; }
public DbSet<Step> Steps { get; set; }
public DbSet<Item> Items { get; set; }
public DbSet<Track> Tracks { get; set; }
public DbSet<EmployeeWork> EmployeeWorks { get; set; }
public DbSet<StepTrack> StepTracks { get; set; }
......
......@@ -3,7 +3,9 @@ using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using PSManagement.Domain.Customers.Repositories;
using PSManagement.Domain.Identity.Repositories;
using PSManagement.Domain.Projects.Repositories;
using PSManagement.Infrastructure.Persistence.Repositories.CustomerRepository;
using PSManagement.Infrastructure.Persistence.Repositories.ProjectRepository;
using PSManagement.Infrastructure.Persistence.Repositories.UserRepository;
namespace PSManagement.Infrastructure.Persistence.DI
......@@ -18,6 +20,7 @@ namespace PSManagement.Infrastructure.Persistence.DI
});
services.AddScoped<IUsersRepository, UsersRepository>();
services.AddScoped<ICustomersRepository, CustomersReposiotry>();
services.AddScoped<IProjectsRepository, ProjectsRepository>();
return services;
......
......@@ -20,6 +20,13 @@ namespace PSManagement.Infrastructure.Persistence.EntitiesConfiguration
p.Property(e => e.CurrentWorkingHours).HasColumnName("CurrentWorkingHours");
}
);
builder.OwnsOne(c => c.WorkInfo,
p => {
p.Property(e => e.WorkJob).HasColumnName("WorkJob");
p.Property(e => e.WorkType).HasColumnName("WorkType");
}
);
builder.OwnsOne(c => c.PersonalInfo,
p => {
p.Property(e => e.LastName).HasColumnName("LastName");
......
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using PSManagement.Domain.Projects.Entities;
namespace PSManagement.Infrastructure.Persistence.EntitiesConfiguration
{
public class FinicialSpendingEntityConfiguration :
IEntityTypeConfiguration<FinincialSpending>
{
public void Configure(EntityTypeBuilder<FinincialSpending> builder)
{
builder.OwnsOne(e => e.ExternalPurchase, p =>
{
p.Property(e => e.Ammount).HasColumnName("ExternalPurchaseAmmount");
p.Property(e => e.Currency).HasColumnName("ExternalPurchaseCurrency").HasDefaultValue("USD");
});
builder.OwnsOne(e => e.LocalPurchase, p =>
{
p.Property(e => e.Ammount).HasColumnName("LocalPurchaseAmmount");
p.Property(e => e.Currency).HasColumnName("LocalPurchaseCurrency").HasDefaultValue("SP");
});
}
}
}
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using PSManagement.Domain.Steps.Entities;
namespace PSManagement.Infrastructure.Persistence.EntitiesConfiguration
{
public class ItemEntityConfiguration : IEntityTypeConfiguration<Item>
{
public void Configure(EntityTypeBuilder<Item> builder)
{
builder.OwnsOne(c => c.Price,
p => {
p.Property(e => e.Ammount).HasColumnName("Ammount");
p.Property(e => e.Currency).HasColumnName("Currency");
}
);
}
}
}
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using PSManagement.Domain.Employees.Entities;
using PSManagement.Domain.Projects.Aggregate;
using PSManagement.Domain.Projects.Entities;
namespace PSManagement.Infrastructure.Persistence.EntitiesConfiguration
......@@ -48,7 +47,7 @@ namespace PSManagement.Infrastructure.Persistence.EntitiesConfiguration
.OnDelete(DeleteBehavior.Restrict)
.IsRequired(false);
builder.HasOne(e => e.Proposer).WithMany().HasForeignKey(e=>e.ProposerId);
builder.OwnsOne(c => c.ProposalInfo,
p => {
p.Property(e => e.ProposingBookDate).HasColumnName("ProposingBookDate");
......@@ -61,7 +60,9 @@ namespace PSManagement.Infrastructure.Persistence.EntitiesConfiguration
p.Property(e => e.Source).HasColumnName("FinicialSource");
}
);
builder.HasOne(e => e.ProjectStatus).WithMany();
builder.HasMany(e => e.FinincialSpending);
builder.HasMany(e => e.Tracks).WithOne(e => e.Project).HasForeignKey(e => e.ProjectId);
}
......
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using PSManagement.Domain.Steps.Entities;
using PSManagement.Domain.Projects.Entities;
namespace PSManagement.Infrastructure.Persistence.EntitiesConfiguration
{
......
......@@ -21,6 +21,8 @@ namespace PSManagement.Infrastructure.Persistence.EntitiesConfiguration
.WithMany(p => p.Tracks)
.HasForeignKey(t => t.ProjectId)
.OnDelete(DeleteBehavior.Restrict);
builder.Ignore(e => e.TrackedEmployees);
//builder.HasMany(e => e.TrackedEmployees)
// .WithMany(e => e.trac)
// .UsingEntity<EmployeeParticipate>(
......
using Microsoft.EntityFrameworkCore.Migrations;
namespace PSManagement.Infrastructure.Persistence.Migrations
{
public partial class AddDomains2 : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(
name: "FK_Permission_Role_RoleId",
table: "Permission");
migrationBuilder.DropForeignKey(
name: "FK_RoleUser_Role_RolesId",
table: "RoleUser");
migrationBuilder.DropPrimaryKey(
name: "PK_Role",
table: "Role");
migrationBuilder.RenameTable(
name: "Role",
newName: "Roles");
migrationBuilder.AddPrimaryKey(
name: "PK_Roles",
table: "Roles",
column: "Id");
migrationBuilder.AddForeignKey(
name: "FK_Permission_Roles_RoleId",
table: "Permission",
column: "RoleId",
principalTable: "Roles",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_RoleUser_Roles_RolesId",
table: "RoleUser",
column: "RolesId",
principalTable: "Roles",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(
name: "FK_Permission_Roles_RoleId",
table: "Permission");
migrationBuilder.DropForeignKey(
name: "FK_RoleUser_Roles_RolesId",
table: "RoleUser");
migrationBuilder.DropPrimaryKey(
name: "PK_Roles",
table: "Roles");
migrationBuilder.RenameTable(
name: "Roles",
newName: "Role");
migrationBuilder.AddPrimaryKey(
name: "PK_Role",
table: "Role",
column: "Id");
migrationBuilder.AddForeignKey(
name: "FK_Permission_Role_RoleId",
table: "Permission",
column: "RoleId",
principalTable: "Role",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_RoleUser_Role_RolesId",
table: "RoleUser",
column: "RolesId",
principalTable: "Role",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
}
}
}
using Microsoft.EntityFrameworkCore.Migrations;
namespace PSManagement.Infrastructure.Persistence.Migrations
{
public partial class AddDomains3 : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(
name: "FK_Permission_Permission_PermissionId",
table: "Permission");
migrationBuilder.DropForeignKey(
name: "FK_Permission_Roles_RoleId",
table: "Permission");
migrationBuilder.DropIndex(
name: "IX_Permission_PermissionId",
table: "Permission");
migrationBuilder.DropIndex(
name: "IX_Permission_RoleId",
table: "Permission");
migrationBuilder.DropColumn(
name: "PermissionId",
table: "Permission");
migrationBuilder.DropColumn(
name: "RoleId",
table: "Permission");
migrationBuilder.CreateTable(
name: "PermissionRole",
columns: table => new
{
PermissionsId = table.Column<int>(type: "int", nullable: false),
RolesId = table.Column<int>(type: "int", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_PermissionRole", x => new { x.PermissionsId, x.RolesId });
table.ForeignKey(
name: "FK_PermissionRole_Permission_PermissionsId",
column: x => x.PermissionsId,
principalTable: "Permission",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_PermissionRole_Roles_RolesId",
column: x => x.RolesId,
principalTable: "Roles",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateIndex(
name: "IX_PermissionRole_RolesId",
table: "PermissionRole",
column: "RolesId");
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "PermissionRole");
migrationBuilder.AddColumn<int>(
name: "PermissionId",
table: "Permission",
type: "int",
nullable: true);
migrationBuilder.AddColumn<int>(
name: "RoleId",
table: "Permission",
type: "int",
nullable: true);
migrationBuilder.CreateIndex(
name: "IX_Permission_PermissionId",
table: "Permission",
column: "PermissionId");
migrationBuilder.CreateIndex(
name: "IX_Permission_RoleId",
table: "Permission",
column: "RoleId");
migrationBuilder.AddForeignKey(
name: "FK_Permission_Permission_PermissionId",
table: "Permission",
column: "PermissionId",
principalTable: "Permission",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_Permission_Roles_RoleId",
table: "Permission",
column: "RoleId",
principalTable: "Roles",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
}
}
}
using Microsoft.EntityFrameworkCore.Migrations;
namespace PSManagement.Infrastructure.Persistence.Migrations
{
public partial class AddDomains5 : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<int>(
name: "ProjectStatusId",
table: "Projects",
type: "int",
nullable: true);
migrationBuilder.CreateTable(
name: "Attachment",
columns: table => new
{
Id = table.Column<int>(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
AttachmentUrl = table.Column<string>(type: "nvarchar(max)", nullable: true),
AttachmentName = table.Column<string>(type: "nvarchar(max)", nullable: true),
AttachmenDescription = table.Column<string>(type: "nvarchar(max)", nullable: true),
ProjectId = table.Column<int>(type: "int", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_Attachment", x => x.Id);
table.ForeignKey(
name: "FK_Attachment_Projects_ProjectId",
column: x => x.ProjectId,
principalTable: "Projects",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
});
migrationBuilder.CreateTable(
name: "ProjectStatus",
columns: table => new
{
Id = table.Column<int>(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
Name = table.Column<string>(type: "nvarchar(max)", nullable: true),
Details = table.Column<string>(type: "nvarchar(max)", nullable: true),
Code = table.Column<string>(type: "nvarchar(max)", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_ProjectStatus", x => x.Id);
});
migrationBuilder.CreateIndex(
name: "IX_Projects_ProjectStatusId",
table: "Projects",
column: "ProjectStatusId");
migrationBuilder.CreateIndex(
name: "IX_Attachment_ProjectId",
table: "Attachment",
column: "ProjectId");
migrationBuilder.AddForeignKey(
name: "FK_Projects_ProjectStatus_ProjectStatusId",
table: "Projects",
column: "ProjectStatusId",
principalTable: "ProjectStatus",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(
name: "FK_Projects_ProjectStatus_ProjectStatusId",
table: "Projects");
migrationBuilder.DropTable(
name: "Attachment");
migrationBuilder.DropTable(
name: "ProjectStatus");
migrationBuilder.DropIndex(
name: "IX_Projects_ProjectStatusId",
table: "Projects");
migrationBuilder.DropColumn(
name: "ProjectStatusId",
table: "Projects");
}
}
}
using Microsoft.EntityFrameworkCore.Migrations;
namespace PSManagement.Infrastructure.Persistence.Migrations
{
public partial class AddDomains7 : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
}
protected override void Down(MigrationBuilder migrationBuilder)
{
}
}
}
using Microsoft.EntityFrameworkCore.Migrations;
namespace PSManagement.Infrastructure.Persistence.Migrations
{
public partial class AddDomainUpdate : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(
name: "FK_Employees_Steps_StepId",
table: "Employees");
migrationBuilder.DropForeignKey(
name: "FK_EmployeeWorks_Employees_EmployeeId",
table: "EmployeeWorks");
migrationBuilder.DropForeignKey(
name: "FK_EmployeeWorks_StepTracks_StepTrackId",
table: "EmployeeWorks");
migrationBuilder.DropForeignKey(
name: "FK_Items_Steps_StepId",
table: "Items");
migrationBuilder.DropIndex(
name: "IX_Items_StepId",
table: "Items");
migrationBuilder.DropColumn(
name: "StepId",
table: "Items");
migrationBuilder.RenameColumn(
name: "StepId",
table: "Employees",
newName: "TrackId");
migrationBuilder.RenameIndex(
name: "IX_Employees_StepId",
table: "Employees",
newName: "IX_Employees_TrackId");
migrationBuilder.AddColumn<int>(
name: "ExecutionRatio",
table: "StepTracks",
type: "int",
nullable: false,
defaultValue: 0);
migrationBuilder.AddColumn<int>(
name: "CurrentCompletionRatio",
table: "Steps",
type: "int",
nullable: false,
defaultValue: 0);
migrationBuilder.AddColumn<int>(
name: "Weight",
table: "Steps",
type: "int",
nullable: false,
defaultValue: 0);
migrationBuilder.CreateTable(
name: "EmployeeParticipate",
columns: table => new
{
Id = table.Column<int>(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
EmployeeId = table.Column<int>(type: "int", nullable: false),
ProjectId = table.Column<int>(type: "int", nullable: false),
PartialTimeRatio = table.Column<int>(type: "int", nullable: false),
Role = table.Column<string>(type: "nvarchar(max)", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_EmployeeParticipate", x => x.Id);
table.ForeignKey(
name: "FK_EmployeeParticipate_Employees_EmployeeId",
column: x => x.EmployeeId,
principalTable: "Employees",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_EmployeeParticipate_Projects_ProjectId",
column: x => x.ProjectId,
principalTable: "Projects",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "EmployeeTrack",
columns: table => new
{
Id = table.Column<int>(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
EmloyeeId = table.Column<int>(type: "int", nullable: false),
TrackId = table.Column<int>(type: "int", nullable: false),
WorkingHours = table.Column<int>(type: "int", nullable: false),
PerformedWork = table.Column<string>(type: "nvarchar(max)", nullable: true),
AssignedWork = table.Column<string>(type: "nvarchar(max)", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_EmployeeTrack", x => x.Id);
table.ForeignKey(
name: "FK_EmployeeTrack_Employees_EmloyeeId",
column: x => x.EmloyeeId,
principalTable: "Employees",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_EmployeeTrack_Tracks_TrackId",
column: x => x.TrackId,
principalTable: "Tracks",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateIndex(
name: "IX_EmployeeParticipate_EmployeeId",
table: "EmployeeParticipate",
column: "EmployeeId");
migrationBuilder.CreateIndex(
name: "IX_EmployeeParticipate_ProjectId",
table: "EmployeeParticipate",
column: "ProjectId");
migrationBuilder.CreateIndex(
name: "IX_EmployeeTrack_EmloyeeId",
table: "EmployeeTrack",
column: "EmloyeeId");
migrationBuilder.CreateIndex(
name: "IX_EmployeeTrack_TrackId",
table: "EmployeeTrack",
column: "TrackId");
migrationBuilder.AddForeignKey(
name: "FK_Employees_Tracks_TrackId",
table: "Employees",
column: "TrackId",
principalTable: "Tracks",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_EmployeeWorks_Employees_EmployeeId",
table: "EmployeeWorks",
column: "EmployeeId",
principalTable: "Employees",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_EmployeeWorks_StepTracks_StepTrackId",
table: "EmployeeWorks",
column: "StepTrackId",
principalTable: "StepTracks",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(
name: "FK_Employees_Tracks_TrackId",
table: "Employees");
migrationBuilder.DropForeignKey(
name: "FK_EmployeeWorks_Employees_EmployeeId",
table: "EmployeeWorks");
migrationBuilder.DropForeignKey(
name: "FK_EmployeeWorks_StepTracks_StepTrackId",
table: "EmployeeWorks");
migrationBuilder.DropTable(
name: "EmployeeParticipate");
migrationBuilder.DropTable(
name: "EmployeeTrack");
migrationBuilder.DropColumn(
name: "ExecutionRatio",
table: "StepTracks");
migrationBuilder.DropColumn(
name: "CurrentCompletionRatio",
table: "Steps");
migrationBuilder.DropColumn(
name: "Weight",
table: "Steps");
migrationBuilder.RenameColumn(
name: "TrackId",
table: "Employees",
newName: "StepId");
migrationBuilder.RenameIndex(
name: "IX_Employees_TrackId",
table: "Employees",
newName: "IX_Employees_StepId");
migrationBuilder.AddColumn<int>(
name: "StepId",
table: "Items",
type: "int",
nullable: true);
migrationBuilder.CreateIndex(
name: "IX_Items_StepId",
table: "Items",
column: "StepId");
migrationBuilder.AddForeignKey(
name: "FK_Employees_Steps_StepId",
table: "Employees",
column: "StepId",
principalTable: "Steps",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_EmployeeWorks_Employees_EmployeeId",
table: "EmployeeWorks",
column: "EmployeeId",
principalTable: "Employees",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_EmployeeWorks_StepTracks_StepTrackId",
table: "EmployeeWorks",
column: "StepTrackId",
principalTable: "StepTracks",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_Items_Steps_StepId",
table: "Items",
column: "StepId",
principalTable: "Steps",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
}
}
}
using Microsoft.EntityFrameworkCore.Migrations;
namespace PSManagement.Infrastructure.Persistence.Migrations
{
public partial class AddDomainUpdate3 : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(
name: "FK_Projects_Employees_ProjectManagerId",
table: "Projects");
migrationBuilder.DropForeignKey(
name: "FK_Projects_Employees_TeamLeaderId",
table: "Projects");
migrationBuilder.AddForeignKey(
name: "FK_Projects_Employees_ProjectManagerId",
table: "Projects",
column: "ProjectManagerId",
principalTable: "Employees",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_Projects_Employees_TeamLeaderId",
table: "Projects",
column: "TeamLeaderId",
principalTable: "Employees",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(
name: "FK_Projects_Employees_ProjectManagerId",
table: "Projects");
migrationBuilder.DropForeignKey(
name: "FK_Projects_Employees_TeamLeaderId",
table: "Projects");
migrationBuilder.AddForeignKey(
name: "FK_Projects_Employees_ProjectManagerId",
table: "Projects",
column: "ProjectManagerId",
principalTable: "Employees",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_Projects_Employees_TeamLeaderId",
table: "Projects",
column: "TeamLeaderId",
principalTable: "Employees",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
}
}
}
using Microsoft.EntityFrameworkCore.Migrations;
namespace PSManagement.Infrastructure.Persistence.Migrations
{
public partial class AddDomainUpdate4 : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
}
protected override void Down(MigrationBuilder migrationBuilder)
{
}
}
}
......@@ -10,8 +10,8 @@ using PSManagement.Infrastructure.Persistence;
namespace PSManagement.Infrastructure.Persistence.Migrations
{
[DbContext(typeof(AppDbContext))]
[Migration("20240806133359_AddDomainUpdate4")]
partial class AddDomainUpdate4
[Migration("20240807105909_Initial")]
partial class Initial
{
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
......
......@@ -10,8 +10,8 @@ using PSManagement.Infrastructure.Persistence;
namespace PSManagement.Infrastructure.Persistence.Migrations
{
[DbContext(typeof(AppDbContext))]
[Migration("20240806125539_AddDomainUpdate2")]
partial class AddDomainUpdate2
[Migration("20240807122646_UpdateDomains")]
partial class UpdateDomains
{
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
......@@ -259,7 +259,7 @@ namespace PSManagement.Infrastructure.Persistence.Migrations
b.HasKey("Id");
b.ToTable("Items");
b.ToTable("Item");
});
modelBuilder.Entity("PSManagement.Domain.Steps.Entities.Step", b =>
......@@ -328,40 +328,6 @@ namespace PSManagement.Infrastructure.Persistence.Migrations
b.ToTable("EmployeeTrack");
});
modelBuilder.Entity("PSManagement.Domain.Tracking.Entities.EmployeeWork", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<int>("ContributingRatio")
.HasColumnType("int");
b.Property<int>("EmployeeId")
.HasColumnType("int");
b.Property<int>("EmployeeWorkId")
.HasColumnType("int");
b.Property<int>("HoursWorked")
.HasColumnType("int");
b.Property<string>("Notes")
.HasColumnType("nvarchar(max)");
b.Property<int>("StepTrackId")
.HasColumnType("int");
b.HasKey("Id");
b.HasIndex("EmployeeId");
b.HasIndex("StepTrackId");
b.ToTable("EmployeeWorks");
});
modelBuilder.Entity("PSManagement.Domain.Tracking.Entities.StepTrack", b =>
{
b.Property<int>("Id")
......@@ -576,8 +542,7 @@ namespace PSManagement.Infrastructure.Persistence.Migrations
b.HasOne("PSManagement.Domain.Employees.Entities.Employee", "ProjectManager")
.WithMany()
.HasForeignKey("ProjectManagerId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
.OnDelete(DeleteBehavior.Restrict);
b.HasOne("PSManagement.Domain.Projects.Entities.ProjectStatus", "ProjectStatus")
.WithMany()
......@@ -590,8 +555,7 @@ namespace PSManagement.Infrastructure.Persistence.Migrations
b.HasOne("PSManagement.Domain.Employees.Entities.Employee", "TeamLeader")
.WithMany()
.HasForeignKey("TeamLeaderId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
.OnDelete(DeleteBehavior.Restrict);
b.OwnsOne("PSManagement.Domain.Projects.Aggregate.Aggreement", "ProjectAggreement", b1 =>
{
......@@ -753,7 +717,7 @@ namespace PSManagement.Infrastructure.Persistence.Migrations
b1.HasKey("ItemId");
b1.ToTable("Items");
b1.ToTable("Item");
b1.WithOwner()
.HasForeignKey("ItemId");
......@@ -792,25 +756,6 @@ namespace PSManagement.Infrastructure.Persistence.Migrations
b.Navigation("Track");
});
modelBuilder.Entity("PSManagement.Domain.Tracking.Entities.EmployeeWork", b =>
{
b.HasOne("PSManagement.Domain.Employees.Entities.Employee", "Employee")
.WithMany()
.HasForeignKey("EmployeeId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PSManagement.Domain.Tracking.Entities.StepTrack", "StepTrack")
.WithMany()
.HasForeignKey("StepTrackId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Employee");
b.Navigation("StepTrack");
});
modelBuilder.Entity("PSManagement.Domain.Tracking.Entities.StepTrack", b =>
{
b.HasOne("PSManagement.Domain.Steps.Entities.Step", "Step")
......
using Microsoft.EntityFrameworkCore.Migrations;
namespace PSManagement.Infrastructure.Persistence.Migrations
{
public partial class UpdateDomains : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "EmployeeWorks");
migrationBuilder.DropPrimaryKey(
name: "PK_Items",
table: "Items");
migrationBuilder.RenameTable(
name: "Items",
newName: "Item");
migrationBuilder.AddPrimaryKey(
name: "PK_Item",
table: "Item",
column: "Id");
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropPrimaryKey(
name: "PK_Item",
table: "Item");
migrationBuilder.RenameTable(
name: "Item",
newName: "Items");
migrationBuilder.AddPrimaryKey(
name: "PK_Items",
table: "Items",
column: "Id");
migrationBuilder.CreateTable(
name: "EmployeeWorks",
columns: table => new
{
Id = table.Column<int>(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
ContributingRatio = table.Column<int>(type: "int", nullable: false),
EmployeeId = table.Column<int>(type: "int", nullable: false),
EmployeeWorkId = table.Column<int>(type: "int", nullable: false),
HoursWorked = table.Column<int>(type: "int", nullable: false),
Notes = table.Column<string>(type: "nvarchar(max)", nullable: true),
StepTrackId = table.Column<int>(type: "int", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_EmployeeWorks", x => x.Id);
table.ForeignKey(
name: "FK_EmployeeWorks_Employees_EmployeeId",
column: x => x.EmployeeId,
principalTable: "Employees",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_EmployeeWorks_StepTracks_StepTrackId",
column: x => x.StepTrackId,
principalTable: "StepTracks",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateIndex(
name: "IX_EmployeeWorks_EmployeeId",
table: "EmployeeWorks",
column: "EmployeeId");
migrationBuilder.CreateIndex(
name: "IX_EmployeeWorks_StepTrackId",
table: "EmployeeWorks",
column: "StepTrackId");
}
}
}
......@@ -10,8 +10,8 @@ using PSManagement.Infrastructure.Persistence;
namespace PSManagement.Infrastructure.Persistence.Migrations
{
[DbContext(typeof(AppDbContext))]
[Migration("20240806132941_AddDomainUpdate3")]
partial class AddDomainUpdate3
[Migration("20240807124316_UpdateDomains1")]
partial class UpdateDomains1
{
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
......@@ -65,16 +65,11 @@ namespace PSManagement.Infrastructure.Persistence.Migrations
b.Property<int>("HIASTId")
.HasColumnType("int");
b.Property<int?>("TrackId")
.HasColumnType("int");
b.Property<int>("UserId")
.HasColumnType("int");
b.HasKey("Id");
b.HasIndex("TrackId");
b.HasIndex("UserId")
.IsUnique();
......@@ -259,7 +254,7 @@ namespace PSManagement.Infrastructure.Persistence.Migrations
b.HasKey("Id");
b.ToTable("Items");
b.ToTable("Item");
});
modelBuilder.Entity("PSManagement.Domain.Steps.Entities.Step", b =>
......@@ -328,40 +323,6 @@ namespace PSManagement.Infrastructure.Persistence.Migrations
b.ToTable("EmployeeTrack");
});
modelBuilder.Entity("PSManagement.Domain.Tracking.Entities.EmployeeWork", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
b.Property<int>("ContributingRatio")
.HasColumnType("int");
b.Property<int>("EmployeeId")
.HasColumnType("int");
b.Property<int>("EmployeeWorkId")
.HasColumnType("int");
b.Property<int>("HoursWorked")
.HasColumnType("int");
b.Property<string>("Notes")
.HasColumnType("nvarchar(max)");
b.Property<int>("StepTrackId")
.HasColumnType("int");
b.HasKey("Id");
b.HasIndex("EmployeeId");
b.HasIndex("StepTrackId");
b.ToTable("EmployeeWorks");
});
modelBuilder.Entity("PSManagement.Domain.Tracking.Entities.StepTrack", b =>
{
b.Property<int>("Id")
......@@ -504,10 +465,6 @@ namespace PSManagement.Infrastructure.Persistence.Migrations
modelBuilder.Entity("PSManagement.Domain.Employees.Entities.Employee", b =>
{
b.HasOne("PSManagement.Domain.Tracking.Track", null)
.WithMany("TrackedEmployees")
.HasForeignKey("TrackId");
b.HasOne("PSManagement.Domain.Identity.Entities.User", "User")
.WithOne("Employee")
.HasForeignKey("PSManagement.Domain.Employees.Entities.Employee", "UserId")
......@@ -576,8 +533,7 @@ namespace PSManagement.Infrastructure.Persistence.Migrations
b.HasOne("PSManagement.Domain.Employees.Entities.Employee", "ProjectManager")
.WithMany()
.HasForeignKey("ProjectManagerId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
.OnDelete(DeleteBehavior.Restrict);
b.HasOne("PSManagement.Domain.Projects.Entities.ProjectStatus", "ProjectStatus")
.WithMany()
......@@ -590,8 +546,7 @@ namespace PSManagement.Infrastructure.Persistence.Migrations
b.HasOne("PSManagement.Domain.Employees.Entities.Employee", "TeamLeader")
.WithMany()
.HasForeignKey("TeamLeaderId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
.OnDelete(DeleteBehavior.Restrict);
b.OwnsOne("PSManagement.Domain.Projects.Aggregate.Aggreement", "ProjectAggreement", b1 =>
{
......@@ -753,7 +708,7 @@ namespace PSManagement.Infrastructure.Persistence.Migrations
b1.HasKey("ItemId");
b1.ToTable("Items");
b1.ToTable("Item");
b1.WithOwner()
.HasForeignKey("ItemId");
......@@ -792,25 +747,6 @@ namespace PSManagement.Infrastructure.Persistence.Migrations
b.Navigation("Track");
});
modelBuilder.Entity("PSManagement.Domain.Tracking.Entities.EmployeeWork", b =>
{
b.HasOne("PSManagement.Domain.Employees.Entities.Employee", "Employee")
.WithMany()
.HasForeignKey("EmployeeId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("PSManagement.Domain.Tracking.Entities.StepTrack", "StepTrack")
.WithMany()
.HasForeignKey("StepTrackId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Employee");
b.Navigation("StepTrack");
});
modelBuilder.Entity("PSManagement.Domain.Tracking.Entities.StepTrack", b =>
{
b.HasOne("PSManagement.Domain.Steps.Entities.Step", "Step")
......@@ -909,8 +845,6 @@ namespace PSManagement.Infrastructure.Persistence.Migrations
b.Navigation("EmployeeTracks");
b.Navigation("StepTracks");
b.Navigation("TrackedEmployees");
});
#pragma warning restore 612, 618
}
......
......@@ -2,39 +2,39 @@
namespace PSManagement.Infrastructure.Persistence.Migrations
{
public partial class AddDomains6 : Migration
public partial class UpdateDomains1 : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(
name: "FK_Steps_Tracks_TrackId",
table: "Steps");
name: "FK_Employees_Tracks_TrackId",
table: "Employees");
migrationBuilder.DropIndex(
name: "IX_Steps_TrackId",
table: "Steps");
name: "IX_Employees_TrackId",
table: "Employees");
migrationBuilder.DropColumn(
name: "TrackId",
table: "Steps");
table: "Employees");
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<int>(
name: "TrackId",
table: "Steps",
table: "Employees",
type: "int",
nullable: true);
migrationBuilder.CreateIndex(
name: "IX_Steps_TrackId",
table: "Steps",
name: "IX_Employees_TrackId",
table: "Employees",
column: "TrackId");
migrationBuilder.AddForeignKey(
name: "FK_Steps_Tracks_TrackId",
table: "Steps",
name: "FK_Employees_Tracks_TrackId",
table: "Employees",
column: "TrackId",
principalTable: "Tracks",
principalColumn: "Id",
......
using PSManagement.Domain.Projects.Repositories;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace PSManagement.Infrastructure.Persistence.Repositories.ProjectRepository
{
public class ProjectsRepository :IProjectsRepository
{
}
}
......@@ -2,9 +2,9 @@
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using PSManagement.Application.Common.Services;
using PSManagement.Application.Contracts.Authentication;
using PSManagement.Application.Contracts.Authorization;
using PSManagement.Application.Contracts.Providers;
using PSManagement.Domain.Identity.Repositories;
using PSManagement.Infrastructure.Authentication;
using PSManagement.Infrastructure.Services;
......
using PSManagement.Application.Common.Services;
using PSManagement.Application.Contracts.Providers;
using System;
using System.Collections.Generic;
using System.Linq;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment