Add a foreign key for WorkCategory table to the WorkItem model

This commit is contained in:
ashutosh.nehete 2025-05-12 13:18:19 +05:30
parent 4287bf7b2e
commit 7c9cd4697f
9 changed files with 2584 additions and 6 deletions

View File

@ -0,0 +1,50 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace Marco.Pms.DataAccess.Migrations
{
/// <inheritdoc />
public partial class Added_Foreign_key_For_WorkCategery_To_WorkItem : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<Guid>(
name: "WorkCategoryId",
table: "WorkItems",
type: "char(36)",
nullable: true,
collation: "ascii_general_ci");
migrationBuilder.CreateIndex(
name: "IX_WorkItems_WorkCategoryId",
table: "WorkItems",
column: "WorkCategoryId");
migrationBuilder.AddForeignKey(
name: "FK_WorkItems_WorkCategoryMasters_WorkCategoryId",
table: "WorkItems",
column: "WorkCategoryId",
principalTable: "WorkCategoryMasters",
principalColumn: "Id");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(
name: "FK_WorkItems_WorkCategoryMasters_WorkCategoryId",
table: "WorkItems");
migrationBuilder.DropIndex(
name: "IX_WorkItems_WorkCategoryId",
table: "WorkItems");
migrationBuilder.DropColumn(
name: "WorkCategoryId",
table: "WorkItems");
}
}
}

View File

@ -1596,6 +1596,9 @@ namespace Marco.Pms.DataAccess.Migrations
b.Property<Guid>("WorkAreaId") b.Property<Guid>("WorkAreaId")
.HasColumnType("char(36)"); .HasColumnType("char(36)");
b.Property<Guid?>("WorkCategoryId")
.HasColumnType("char(36)");
b.HasKey("Id"); b.HasKey("Id");
b.HasIndex("ActivityId"); b.HasIndex("ActivityId");
@ -1604,6 +1607,8 @@ namespace Marco.Pms.DataAccess.Migrations
b.HasIndex("WorkAreaId"); b.HasIndex("WorkAreaId");
b.HasIndex("WorkCategoryId");
b.ToTable("WorkItems"); b.ToTable("WorkItems");
}); });
@ -2404,11 +2409,17 @@ namespace Marco.Pms.DataAccess.Migrations
.OnDelete(DeleteBehavior.Cascade) .OnDelete(DeleteBehavior.Cascade)
.IsRequired(); .IsRequired();
b.HasOne("Marco.Pms.Model.Master.WorkCategoryMaster", "WorkCategoryMaster")
.WithMany()
.HasForeignKey("WorkCategoryId");
b.Navigation("ActivityMaster"); b.Navigation("ActivityMaster");
b.Navigation("Tenant"); b.Navigation("Tenant");
b.Navigation("WorkArea"); b.Navigation("WorkArea");
b.Navigation("WorkCategoryMaster");
}); });
modelBuilder.Entity("Marco.Pms.Model.Roles.ApplicationRole", b => modelBuilder.Entity("Marco.Pms.Model.Roles.ApplicationRole", b =>

View File

@ -7,7 +7,7 @@ namespace Marco.Pms.Model.Dtos.Project
[Key] [Key]
public Guid? Id { get; set; } public Guid? Id { get; set; }
public Guid WorkAreaID { get; set; } public Guid WorkAreaID { get; set; }
public Guid WorkCategoryId { get; set; }
public Guid ActivityID { get; set; } public Guid ActivityID { get; set; }
public int PlannedWork { get; set; } public int PlannedWork { get; set; }
public int CompletedWork { get; set; } public int CompletedWork { get; set; }

View File

@ -56,6 +56,7 @@ namespace Marco.Pms.Model.Mapper
ActivityId = model.ActivityID, ActivityId = model.ActivityID,
CompletedWork = model.CompletedWork, CompletedWork = model.CompletedWork,
PlannedWork = model.PlannedWork, PlannedWork = model.PlannedWork,
WorkCategoryId = model.WorkCategoryId,
TaskDate = DateTime.Now, TaskDate = DateTime.Now,
TenantId = tenantId, TenantId = tenantId,
WorkAreaId = model.WorkAreaID WorkAreaId = model.WorkAreaID

View File

@ -9,17 +9,20 @@ namespace Marco.Pms.Model.Projects
{ {
public Guid Id { get; set; } public Guid Id { get; set; }
public Guid ActivityId { get; set; } public Guid ActivityId { get; set; }
public Guid? WorkCategoryId { get; set; }
public Guid WorkAreaId { get; set; } public Guid WorkAreaId { get; set; }
[ForeignKey("WorkAreaId")] [ForeignKey("WorkAreaId")]
[ValidateNever] [ValidateNever]
public WorkArea? WorkArea { get; set; } public WorkArea? WorkArea { get; set; }
[ForeignKey("ActivityId")] [ForeignKey("ActivityId")]
[ValidateNever] [ValidateNever]
public ActivityMaster? ActivityMaster { get; set; } public ActivityMaster? ActivityMaster { get; set; }
[ForeignKey("WorkCategoryId")]
[ValidateNever]
public WorkCategoryMaster? WorkCategoryMaster { get; set; }
public double PlannedWork { get; set; } public double PlannedWork { get; set; }
public double CompletedWork { get; set; } public double CompletedWork { get; set; }
public DateTime TaskDate { get; set; } public DateTime TaskDate { get; set; }

View File

@ -207,7 +207,7 @@ namespace MarcoBMS.Services.Controllers
// Create Identity User // Create Identity User
var result = await _userManager.CreateAsync(user, "User@123"); var result = await _userManager.CreateAsync(user, "User@123");
if (!result.Succeeded) if (!result.Succeeded)
return Ok(ApiResponse<object>.ErrorResponse("Failed to create user", result.Errors, 400)); return BadRequest(ApiResponse<object>.ErrorResponse("Failed to create user", result.Errors, 400));
if (existingEmployee == null) if (existingEmployee == null)
{ {

View File

@ -208,7 +208,7 @@ namespace MarcoBMS.Services.Controllers
List<WorkArea> workAreas = await _context.WorkAreas.Where(c => idList.Contains(c.FloorId)).ToListAsync(); List<WorkArea> workAreas = await _context.WorkAreas.Where(c => idList.Contains(c.FloorId)).ToListAsync();
idList = workAreas.Select(o => o.Id).ToList(); idList = workAreas.Select(o => o.Id).ToList();
List<WorkItem> workItems = await _context.WorkItems.Where(c => idList.Contains(c.WorkAreaId)).Include(c => c.ActivityMaster).ToListAsync(); List<WorkItem> workItems = await _context.WorkItems.Include(c => c.WorkCategoryMaster).Where(c => idList.Contains(c.WorkAreaId)).Include(c => c.ActivityMaster).ToListAsync();
// List <WorkItem> workItems = _unitOfWork.WorkItem.GetAll(c => idList.Contains(c.WorkAreaId), includeProperties: "ActivityMaster").ToList(); // List <WorkItem> workItems = _unitOfWork.WorkItem.GetAll(c => idList.Contains(c.WorkAreaId), includeProperties: "ActivityMaster").ToList();
vm.project = project; vm.project = project;
@ -522,6 +522,7 @@ namespace MarcoBMS.Services.Controllers
workItems.Add(result); workItems.Add(result);
} }
var activity = await _context.ActivityMasters.ToListAsync(); var activity = await _context.ActivityMasters.ToListAsync();
var category = await _context.WorkCategoryMasters.ToListAsync();
return Ok(ApiResponse<object>.SuccessResponse(workItems, responseMessage, 200)); return Ok(ApiResponse<object>.SuccessResponse(workItems, responseMessage, 200));
} }

View File

@ -11,7 +11,8 @@
"AllowedHeaders": "*" "AllowedHeaders": "*"
}, },
"ConnectionStrings": { "ConnectionStrings": {
"DefaultConnectionString": "Server=localhost;port=3306;User ID=root;Password=root;Database=MarcoBMS2" //"DefaultConnectionString": "Server=localhost;port=3306;User ID=root;Password=root;Database=MarcoBMS2"
"DefaultConnectionString": "Server=147.93.98.152;User ID=devuser;Password=AppUser@123$;Database=MarcoBMS10"
}, },
"MongoDB": { "MongoDB": {
"SerilogDatabaseUrl": "mongodb://localhost:27017/DotNetLogs" "SerilogDatabaseUrl": "mongodb://localhost:27017/DotNetLogs"