From 364616359336fbda224d109b8373ab05256ca30d Mon Sep 17 00:00:00 2001 From: "ashutosh.nehete" Date: Tue, 8 Jul 2025 12:20:54 +0530 Subject: [PATCH] Implemented the cache in task allocation --- Marco.Pms.CacheHelper/ProjectCache.cs | 4 +--- Marco.Pms.Services/Controllers/ProjectController.cs | 4 ++-- Marco.Pms.Services/Controllers/TaskController.cs | 10 +++++++++- Marco.Pms.Services/Helpers/CacheUpdateHelper.cs | 11 +++++++++++ 4 files changed, 23 insertions(+), 6 deletions(-) diff --git a/Marco.Pms.CacheHelper/ProjectCache.cs b/Marco.Pms.CacheHelper/ProjectCache.cs index 6f5a3d3..23df64c 100644 --- a/Marco.Pms.CacheHelper/ProjectCache.cs +++ b/Marco.Pms.CacheHelper/ProjectCache.cs @@ -26,8 +26,6 @@ namespace Marco.Pms.CacheHelper } public async Task AddProjectDetailsToCache(Project project) { - - //_logger.LogInfo("[AddProjectDetails] Initiated for ProjectId: {ProjectId}", project.Id); var projectDetails = new ProjectMongoDB @@ -544,7 +542,7 @@ namespace Marco.Pms.CacheHelper .FirstOrDefaultAsync(); return workItem; } - public async Task UpdatePlannedAndCompleteWorksInWorkItem(Guid id, double plannedWork = 0, double completedWork = 0, double todaysAssigned = 0) + public async Task UpdatePlannedAndCompleteWorksInWorkItemToCache(Guid id, double plannedWork, double completedWork, double todaysAssigned) { var filter = Builders.Filter.Eq(p => p.Id, id.ToString()); var updates = Builders.Update diff --git a/Marco.Pms.Services/Controllers/ProjectController.cs b/Marco.Pms.Services/Controllers/ProjectController.cs index 3ae76ed..e12d2ad 100644 --- a/Marco.Pms.Services/Controllers/ProjectController.cs +++ b/Marco.Pms.Services/Controllers/ProjectController.cs @@ -29,7 +29,7 @@ namespace MarcoBMS.Services.Controllers private readonly ApplicationDbContext _context; private readonly UserHelper _userHelper; private readonly ILoggingService _logger; - private readonly RolesHelper _rolesHelper; + //private readonly RolesHelper _rolesHelper; private readonly ProjectsHelper _projectsHelper; private readonly IHubContext _signalR; private readonly PermissionServices _permission; @@ -47,7 +47,7 @@ namespace MarcoBMS.Services.Controllers _context = context; _userHelper = userHelper; _logger = logger; - _rolesHelper = rolesHelper; + //_rolesHelper = rolesHelper; _projectsHelper = projectHelper; _signalR = signalR; _cache = cache; diff --git a/Marco.Pms.Services/Controllers/TaskController.cs b/Marco.Pms.Services/Controllers/TaskController.cs index ca24f1a..40d31f8 100644 --- a/Marco.Pms.Services/Controllers/TaskController.cs +++ b/Marco.Pms.Services/Controllers/TaskController.cs @@ -6,6 +6,7 @@ using Marco.Pms.Model.Mapper; using Marco.Pms.Model.Projects; using Marco.Pms.Model.Utilities; using Marco.Pms.Model.ViewModels.Activities; +using Marco.Pms.Services.Helpers; using Marco.Pms.Services.Hubs; using Marco.Pms.Services.Service; using MarcoBMS.Services.Helpers; @@ -33,7 +34,7 @@ namespace MarcoBMS.Services.Controllers private readonly PermissionServices _permissionServices; public TaskController(ApplicationDbContext context, UserHelper userHelper, S3UploadService s3Service, ILoggingService logger, PermissionServices permissionServices, - IHubContext signalR) + IHubContext signalR, CacheUpdateHelper cache) { _context = context; _userHelper = userHelper; @@ -82,6 +83,8 @@ namespace MarcoBMS.Services.Controllers _context.TaskAllocations.Add(taskAllocation); await _context.SaveChangesAsync(); + await _cache.UpdatePlannedAndCompleteWorksInWorkItem(taskAllocation.WorkItemId, todaysAssigned: taskAllocation.PlannedTask); + _logger.LogInfo("Task {TaskId} assigned by Employee {EmployeeId}", taskAllocation.Id, employee.Id); var response = taskAllocation.ToAssignTaskVMFromTaskAllocation(); @@ -255,6 +258,10 @@ namespace MarcoBMS.Services.Controllers } await _context.SaveChangesAsync(); + var selectedWorkAreaId = taskAllocation.WorkItem?.WorkAreaId ?? Guid.Empty; + + await _cache.UpdatePlannedAndCompleteWorksInWorkItem(taskAllocation.WorkItemId, completedWork: taskAllocation.CompletedTask); + await _cache.UpdatePlannedAndCompleteWorksInBuilding(selectedWorkAreaId, completedWork: taskAllocation.CompletedTask); var response = taskAllocation.ToReportTaskVMFromTaskAllocation(); var comments = await _context.TaskComments @@ -675,6 +682,7 @@ namespace MarcoBMS.Services.Controllers /// /// DTO containing task approval details. /// IActionResult indicating success or failure. + [HttpPost("approve")] public async Task ApproveTask(ApproveTaskDto approveTask) { diff --git a/Marco.Pms.Services/Helpers/CacheUpdateHelper.cs b/Marco.Pms.Services/Helpers/CacheUpdateHelper.cs index ecce8ab..03fd397 100644 --- a/Marco.Pms.Services/Helpers/CacheUpdateHelper.cs +++ b/Marco.Pms.Services/Helpers/CacheUpdateHelper.cs @@ -174,6 +174,17 @@ namespace Marco.Pms.Services.Helpers return null; } } + public async Task UpdatePlannedAndCompleteWorksInWorkItem(Guid id, double plannedWork = 0, double completedWork = 0, double todaysAssigned = 0) + { + try + { + var response = await _projectCache.UpdatePlannedAndCompleteWorksInWorkItemToCache(id, plannedWork, completedWork, todaysAssigned); + } + catch (Exception ex) + { + _logger.LogWarning("Error occured while updating planned work, completed work, and today's assigned work in workItems in Cache: {Error}", ex.Message); + } + } // ------------------------------------ Employee Profile Cache ---------------------------------------