diff --git a/Marco.Pms.Model/Dtos/Directory/UpdateBucketDto.cs b/Marco.Pms.Model/Dtos/Directory/UpdateBucketDto.cs new file mode 100644 index 0000000..4428941 --- /dev/null +++ b/Marco.Pms.Model/Dtos/Directory/UpdateBucketDto.cs @@ -0,0 +1,9 @@ +namespace Marco.Pms.Model.Dtos.Directory +{ + public class UpdateBucketDto + { + public Guid Id { get; set; } + public string? Name { get; set; } + public string? Description { get; set; } + } +} diff --git a/Marco.Pms.Services/Controllers/DirectoryController.cs b/Marco.Pms.Services/Controllers/DirectoryController.cs index 2e6db54..9fc7564 100644 --- a/Marco.Pms.Services/Controllers/DirectoryController.cs +++ b/Marco.Pms.Services/Controllers/DirectoryController.cs @@ -242,5 +242,23 @@ namespace Marco.Pms.Services.Controllers } } + + [HttpPut("bucket/{id}")] + public async Task UpdateBucket(Guid id, [FromBody] UpdateBucketDto bucketDto) + { + var response = await _directoryHelper.UpdateBucket(id, bucketDto); + if (response.StatusCode == 200) + { + return Ok(response); + } + else if (response.StatusCode == 404) + { + return NotFound(response); + } + else + { + return BadRequest(response); + } + } } } diff --git a/Marco.Pms.Services/Helpers/DirectoryHelper.cs b/Marco.Pms.Services/Helpers/DirectoryHelper.cs index dc82f01..3bc780b 100644 --- a/Marco.Pms.Services/Helpers/DirectoryHelper.cs +++ b/Marco.Pms.Services/Helpers/DirectoryHelper.cs @@ -933,7 +933,6 @@ namespace Marco.Pms.Services.Helpers _logger.LogInfo("{count} Buckets are fetched by Employee with ID {LoggedInEmployeeId}", bucketVMs.Count, LoggedInEmployee.Id); return ApiResponse.SuccessResponse(bucketVMs, System.String.Format("{0} buckets fetched successfully", bucketVMs.Count), 200); } - public async Task> CreateBucket(CreateBucketDto bucketDto) { Guid tenantId = _userHelper.GetTenantId(); @@ -970,7 +969,37 @@ namespace Marco.Pms.Services.Helpers _logger.LogWarning("Employee with ID {LoggedInEmployeeId} sended empty payload", LoggedInEmployee.Id); return ApiResponse.ErrorResponse("User Send empty Payload", "User Send empty Payload", 400); } + public async Task> UpdateBucket(Guid id, UpdateBucketDto bucketDto) + { + Guid tenantId = _userHelper.GetTenantId(); + var LoggedInEmployee = await _userHelper.GetCurrentEmployeeAsync(); + if (bucketDto != null && id == bucketDto.Id) + { + var bucket = await _context.Buckets.FirstOrDefaultAsync(b => b.Id == bucketDto.Id && b.TenantId == tenantId); + if (bucket == null) + { + _logger.LogWarning("Employee ID {LoggedInEmployeeId} attempted to update a bucket but not found in database.", LoggedInEmployee.Id); + return ApiResponse.ErrorResponse("Bucket not found", "Bucket not found", 404); + } + bucket.Name = bucketDto.Name ?? ""; + bucket.Description = bucketDto.Description ?? ""; + _context.DirectoryUpdateLogs.Add(new DirectoryUpdateLog + { + RefereanceId = bucketDto.Id, + UpdatedById = LoggedInEmployee.Id, + UpdateAt = DateTime.UtcNow + }); + + await _context.SaveChangesAsync(); + + BucketVM bucketVM = bucket.ToBucketVMFromBucket(); + _logger.LogInfo("Employee Id {LoggedInEmployeeId} Updated new bucket {BucketId}", LoggedInEmployee.Id, bucket.Id); + return ApiResponse.SuccessResponse(bucketVM, "Bucket update successFully", 200); + } + _logger.LogWarning("Employee with ID {LoggedInEmployeeId} sended empty payload", LoggedInEmployee.Id); + return ApiResponse.ErrorResponse("User Send empty Payload", "User Send empty Payload", 400); + } private bool Compare(string sentence, string search) { sentence = sentence.Trim().ToLower();