diff --git a/Marco.Pms.Services/Controllers/MasterController.cs b/Marco.Pms.Services/Controllers/MasterController.cs index 87b03e2..1d7a9f3 100644 --- a/Marco.Pms.Services/Controllers/MasterController.cs +++ b/Marco.Pms.Services/Controllers/MasterController.cs @@ -580,6 +580,36 @@ namespace Marco.Pms.Services.Controllers return NotFound(ApiResponse.ErrorResponse("Work Category not found", "Work Category not found", 404)); } + [HttpPost("work-category")] + public async Task CreateWorkCategoryMaster(WorkCategoryMasterDto workCategoryMasterDto) + { + Guid tenantId = _userHelper.GetTenantId(); + if (workCategoryMasterDto != null) + { + WorkCategoryMaster? existingWorkCategory = await _context.WorkCategoryMasters.FirstOrDefaultAsync(w => w.Name == workCategoryMasterDto.Name); + if (existingWorkCategory != null) + { + _logger.LogWarning("Work Category of name {WorkCategoryName} already exist", existingWorkCategory.Name); + return Conflict(ApiResponse.ErrorResponse("Work Category already exist", "Work Category already exist", 409)); + } + WorkCategoryMaster? workCategory = workCategoryMasterDto.ToWorkCategoryMasterFromWorkCategoryMasterDto(tenantId); + WorkCategoryMasterVM workCategoryMasterVM = new WorkCategoryMasterVM(); + if (workCategory != null && workCategory.Id == Guid.Empty) + { + + _context.WorkCategoryMasters.Add(workCategory); + await _context.SaveChangesAsync(); + + workCategoryMasterVM = workCategory.ToWorkCategoryMasterVMFromWorkCategoryMaster(); + } + _logger.LogInfo("Work category master {WorkCategoryId} added successfully from tenant {tenantId}", workCategoryMasterVM.Id ?? Guid.Empty, tenantId); + return Ok(ApiResponse.SuccessResponse(workCategoryMasterVM, "Work category master added successfully", 200)); + + } + _logger.LogError("User sent empyt payload"); + return BadRequest(ApiResponse.ErrorResponse("User sent Empty payload", "User sent Empty payload", 400)); + } + } }