From 3d28b2eb97ca0c5ffa44692a5cbf63edb51e5384 Mon Sep 17 00:00:00 2001 From: "ashutosh.nehete" Date: Sat, 3 May 2025 11:55:08 +0530 Subject: [PATCH] Fixed remaining int to Guid conversions --- .../Dtos/Forum/ForumAttachmentDto.cs | 2 +- .../Dtos/Forum/TicketPriorityMasterDto.cs | 2 +- .../Dtos/Forum/TicketStatusMasterDto.cs | 2 +- .../Dtos/Forum/TicketTagMasterDto.cs | 2 +- .../Dtos/Forum/TicketTypeMasterDto.cs | 2 +- Marco.Pms.Model/Dtos/Forum/UpdateTicketDto.cs | 6 ++-- Marco.Pms.Model/Mapper/ForumMapper.cs | 8 ++--- .../Controllers/AuthController.cs | 17 ++++++---- .../Controllers/ForumController.cs | 14 +++++--- .../Controllers/MasterController.cs | 32 +++++++++---------- 10 files changed, 47 insertions(+), 40 deletions(-) diff --git a/Marco.Pms.Model/Dtos/Forum/ForumAttachmentDto.cs b/Marco.Pms.Model/Dtos/Forum/ForumAttachmentDto.cs index bf86c0a..efa7db2 100644 --- a/Marco.Pms.Model/Dtos/Forum/ForumAttachmentDto.cs +++ b/Marco.Pms.Model/Dtos/Forum/ForumAttachmentDto.cs @@ -2,7 +2,7 @@ { public class ForumAttachmentDto { - public Guid TicketId { get; set; } = Guid.Empty; + public Guid? TicketId { get; set; } public Guid? CommentId { get; set; } public string FileName { get; set; } = string.Empty; public string? Base64Data { get; set; } diff --git a/Marco.Pms.Model/Dtos/Forum/TicketPriorityMasterDto.cs b/Marco.Pms.Model/Dtos/Forum/TicketPriorityMasterDto.cs index 80412ec..a87add2 100644 --- a/Marco.Pms.Model/Dtos/Forum/TicketPriorityMasterDto.cs +++ b/Marco.Pms.Model/Dtos/Forum/TicketPriorityMasterDto.cs @@ -2,7 +2,7 @@ { public class TicketPriorityMasterDto { - public Guid Id { get; set; } + public Guid? Id { get; set; } public string Name { get; set; } = string.Empty; // e.g., Low, Medium, High, Critical public int Level { get; set; } // 1 = Low, 2 = Medium... public string? ColorCode { get; set; } diff --git a/Marco.Pms.Model/Dtos/Forum/TicketStatusMasterDto.cs b/Marco.Pms.Model/Dtos/Forum/TicketStatusMasterDto.cs index 90657d4..46074b4 100644 --- a/Marco.Pms.Model/Dtos/Forum/TicketStatusMasterDto.cs +++ b/Marco.Pms.Model/Dtos/Forum/TicketStatusMasterDto.cs @@ -2,7 +2,7 @@ { public class TicketStatusMasterDto { - public Guid Id { get; set; } + public Guid? Id { get; set; } public string Name { get; set; } = string.Empty; // e.g., "Open", "In Progress" public string? Description { get; set; } public string? ColorCode { get; set; } // e.g., "#FF0000" diff --git a/Marco.Pms.Model/Dtos/Forum/TicketTagMasterDto.cs b/Marco.Pms.Model/Dtos/Forum/TicketTagMasterDto.cs index b2c3e27..2fd7bac 100644 --- a/Marco.Pms.Model/Dtos/Forum/TicketTagMasterDto.cs +++ b/Marco.Pms.Model/Dtos/Forum/TicketTagMasterDto.cs @@ -2,7 +2,7 @@ { public class TicketTagMasterDto { - public Guid Id { get; set; } + public Guid? Id { get; set; } public string Name { get; set; } = string.Empty; // e.g., "Bug", "UI", "Urgent" public string? ColorCode { get; set; } public bool IsDefault { get; set; } diff --git a/Marco.Pms.Model/Dtos/Forum/TicketTypeMasterDto.cs b/Marco.Pms.Model/Dtos/Forum/TicketTypeMasterDto.cs index 5752bae..cdf1784 100644 --- a/Marco.Pms.Model/Dtos/Forum/TicketTypeMasterDto.cs +++ b/Marco.Pms.Model/Dtos/Forum/TicketTypeMasterDto.cs @@ -2,7 +2,7 @@ { public class TicketTypeMasterDto { - public Guid Id { get; set; } + public Guid? Id { get; set; } public string Name { get; set; } = string.Empty; // e.g., "Quality Issue" public string? Description { get; set; } public bool IsDefault { get; set; } // true for system defaults diff --git a/Marco.Pms.Model/Dtos/Forum/UpdateTicketDto.cs b/Marco.Pms.Model/Dtos/Forum/UpdateTicketDto.cs index 66fa1e8..86f95b4 100644 --- a/Marco.Pms.Model/Dtos/Forum/UpdateTicketDto.cs +++ b/Marco.Pms.Model/Dtos/Forum/UpdateTicketDto.cs @@ -7,10 +7,10 @@ public string Description { get; set; } = string.Empty; public Guid StatusId { get; set; } public Guid TypeId { get; set; } // QualityIssue, HelpDesk, Feedback - public int CreatedById { get; set; } + public Guid CreatedById { get; set; } public DateTime CreatedAt { get; set; } - public int LinkedProjectId { get; set; } - public int? LinkedActivityId { get; set; } // task or project ID + public Guid? LinkedProjectId { get; set; } + public Guid? LinkedActivityId { get; set; } // task or project ID public ICollection? Attachments { get; set; } public Guid PriorityId { get; set; } public ICollection? TagIds { get; set; } diff --git a/Marco.Pms.Model/Mapper/ForumMapper.cs b/Marco.Pms.Model/Mapper/ForumMapper.cs index 9978786..a79f05c 100644 --- a/Marco.Pms.Model/Mapper/ForumMapper.cs +++ b/Marco.Pms.Model/Mapper/ForumMapper.cs @@ -172,7 +172,7 @@ namespace Marco.Pms.Model.Mapper { return new TicketStatusMaster { - Id = statusMasterDto.Id, + Id = statusMasterDto.Id != null ? statusMasterDto.Id.Value : Guid.Empty, Name = statusMasterDto.Name, Description = statusMasterDto.Description, ColorCode = statusMasterDto.ColorCode, @@ -196,7 +196,7 @@ namespace Marco.Pms.Model.Mapper { return new TicketPriorityMaster { - Id = priorityMasterDto.Id, + Id = priorityMasterDto.Id != null ? priorityMasterDto.Id.Value : Guid.Empty, Name = priorityMasterDto.Name, Level = priorityMasterDto.Level, ColorCode = priorityMasterDto.ColorCode, @@ -218,7 +218,7 @@ namespace Marco.Pms.Model.Mapper { return new TicketTypeMaster { - Id = typeMasterDto.Id, + Id = typeMasterDto.Id != null ? typeMasterDto.Id.Value : Guid.Empty, Name = typeMasterDto.Name, Description = typeMasterDto.Description, IsDefault = typeMasterDto.IsDefault, @@ -239,7 +239,7 @@ namespace Marco.Pms.Model.Mapper { return new TicketTagMaster { - Id = tagMasterDto.Id, + Id = tagMasterDto.Id != null ? tagMasterDto.Id.Value : Guid.Empty, Name = tagMasterDto.Name, ColorCode = tagMasterDto.ColorCode, IsDefault = tagMasterDto.IsDefault, diff --git a/Marco.Pms.Services/Controllers/AuthController.cs b/Marco.Pms.Services/Controllers/AuthController.cs index 32e3305..a1e470f 100644 --- a/Marco.Pms.Services/Controllers/AuthController.cs +++ b/Marco.Pms.Services/Controllers/AuthController.cs @@ -43,7 +43,7 @@ namespace MarcoBMS.Services.Controllers { var user = await _context.ApplicationUsers.FirstOrDefaultAsync(u => u.Email == loginDto.Username || u.PhoneNumber == loginDto.Username); - if (user != null && await _userManager.CheckPasswordAsync(user, loginDto.Password ?? string.Empty)) + if (user != null) { if (!user.IsActive) { @@ -53,15 +53,18 @@ namespace MarcoBMS.Services.Controllers { return BadRequest(ApiResponse.ErrorResponse("Your email is not verified, Please verify your email", "Your email is not verified, Please verify your email", 400)); } - Employee emp = await _employeeHelper.GetEmployeeByApplicationUserID(user.Id); - //var refreshToken = GenerateRefreshToken(); - if (user.UserName == null) return NotFound(ApiResponse.ErrorResponse("UserName Not found", "UserName Not found", 404)); ; + if (await _userManager.CheckPasswordAsync(user, loginDto.Password ?? string.Empty)) + { + Employee emp = await _employeeHelper.GetEmployeeByApplicationUserID(user.Id); + //var refreshToken = GenerateRefreshToken(); + if (user.UserName == null) return NotFound(ApiResponse.ErrorResponse("UserName Not found", "UserName Not found", 404)); ; - var token = _refreshTokenService.GenerateJwtToken(user.UserName, emp.TenantId, _jwtSettings); + var token = _refreshTokenService.GenerateJwtToken(user.UserName, emp.TenantId, _jwtSettings); - var refreshToken = await _refreshTokenService.CreateRefreshToken(user.Id, emp.TenantId.ToString(), _jwtSettings); + var refreshToken = await _refreshTokenService.CreateRefreshToken(user.Id, emp.TenantId.ToString(), _jwtSettings); - return Ok(ApiResponse.SuccessResponse(new { token = token, refreshToken = refreshToken }, "User logged in successfully.", 200)); + return Ok(ApiResponse.SuccessResponse(new { token = token, refreshToken = refreshToken }, "User logged in successfully.", 200)); + } } diff --git a/Marco.Pms.Services/Controllers/ForumController.cs b/Marco.Pms.Services/Controllers/ForumController.cs index 130bc0d..e55c58a 100644 --- a/Marco.Pms.Services/Controllers/ForumController.cs +++ b/Marco.Pms.Services/Controllers/ForumController.cs @@ -291,7 +291,7 @@ namespace Marco.Pms.Services.Controllers ticketVM.Attachments = ticketAttachmentVMs; Project project = await _context.Projects.FirstOrDefaultAsync(p => p.Id == ticketForum.LinkedProjectId) ?? new Project(); ticketVM.ProjectName = project.Name; - if (updateTicketDto.LinkedActivityId != null && updateTicketDto.LinkedActivityId != 0) + if (updateTicketDto.LinkedActivityId != null && updateTicketDto.LinkedActivityId != null) { WorkItem workItem = await _context.WorkItems.Include(w => w.ActivityMaster).FirstOrDefaultAsync(w => w.Id == ticketForum.LinkedActivityId) ?? new WorkItem(); if (workItem.ActivityMaster != null) @@ -357,7 +357,7 @@ namespace Marco.Pms.Services.Controllers _context.TicketAttachments.AddRange(attachments); await _context.SaveChangesAsync(); } - Employee employee = await _context.Employees.FirstOrDefaultAsync(e => e.ApplicationUserId == addCommentDto.AuthorId.ToString()) ?? new Employee(); + Employee employee = await _context.Employees.FirstOrDefaultAsync(e => e.Id == addCommentDto.AuthorId) ?? new Employee(); TicketCommentVM commentVM = comment.ToTicketCommentVMFromTicketComment(employee); List attachmentVMs = new List(); @@ -447,7 +447,7 @@ namespace Marco.Pms.Services.Controllers } await _context.SaveChangesAsync(); - Employee employee = await _context.Employees.FirstOrDefaultAsync(e => e.ApplicationUserId == existingComment.AuthorId.ToString()) ?? new Employee(); + Employee employee = await _context.Employees.FirstOrDefaultAsync(e => e.Id == existingComment.AuthorId) ?? new Employee(); TicketCommentVM commentVM = updateComment.ToTicketCommentVMFromTicketComment(employee); List attachmentVMs = new List(); @@ -499,14 +499,18 @@ namespace Marco.Pms.Services.Controllers _logger.LogError("Base64 data is missing"); return BadRequest(ApiResponse.ErrorResponse("Base64 data is missing", "Base64 data is missing", 400)); } - + if (forumAttachmentDto.TicketId == null) + { + _logger.LogError("ticket ID is missing"); + return BadRequest(ApiResponse.ErrorResponse("ticket ID is missing", "ticket ID is missing", 400)); + } var objectKey = await _s3Service.UploadFileAsync(forumAttachmentDto.Base64Data, tenantId, "forum"); Document document = forumAttachmentDto.ToDocumentFromForumAttachmentDto(objectKey, objectKey, forumAttachmentDto.SentAt, tenantId); _context.Documents.Add(document); await _context.SaveChangesAsync(); - attachment = forumAttachmentDto.ToTicketAttachmentFromForumAttachmentDto(forumAttachmentDto.TicketId, document.Id, forumAttachmentDto.CommentId); + attachment = forumAttachmentDto.ToTicketAttachmentFromForumAttachmentDto(forumAttachmentDto.TicketId != null ? forumAttachmentDto.TicketId.Value : Guid.Empty, document.Id, forumAttachmentDto.CommentId); _context.TicketAttachments.Add(attachment); await _context.SaveChangesAsync(); diff --git a/Marco.Pms.Services/Controllers/MasterController.cs b/Marco.Pms.Services/Controllers/MasterController.cs index 26ceb59..1d482c4 100644 --- a/Marco.Pms.Services/Controllers/MasterController.cs +++ b/Marco.Pms.Services/Controllers/MasterController.cs @@ -260,8 +260,8 @@ namespace Marco.Pms.Services.Controllers await _context.SaveChangesAsync(); TicketStatusVM statusVM = statusMaster.ToTicketStatusVMFromTicketStatusMaster(); - _logger.LogInfo("Ticket Status master {TicketStatusId} updated successfully from tenant {tenantId}", statusMaster.Id, tenantId); - return Ok(ApiResponse.SuccessResponse(statusVM, "Ticket Status master updated successfully", 200)); + _logger.LogInfo("Ticket Status master {TicketStatusId} added successfully from tenant {tenantId}", statusMaster.Id, tenantId); + return Ok(ApiResponse.SuccessResponse(statusVM, "Ticket Status master added successfully", 200)); } _logger.LogError("User sent empyt payload"); return BadRequest(ApiResponse.ErrorResponse("Sent Empty payload", "Sent Empty payload", 400)); @@ -278,8 +278,8 @@ namespace Marco.Pms.Services.Controllers await _context.SaveChangesAsync(); TicketTypeVM typeVM = typeMaster.ToTicketTypeVMFromTicketTypeMaster(); - _logger.LogInfo("Ticket Type master {TicketTypeId} updated successfully from tenant {tenantId}", typeMaster.Id, tenantId); - return Ok(ApiResponse.SuccessResponse(typeVM, "Ticket type master updated successfully", 200)); + _logger.LogInfo("Ticket Type master {TicketTypeId} added successfully from tenant {tenantId}", typeMaster.Id, tenantId); + return Ok(ApiResponse.SuccessResponse(typeVM, "Ticket type master added successfully", 200)); } _logger.LogError("User sent empyt payload"); @@ -298,8 +298,8 @@ namespace Marco.Pms.Services.Controllers await _context.SaveChangesAsync(); TicketPriorityVM typeVM = typeMaster.ToTicketPriorityVMFromTicketPriorityMaster(); - _logger.LogInfo("Ticket Priority master {TicketPriorityId} updated successfully from tenant {tenantId}", typeMaster.Id, tenantId); - return Ok(ApiResponse.SuccessResponse(typeVM, "Ticket Priority master updated successfully", 200)); + _logger.LogInfo("Ticket Priority master {TicketPriorityId} added successfully from tenant {tenantId}", typeMaster.Id, tenantId); + return Ok(ApiResponse.SuccessResponse(typeVM, "Ticket Priority master added successfully", 200)); } _logger.LogError("User sent empyt payload"); @@ -317,8 +317,8 @@ namespace Marco.Pms.Services.Controllers await _context.SaveChangesAsync(); TicketTagVM typeVM = tagMaster.ToTicketTagVMFromTicketTagMaster(); - _logger.LogInfo("Ticket Tag master {TicketTypeId} updated successfully from tenant {tenantId}", tagMaster.Id, tenantId); - return Ok(ApiResponse.SuccessResponse(typeVM, "Ticket tag master updated successfully", 200)); + _logger.LogInfo("Ticket Tag master {TicketTypeId} added successfully from tenant {tenantId}", tagMaster.Id, tenantId); + return Ok(ApiResponse.SuccessResponse(typeVM, "Ticket tag master added successfully", 200)); } _logger.LogError("User sent empyt payload"); @@ -330,7 +330,7 @@ namespace Marco.Pms.Services.Controllers Guid tenantId = _userHelper.GetTenantId(); if (statusMasterDto != null) { - TicketStatusMaster? statusMaster = await _context.TicketStatusMasters.FirstOrDefaultAsync(s => s.TenantId == tenantId && s.Id == statusMasterDto.Id); + TicketStatusMaster? statusMaster = await _context.TicketStatusMasters.AsNoTracking().FirstOrDefaultAsync(s => s.TenantId == tenantId && s.Id == statusMasterDto.Id); if (statusMaster != null) { statusMaster = statusMasterDto.ToTicketStatusMasterFromTicketStatusMasterDto(tenantId); @@ -341,7 +341,7 @@ namespace Marco.Pms.Services.Controllers _logger.LogInfo("Ticket Status master {TicketStatusId} updated successfully from tenant {tenantId}", statusMaster.Id, tenantId); return Ok(ApiResponse.SuccessResponse(statusVM, "Ticket Status master updated successfully", 200)); } - _logger.LogError("Ticket Status master {TicketStatusId} not found in database", statusMasterDto.Id); + _logger.LogError("Ticket Status master {TicketStatusId} not found in database", statusMasterDto.Id != null ? statusMasterDto.Id.Value : Guid.Empty); return NotFound(ApiResponse.ErrorResponse("Ticket Status master not found", "Ticket Status master not found", 404)); } _logger.LogError("User sent empyt payload"); @@ -354,7 +354,7 @@ namespace Marco.Pms.Services.Controllers Guid tenantId = _userHelper.GetTenantId(); if (typeMasterDto != null) { - TicketTypeMaster? typeMaster = await _context.TicketTypeMasters.FirstOrDefaultAsync(s => s.TenantId == tenantId && s.Id == typeMasterDto.Id); + TicketTypeMaster? typeMaster = await _context.TicketTypeMasters.AsNoTracking().FirstOrDefaultAsync(s => s.TenantId == tenantId && s.Id == typeMasterDto.Id); if (typeMaster != null) { typeMaster = typeMasterDto.ToTicketTypeMasterFromTicketTypeMasterDto(tenantId); @@ -365,7 +365,7 @@ namespace Marco.Pms.Services.Controllers _logger.LogInfo("Ticket Type master {TicketTypeId} updated successfully from tenant {tenantId}", typeMaster.Id, tenantId); return Ok(ApiResponse.SuccessResponse(typeVM, "Ticket type master updated successfully", 200)); } - _logger.LogError("Ticket type master {TicketTypeId} not found in database", typeMasterDto.Id); + _logger.LogError("Ticket type master {TicketTypeId} not found in database", typeMasterDto.Id != null ? typeMasterDto.Id.Value : Guid.Empty); return NotFound(ApiResponse.ErrorResponse("Ticket type master not found", "Ticket type master not found", 404)); } _logger.LogError("User sent empyt payload"); @@ -378,7 +378,7 @@ namespace Marco.Pms.Services.Controllers Guid tenantId = _userHelper.GetTenantId(); if (priorityMasterDto != null) { - TicketPriorityMaster? typeMaster = await _context.TicketPriorityMasters.FirstOrDefaultAsync(s => s.TenantId == tenantId && s.Id == priorityMasterDto.Id); + TicketPriorityMaster? typeMaster = await _context.TicketPriorityMasters.AsNoTracking().FirstOrDefaultAsync(s => s.TenantId == tenantId && s.Id == priorityMasterDto.Id); if (typeMaster != null) { typeMaster = priorityMasterDto.ToTicketPriorityMasterFromTicketPriorityMasterDto(tenantId); @@ -389,7 +389,7 @@ namespace Marco.Pms.Services.Controllers _logger.LogInfo("Ticket Priority master {TicketPriorityId} updated successfully from tenant {tenantId}", typeMaster.Id, tenantId); return Ok(ApiResponse.SuccessResponse(typeVM, "Ticket Priority master updated successfully", 200)); } - _logger.LogError("Ticket Priority master {TicketPriorityId} not found in database", priorityMasterDto.Id); + _logger.LogError("Ticket Priority master {TicketPriorityId} not found in database", priorityMasterDto.Id != null ? priorityMasterDto.Id.Value : Guid.Empty); return NotFound(ApiResponse.ErrorResponse("Ticket Priority master not found", "Ticket Priority master not found", 404)); } _logger.LogError("User sent empyt payload"); @@ -402,7 +402,7 @@ namespace Marco.Pms.Services.Controllers var tenantId = _userHelper.GetTenantId(); if (tagMasterDto != null) { - TicketTagMaster? tagMaster = await _context.TicketTagMasters.FirstOrDefaultAsync(s => s.TenantId == tenantId && s.Id == tagMasterDto.Id); + TicketTagMaster? tagMaster = await _context.TicketTagMasters.AsNoTracking().FirstOrDefaultAsync(s => s.TenantId == tenantId && s.Id == tagMasterDto.Id); if (tagMaster != null) { tagMaster = tagMasterDto.ToTicketTagMasterFromTicketTagMasterDto(tenantId); @@ -413,7 +413,7 @@ namespace Marco.Pms.Services.Controllers _logger.LogInfo("Ticket Tag master {TicketTypeId} updated successfully from tenant {tenantId}", tagMaster.Id, tenantId); return Ok(ApiResponse.SuccessResponse(typeVM, "Ticket tag master updated successfully", 200)); } - _logger.LogError("Ticket tag master {TicketTypeId} not found in database", tagMasterDto.Id); + _logger.LogError("Ticket tag master {TicketTypeId} not found in database", tagMasterDto.Id != null ? tagMasterDto.Id.Value : Guid.Empty); return NotFound(ApiResponse.ErrorResponse("Ticket tag master not found", "Ticket tag master not found", 404)); } _logger.LogError("User sent empyt payload");