diff --git a/Marco.Pms.Services/Controllers/MasterController.cs b/Marco.Pms.Services/Controllers/MasterController.cs index 1d482c4..37581b4 100644 --- a/Marco.Pms.Services/Controllers/MasterController.cs +++ b/Marco.Pms.Services/Controllers/MasterController.cs @@ -1,12 +1,14 @@ using Marco.Pms.DataAccess.Data; using Marco.Pms.Model.Dtos.Activities; -using Marco.Pms.Model.Dtos.Forum; +using Marco.Pms.Model.Dtos.Master; using Marco.Pms.Model.Entitlements; using Marco.Pms.Model.Forum; using Marco.Pms.Model.Mapper; +using Marco.Pms.Model.Master; using Marco.Pms.Model.Utilities; using Marco.Pms.Model.ViewModels.Activities; using Marco.Pms.Model.ViewModels.Forum; +using Marco.Pms.Model.ViewModels.Master; using MarcoBMS.Services.Helpers; using MarcoBMS.Services.Service; using Microsoft.AspNetCore.Authorization; @@ -29,6 +31,8 @@ namespace Marco.Pms.Services.Controllers _userHelper = userHelper; _logger = logger; } + + // -------------------------------- Activity -------------------------------- [HttpGet] [Route("activities")] public async Task GetActivitiesMaster() @@ -178,6 +182,9 @@ namespace Marco.Pms.Services.Controllers _logger.LogInfo("Activity Deleted Successfully from tenant {tenantId}", tenantId); return Ok(ApiResponse.SuccessResponse(new { }, "Activity Deleted Successfully", 200)); } + + // -------------------------------- Industry -------------------------------- + [HttpGet] [Route("industries")] public async Task GetIndustries() @@ -189,6 +196,8 @@ namespace Marco.Pms.Services.Controllers return Ok(ApiResponse.SuccessResponse(industries, System.String.Format("{0} industry records fetched successfully", industries.Count), 200)); } + // -------------------------------- Ticket Status -------------------------------- + [HttpGet("ticket-status")] public async Task GetTicketStatusMaster() { @@ -204,51 +213,6 @@ namespace Marco.Pms.Services.Controllers return Ok(ApiResponse.SuccessResponse(statusVMs, System.String.Format("{0} Ticket Status records fetched successfully", statusVMs.Count), 200)); } - [HttpGet("ticket-types")] - public async Task GetTicketTypeMaster() - { - Guid tenantId = _userHelper.GetTenantId(); - List typeVMs = new List(); - List typeMasters = await _context.TicketTypeMasters.Where(s => s.TenantId == tenantId).ToListAsync(); - foreach (var typeMaster in typeMasters) - { - typeVMs.Add(typeMaster.ToTicketTypeVMFromTicketTypeMaster()); - } - - _logger.LogInfo("{count} Ticket Type records fetched successfully from tenant {tenantId}", typeVMs.Count, tenantId); - return Ok(ApiResponse.SuccessResponse(typeVMs, System.String.Format("{0} Ticket Type records fetched successfully", typeVMs.Count), 200)); - } - - [HttpGet("ticket-priorities")] - public async Task GetTicketPriorityMaster() - { - Guid tenantId = _userHelper.GetTenantId(); - List priorityVMs = new List(); - List priorityMasters = await _context.TicketPriorityMasters.Where(s => s.TenantId == tenantId).ToListAsync(); - foreach (var priorityMaster in priorityMasters) - { - priorityVMs.Add(priorityMaster.ToTicketPriorityVMFromTicketPriorityMaster()); - } - - _logger.LogInfo("{count} Ticket Priority records fetched successfully from tenant {tenantId}", priorityVMs.Count, tenantId); - return Ok(ApiResponse.SuccessResponse(priorityVMs, System.String.Format("{0} Ticket Priority records fetched successfully", priorityVMs.Count), 200)); - } - - [HttpGet("ticket-tags")] - public async Task GetTicketTagMaster() - { - Guid tenantId = _userHelper.GetTenantId(); - List tagVMs = new List(); - List tagMasters = await _context.TicketTagMasters.Where(s => s.TenantId == tenantId).ToListAsync(); - foreach (var tagMaster in tagMasters) - { - tagVMs.Add(tagMaster.ToTicketTagVMFromTicketTagMaster()); - } - - _logger.LogInfo("{count} Ticket Tag records fetched successfully from tenant {tenantId}", tagVMs.Count, tenantId); - return Ok(ApiResponse.SuccessResponse(tagVMs, System.String.Format("{0} Ticket Tag records fetched successfully", tagVMs.Count), 200)); - } - [HttpPost("ticket-status")] public async Task CreateTicketStatusMaster(TicketStatusMasterDto statusMasterDto) { @@ -267,63 +231,6 @@ namespace Marco.Pms.Services.Controllers return BadRequest(ApiResponse.ErrorResponse("Sent Empty payload", "Sent Empty payload", 400)); } - [HttpPost("ticket-types")] - public async Task CreateTicketTypeMaster(TicketTypeMasterDto typeMasterDto) - { - Guid tenantId = _userHelper.GetTenantId(); - if (typeMasterDto != null) - { - TicketTypeMaster? typeMaster = typeMasterDto.ToTicketTypeMasterFromTicketTypeMasterDto(tenantId); - _context.TicketTypeMasters.Update(typeMaster); - await _context.SaveChangesAsync(); - - TicketTypeVM typeVM = typeMaster.ToTicketTypeVMFromTicketTypeMaster(); - _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"); - return BadRequest(ApiResponse.ErrorResponse("User sent Empty payload", "User sent Empty payload", 400)); - } - - [HttpPost("ticket-priorities")] - public async Task CreateTicketPriorityMaster(TicketPriorityMasterDto priorityMasterDto) - { - - Guid tenantId = _userHelper.GetTenantId(); - if (priorityMasterDto != null) - { - TicketPriorityMaster? typeMaster = priorityMasterDto.ToTicketPriorityMasterFromTicketPriorityMasterDto(tenantId); - _context.TicketPriorityMasters.Update(typeMaster); - await _context.SaveChangesAsync(); - - TicketPriorityVM typeVM = typeMaster.ToTicketPriorityVMFromTicketPriorityMaster(); - _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"); - return BadRequest(ApiResponse.ErrorResponse("User sent Empty payload", "User sent Empty payload", 400)); - } - - [HttpPost("ticket-tags")] - public async Task CreateTicketTagMaster(TicketTagMasterDto tagMasterDto) - { - Guid tenantId = _userHelper.GetTenantId(); - if (tagMasterDto != null) - { - TicketTagMaster? tagMaster = tagMasterDto.ToTicketTagMasterFromTicketTagMasterDto(tenantId); - _context.TicketTagMasters.Update(tagMaster); - await _context.SaveChangesAsync(); - - TicketTagVM typeVM = tagMaster.ToTicketTagVMFromTicketTagMaster(); - _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"); - return BadRequest(ApiResponse.ErrorResponse("User sent Empty payload", "User sent Empty payload", 400)); - } [HttpPost("ticket-status/edit")] public async Task UpdateTicketStatusMaster(TicketStatusMasterDto statusMasterDto) { @@ -348,78 +255,6 @@ namespace Marco.Pms.Services.Controllers return BadRequest(ApiResponse.ErrorResponse("Sent Empty payload", "Sent Empty payload", 400)); } - [HttpPost("ticket-types/edit")] - public async Task UpdateTicketTypeMaster(TicketTypeMasterDto typeMasterDto) - { - Guid tenantId = _userHelper.GetTenantId(); - if (typeMasterDto != null) - { - TicketTypeMaster? typeMaster = await _context.TicketTypeMasters.AsNoTracking().FirstOrDefaultAsync(s => s.TenantId == tenantId && s.Id == typeMasterDto.Id); - if (typeMaster != null) - { - typeMaster = typeMasterDto.ToTicketTypeMasterFromTicketTypeMasterDto(tenantId); - _context.TicketTypeMasters.Update(typeMaster); - 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.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"); - return BadRequest(ApiResponse.ErrorResponse("User sent Empty payload", "User sent Empty payload", 400)); - } - - [HttpPost("ticket-priorities/edit")] - public async Task UpdateTicketPriorityMaster(TicketPriorityMasterDto priorityMasterDto) - { - Guid tenantId = _userHelper.GetTenantId(); - if (priorityMasterDto != null) - { - TicketPriorityMaster? typeMaster = await _context.TicketPriorityMasters.AsNoTracking().FirstOrDefaultAsync(s => s.TenantId == tenantId && s.Id == priorityMasterDto.Id); - if (typeMaster != null) - { - typeMaster = priorityMasterDto.ToTicketPriorityMasterFromTicketPriorityMasterDto(tenantId); - _context.TicketPriorityMasters.Update(typeMaster); - 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.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"); - return BadRequest(ApiResponse.ErrorResponse("User sent Empty payload", "User sent Empty payload", 400)); - } - - [HttpPost("ticket-tags/edit")] - public async Task UpdateTicketTagMaster(TicketTagMasterDto tagMasterDto) - { - var tenantId = _userHelper.GetTenantId(); - if (tagMasterDto != null) - { - TicketTagMaster? tagMaster = await _context.TicketTagMasters.AsNoTracking().FirstOrDefaultAsync(s => s.TenantId == tenantId && s.Id == tagMasterDto.Id); - if (tagMaster != null) - { - tagMaster = tagMasterDto.ToTicketTagMasterFromTicketTagMasterDto(tenantId); - _context.TicketTagMasters.Update(tagMaster); - 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.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"); - return BadRequest(ApiResponse.ErrorResponse("User sent Empty payload", "User sent Empty payload", 400)); - } - [HttpDelete("ticket-status/{id}")] public async Task DeleteTicketStatusMaster(Guid id) { @@ -448,6 +283,66 @@ namespace Marco.Pms.Services.Controllers } } + // -------------------------------- Ticket Type -------------------------------- + + [HttpGet("ticket-types")] + public async Task GetTicketTypeMaster() + { + Guid tenantId = _userHelper.GetTenantId(); + List typeVMs = new List(); + List typeMasters = await _context.TicketTypeMasters.Where(s => s.TenantId == tenantId).ToListAsync(); + foreach (var typeMaster in typeMasters) + { + typeVMs.Add(typeMaster.ToTicketTypeVMFromTicketTypeMaster()); + } + + _logger.LogInfo("{count} Ticket Type records fetched successfully from tenant {tenantId}", typeVMs.Count, tenantId); + return Ok(ApiResponse.SuccessResponse(typeVMs, System.String.Format("{0} Ticket Type records fetched successfully", typeVMs.Count), 200)); + } + + [HttpPost("ticket-types")] + public async Task CreateTicketTypeMaster(TicketTypeMasterDto typeMasterDto) + { + Guid tenantId = _userHelper.GetTenantId(); + if (typeMasterDto != null) + { + TicketTypeMaster? typeMaster = typeMasterDto.ToTicketTypeMasterFromTicketTypeMasterDto(tenantId); + _context.TicketTypeMasters.Add(typeMaster); + await _context.SaveChangesAsync(); + + TicketTypeVM typeVM = typeMaster.ToTicketTypeVMFromTicketTypeMaster(); + _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"); + return BadRequest(ApiResponse.ErrorResponse("User sent Empty payload", "User sent Empty payload", 400)); + } + + [HttpPost("ticket-types/edit")] + public async Task UpdateTicketTypeMaster(TicketTypeMasterDto typeMasterDto) + { + Guid tenantId = _userHelper.GetTenantId(); + if (typeMasterDto != null) + { + TicketTypeMaster? typeMaster = await _context.TicketTypeMasters.AsNoTracking().FirstOrDefaultAsync(s => s.TenantId == tenantId && s.Id == typeMasterDto.Id); + if (typeMaster != null) + { + typeMaster = typeMasterDto.ToTicketTypeMasterFromTicketTypeMasterDto(tenantId); + _context.TicketTypeMasters.Update(typeMaster); + 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.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"); + return BadRequest(ApiResponse.ErrorResponse("User sent Empty payload", "User sent Empty payload", 400)); + } + [HttpDelete("ticket-types/{id}")] public async Task DeleteTicketTypeMaster(Guid id) { @@ -476,6 +371,66 @@ namespace Marco.Pms.Services.Controllers } } + // -------------------------------- Ticket Priority -------------------------------- + + [HttpGet("ticket-priorities")] + public async Task GetTicketPriorityMaster() + { + Guid tenantId = _userHelper.GetTenantId(); + List priorityVMs = new List(); + List priorityMasters = await _context.TicketPriorityMasters.Where(s => s.TenantId == tenantId).ToListAsync(); + foreach (var priorityMaster in priorityMasters) + { + priorityVMs.Add(priorityMaster.ToTicketPriorityVMFromTicketPriorityMaster()); + } + + _logger.LogInfo("{count} Ticket Priority records fetched successfully from tenant {tenantId}", priorityVMs.Count, tenantId); + return Ok(ApiResponse.SuccessResponse(priorityVMs, System.String.Format("{0} Ticket Priority records fetched successfully", priorityVMs.Count), 200)); + } + + [HttpPost("ticket-priorities")] + public async Task CreateTicketPriorityMaster(TicketPriorityMasterDto priorityMasterDto) + { + + Guid tenantId = _userHelper.GetTenantId(); + if (priorityMasterDto != null) + { + TicketPriorityMaster? typeMaster = priorityMasterDto.ToTicketPriorityMasterFromTicketPriorityMasterDto(tenantId); + _context.TicketPriorityMasters.Add(typeMaster); + await _context.SaveChangesAsync(); + + TicketPriorityVM typeVM = typeMaster.ToTicketPriorityVMFromTicketPriorityMaster(); + _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"); + return BadRequest(ApiResponse.ErrorResponse("User sent Empty payload", "User sent Empty payload", 400)); + } + [HttpPost("ticket-priorities/edit")] + public async Task UpdateTicketPriorityMaster(TicketPriorityMasterDto priorityMasterDto) + { + Guid tenantId = _userHelper.GetTenantId(); + if (priorityMasterDto != null) + { + TicketPriorityMaster? typeMaster = await _context.TicketPriorityMasters.AsNoTracking().FirstOrDefaultAsync(s => s.TenantId == tenantId && s.Id == priorityMasterDto.Id); + if (typeMaster != null) + { + typeMaster = priorityMasterDto.ToTicketPriorityMasterFromTicketPriorityMasterDto(tenantId); + _context.TicketPriorityMasters.Update(typeMaster); + 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.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"); + return BadRequest(ApiResponse.ErrorResponse("User sent Empty payload", "User sent Empty payload", 400)); + } + [HttpDelete("ticket-priorities/{id}")] public async Task DeleteTicketPriorityMaster(Guid id) { @@ -504,6 +459,66 @@ namespace Marco.Pms.Services.Controllers } } + // -------------------------------- Ticket Tag -------------------------------- + + [HttpGet("ticket-tags")] + public async Task GetTicketTagMaster() + { + Guid tenantId = _userHelper.GetTenantId(); + List tagVMs = new List(); + List tagMasters = await _context.TicketTagMasters.Where(s => s.TenantId == tenantId).ToListAsync(); + foreach (var tagMaster in tagMasters) + { + tagVMs.Add(tagMaster.ToTicketTagVMFromTicketTagMaster()); + } + + _logger.LogInfo("{count} Ticket Tag records fetched successfully from tenant {tenantId}", tagVMs.Count, tenantId); + return Ok(ApiResponse.SuccessResponse(tagVMs, System.String.Format("{0} Ticket Tag records fetched successfully", tagVMs.Count), 200)); + } + + [HttpPost("ticket-tags")] + public async Task CreateTicketTagMaster(TicketTagMasterDto tagMasterDto) + { + Guid tenantId = _userHelper.GetTenantId(); + if (tagMasterDto != null) + { + TicketTagMaster? tagMaster = tagMasterDto.ToTicketTagMasterFromTicketTagMasterDto(tenantId); + _context.TicketTagMasters.Add(tagMaster); + await _context.SaveChangesAsync(); + + TicketTagVM typeVM = tagMaster.ToTicketTagVMFromTicketTagMaster(); + _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"); + return BadRequest(ApiResponse.ErrorResponse("User sent Empty payload", "User sent Empty payload", 400)); + } + + [HttpPost("ticket-tags/edit")] + public async Task UpdateTicketTagMaster(TicketTagMasterDto tagMasterDto) + { + var tenantId = _userHelper.GetTenantId(); + if (tagMasterDto != null) + { + TicketTagMaster? tagMaster = await _context.TicketTagMasters.AsNoTracking().FirstOrDefaultAsync(s => s.TenantId == tenantId && s.Id == tagMasterDto.Id); + if (tagMaster != null) + { + tagMaster = tagMasterDto.ToTicketTagMasterFromTicketTagMasterDto(tenantId); + _context.TicketTagMasters.Update(tagMaster); + 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.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"); + return BadRequest(ApiResponse.ErrorResponse("User sent Empty payload", "User sent Empty payload", 400)); + } + [HttpDelete("ticket-tags/{id}")] public async Task DeleteTicketTagMaster(Guid id) { @@ -531,5 +546,22 @@ namespace Marco.Pms.Services.Controllers return NotFound(ApiResponse.ErrorResponse("Ticket tag not found", "Ticket tag not found", 404)); } } + + // -------------------------------- Work Category -------------------------------- + + [HttpGet("work-categories")] + public async Task GetWorkCategoryMasterList() + { + Guid tenantId = _userHelper.GetTenantId(); + List workCategoryMasterVMs = new List(); + List workCategories = await _context.WorkCategoryMasters.Where(s => s.TenantId == tenantId).ToListAsync(); + foreach (var workCategory in workCategories) + { + workCategoryMasterVMs.Add(workCategory.ToWorkCategoryMasterVMFromWorkCategoryMaster()); + } + + _logger.LogInfo("{count} Work Category records fetched successfully from tenant {tenantId}", workCategoryMasterVMs.Count, tenantId); + return Ok(ApiResponse.SuccessResponse(workCategoryMasterVMs, System.String.Format("{0} Work Category records fetched successfully", workCategoryMasterVMs.Count), 200)); + } } }