diff --git a/Marco.Pms.Model/Entitlements/StatusMaster.cs b/Marco.Pms.Model/Entitlements/StatusMaster.cs index 4ade4f3..8c983d0 100644 --- a/Marco.Pms.Model/Entitlements/StatusMaster.cs +++ b/Marco.Pms.Model/Entitlements/StatusMaster.cs @@ -1,11 +1,6 @@ -using Microsoft.AspNetCore.Mvc.ModelBinding.Validation; -using System; -using System.Collections.Generic; +using System.ComponentModel; using System.ComponentModel.DataAnnotations.Schema; -using System.ComponentModel; -using System.Linq; -using System.Text; -using System.Threading.Tasks; +using Microsoft.AspNetCore.Mvc.ModelBinding.Validation; namespace Marco.Pms.Model.Entitlements { diff --git a/Marco.Pms.Services/Controllers/DashboardController.cs b/Marco.Pms.Services/Controllers/DashboardController.cs index 97b3db6..8c3f314 100644 --- a/Marco.Pms.Services/Controllers/DashboardController.cs +++ b/Marco.Pms.Services/Controllers/DashboardController.cs @@ -34,14 +34,20 @@ namespace Marco.Pms.Services.Controllers return BadRequest(ApiResponse.ErrorResponse("Invalid starting date.", "Invalid starting date.", 400)); } - if (projectId == null) { projectId = 0; } - + var firstTask = await _context.TaskAllocations.Select(t => new {t.TenantId,t.AssignmentDate}).FirstOrDefaultAsync(t => t.TenantId == tenantId); if (FromDate == null) fromDate = DateTime.UtcNow.Date; + + if (days >= 0) { double negativeDays = 0 - days; toDate = fromDate.AddDays(negativeDays); + + if (firstTask.AssignmentDate.Date >= toDate.Date) + { + toDate = firstTask.AssignmentDate; + } if (projectId == 0) { List tasks = await _context.TaskAllocations.Where(t => t.AssignmentDate.Date <= fromDate.Date && t.AssignmentDate.Date >= toDate.Date && t.TenantId == tenantId).ToListAsync(); @@ -53,20 +59,23 @@ namespace Marco.Pms.Services.Controllers ProjectProgressionVM.ProjectId = projectId; ProjectProgressionVM.ProjectName = ""; var date = fromDate.AddDays(flagDays); - var todayTasks = tasks.Where(t => t.AssignmentDate.Date == date.Date).ToList(); - double plannedTaks = 0; - double completedTasks = 0; - ProjectProgressionVM.Date = date; - - foreach (var task in todayTasks) + if (date >= firstTask.AssignmentDate.Date) { - plannedTaks += task.PlannedTask; - completedTasks += task.CompletedTask; - } - ProjectProgressionVM.PlannedTask = plannedTaks; - ProjectProgressionVM.CompletedTask = completedTasks; + var todayTasks = tasks.Where(t => t.AssignmentDate.Date == date.Date).ToList(); + double plannedTaks = 0; + double completedTasks = 0; + ProjectProgressionVM.Date = date; - projectProgressionVMs.Add(ProjectProgressionVM); + foreach (var task in todayTasks) + { + plannedTaks += task.PlannedTask; + completedTasks += task.CompletedTask; + } + ProjectProgressionVM.PlannedTask = plannedTaks; + ProjectProgressionVM.CompletedTask = completedTasks; + + projectProgressionVMs.Add(ProjectProgressionVM); + } flagDays -= 1; } } @@ -95,20 +104,24 @@ namespace Marco.Pms.Services.Controllers projectProgressionVM.ProjectId = projectId; projectProgressionVM.ProjectName = project.Name; var date = fromDate.AddDays(flagDays); - var todayTasks = tasks.Where(t => t.AssignmentDate.Date == date.Date).ToList(); - double plannedTaks = 0; - double completedTasks = 0; - projectProgressionVM.Date = date; - - foreach (var task in todayTasks) + if (date >= firstTask.AssignmentDate.Date) { - plannedTaks += task.PlannedTask; - completedTasks += task.CompletedTask; - } - projectProgressionVM.PlannedTask = plannedTaks; - projectProgressionVM.CompletedTask = completedTasks; + var todayTasks = tasks.Where(t => t.AssignmentDate.Date == date.Date).ToList(); + double plannedTaks = 0; + double completedTasks = 0; + projectProgressionVM.Date = date; - projectProgressionVMs.Add(projectProgressionVM); + foreach (var task in todayTasks) + { + plannedTaks += task.PlannedTask; + completedTasks += task.CompletedTask; + } + projectProgressionVM.PlannedTask = plannedTaks; + projectProgressionVM.CompletedTask = completedTasks; + + projectProgressionVMs.Add(projectProgressionVM); + } + flagDays -= 1; } } @@ -122,8 +135,8 @@ namespace Marco.Pms.Services.Controllers { var tenantId = _userHelper.GetTenantId(); - var projects = await _context.Projects.Where(p => p.TenantId == tenantId && p.ProjectStatusId != 4).ToListAsync(); - var ongoingProjects = projects.Where(p => p.ProjectStatusId == 1).ToList(); + var projects = await _context.Projects.Where(p => p.TenantId == tenantId).ToListAsync(); + var ongoingProjects = projects.Where(p => p.ProjectStatusId == 1 || p.ProjectStatusId == 2).ToList(); ProjectDashboardVM projectDashboardVM = new ProjectDashboardVM { diff --git a/Marco.Pms.Services/Controllers/TaskController.cs b/Marco.Pms.Services/Controllers/TaskController.cs index 7bdfb22..c478b0c 100644 --- a/Marco.Pms.Services/Controllers/TaskController.cs +++ b/Marco.Pms.Services/Controllers/TaskController.cs @@ -177,7 +177,7 @@ namespace MarcoBMS.Services.Controllers List workItems = await _context.WorkItems.Where(i => idList.Contains(i.WorkAreaId) && i.TenantId == tenantId).Include(i => i.ActivityMaster).ToListAsync(); idList = workItems.Select(i => i.Id).ToList(); - List taskAllocations = await _context.TaskAllocations.Where(t => idList.Contains(t.WorkItemId) && t.AssignmentDate >= fromDate && t.AssignmentDate <= toDate && t.TenantId == tenantId).Include(t => t.WorkItem).Include(t=>t.Employee).ToListAsync(); + List taskAllocations = await _context.TaskAllocations.Where(t => idList.Contains(t.WorkItemId) && t.AssignmentDate.Date >= fromDate.Date && t.AssignmentDate.Date <= toDate.Date && t.TenantId == tenantId).Include(t => t.WorkItem).Include(t=>t.Employee).ToListAsync(); var taskIdList = taskAllocations.Select(t => t.Id).ToList(); List teamMembers = await _context.TaskMembers.Where(t => taskIdList.Contains(t.TaskAllocationId)).Include(t => t.Employee).ToListAsync(); @@ -193,7 +193,10 @@ namespace MarcoBMS.Services.Controllers List team = new List(); foreach (var taskMember in teamMembers) { - team.Add(taskMember.Employee.ToEmployeeVMFromEmployee()); + if(taskMember != null) + { + team.Add(taskMember.Employee.ToEmployeeVMFromEmployee()); + } } List commentVM = new List { }; foreach (var comment in comments) diff --git a/Marco.Pms.Services/Program.cs b/Marco.Pms.Services/Program.cs index 210c496..6f45552 100644 --- a/Marco.Pms.Services/Program.cs +++ b/Marco.Pms.Services/Program.cs @@ -24,16 +24,6 @@ builder.Host.UseSerilog((context, config) => ; // Add services -//builder.Services.AddCors(options => -//{ -// options.AddPolicy("DevCorsPolicy", policy => -// { -// policy.AllowAnyOrigin() -// .AllowAnyMethod() -// .AllowAnyHeader(); -// }); -//}); - var corsSettings = builder.Configuration.GetSection("Cors"); var allowedOrigins = corsSettings.GetValue("AllowedOrigins")?.Split(','); var allowedMethods = corsSettings.GetValue("AllowedMethods")?.Split(','); @@ -50,6 +40,14 @@ builder.Services.AddCors(options => .WithHeaders(allowedHeaders); } }); +}).AddCors(options => +{ + options.AddPolicy("DevCorsPolicy", policy => + { + policy.AllowAnyOrigin() + .AllowAnyMethod() + .AllowAnyHeader(); + }); }); // Add services to the container.