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 6b55c3f..4a89e19 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.Service; using MarcoBMS.Services.Helpers; using MarcoBMS.Services.Service; @@ -28,16 +29,18 @@ namespace MarcoBMS.Services.Controllers private readonly S3UploadService _s3Service; private readonly ILoggingService _logger; private readonly PermissionServices _permissionServices; + private readonly CacheUpdateHelper _cache; private readonly Guid Approve_Task; private readonly Guid Assign_Report_Task; - public TaskController(ApplicationDbContext context, UserHelper userHelper, S3UploadService s3Service, ILoggingService logger, PermissionServices permissionServices) + public TaskController(ApplicationDbContext context, UserHelper userHelper, S3UploadService s3Service, ILoggingService logger, PermissionServices permissionServices, CacheUpdateHelper cache) { _context = context; _userHelper = userHelper; _s3Service = s3Service; _logger = logger; _permissionServices = permissionServices; + _cache = cache; Approve_Task = Guid.Parse("db4e40c5-2ba9-4b6d-b8a6-a16a250ff99c"); Assign_Report_Task = Guid.Parse("6a32379b-8b3f-49a6-8c48-4b7ac1b55dc2"); } @@ -81,6 +84,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(); @@ -245,6 +250,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 @@ -653,6 +662,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 ---------------------------------------