Added the update logs in mongoDB while updating tenant
This commit is contained in:
parent
21e1a7322c
commit
d9a454ca28
@ -10,10 +10,8 @@
|
|||||||
public required string BillingAddress { get; set; }
|
public required string BillingAddress { get; set; }
|
||||||
public string? TaxId { get; set; }
|
public string? TaxId { get; set; }
|
||||||
public string? logoImage { get; set; }
|
public string? logoImage { get; set; }
|
||||||
public required string OrganizationName { get; set; }
|
|
||||||
public string? OfficeNumber { get; set; }
|
public string? OfficeNumber { get; set; }
|
||||||
public required string ContactNumber { get; set; }
|
public required string ContactNumber { get; set; }
|
||||||
//public required DateTime OnBoardingDate { get; set; }
|
|
||||||
public required string OrganizationSize { get; set; }
|
public required string OrganizationSize { get; set; }
|
||||||
public required Guid IndustryId { get; set; }
|
public required Guid IndustryId { get; set; }
|
||||||
public required string Reference { get; set; }
|
public required string Reference { get; set; }
|
||||||
|
@ -609,9 +609,11 @@ namespace Marco.Pms.Services.Controllers
|
|||||||
|
|
||||||
// 2. Check permissions using a single service scope to avoid overhead
|
// 2. Check permissions using a single service scope to avoid overhead
|
||||||
bool hasManagePermission, hasModifyPermission;
|
bool hasManagePermission, hasModifyPermission;
|
||||||
|
UtilityMongoDBHelper _updateLogHelper;
|
||||||
using (var scope = _serviceScopeFactory.CreateScope())
|
using (var scope = _serviceScopeFactory.CreateScope())
|
||||||
{
|
{
|
||||||
var permissionService = scope.ServiceProvider.GetRequiredService<PermissionServices>();
|
var permissionService = scope.ServiceProvider.GetRequiredService<PermissionServices>();
|
||||||
|
_updateLogHelper = scope.ServiceProvider.GetRequiredService<UtilityMongoDBHelper>();
|
||||||
|
|
||||||
var manageTask = permissionService.HasPermission(PermissionsMaster.ManageTenants, loggedInEmployee.Id);
|
var manageTask = permissionService.HasPermission(PermissionsMaster.ManageTenants, loggedInEmployee.Id);
|
||||||
var modifyTask = permissionService.HasPermission(PermissionsMaster.ModifyTenant, loggedInEmployee.Id);
|
var modifyTask = permissionService.HasPermission(PermissionsMaster.ModifyTenant, loggedInEmployee.Id);
|
||||||
@ -635,6 +637,7 @@ namespace Marco.Pms.Services.Controllers
|
|||||||
var tenant = await context.Tenants
|
var tenant = await context.Tenants
|
||||||
.Include(t => t.Industry)
|
.Include(t => t.Industry)
|
||||||
.Include(t => t.TenantStatus)
|
.Include(t => t.TenantStatus)
|
||||||
|
.AsNoTracking()
|
||||||
.FirstOrDefaultAsync(t => t.Id == id);
|
.FirstOrDefaultAsync(t => t.Id == id);
|
||||||
|
|
||||||
if (tenant == null)
|
if (tenant == null)
|
||||||
@ -645,6 +648,7 @@ namespace Marco.Pms.Services.Controllers
|
|||||||
|
|
||||||
_logger.LogInfo("Tenant {TenantId} fetched for update.", tenant.Id);
|
_logger.LogInfo("Tenant {TenantId} fetched for update.", tenant.Id);
|
||||||
|
|
||||||
|
var tenantObject = _updateLogHelper.EntityToBsonDocument(tenant);
|
||||||
// 5. Map update DTO properties to the tenant entity
|
// 5. Map update DTO properties to the tenant entity
|
||||||
_mapper.Map(model, tenant);
|
_mapper.Map(model, tenant);
|
||||||
|
|
||||||
@ -658,7 +662,7 @@ namespace Marco.Pms.Services.Controllers
|
|||||||
_logger.LogWarning("Root employee not found for tenant {TenantId}", id);
|
_logger.LogWarning("Root employee not found for tenant {TenantId}", id);
|
||||||
return NotFound(ApiResponse<object>.ErrorResponse("Root employee not found", "Root employee not found", 404));
|
return NotFound(ApiResponse<object>.ErrorResponse("Root employee not found", "Root employee not found", 404));
|
||||||
}
|
}
|
||||||
|
var employeeobject = _updateLogHelper.EntityToBsonDocument(rootEmployee);
|
||||||
// 7. Update root employee details
|
// 7. Update root employee details
|
||||||
rootEmployee.FirstName = model.FirstName;
|
rootEmployee.FirstName = model.FirstName;
|
||||||
rootEmployee.LastName = model.LastName;
|
rootEmployee.LastName = model.LastName;
|
||||||
@ -668,6 +672,7 @@ namespace Marco.Pms.Services.Controllers
|
|||||||
// 8. Save changes to DB
|
// 8. Save changes to DB
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
context.Tenants.Update(tenant);
|
||||||
await context.SaveChangesAsync();
|
await context.SaveChangesAsync();
|
||||||
_logger.LogInfo("Tenant {TenantId} and root employee updated successfully.", tenant.Id);
|
_logger.LogInfo("Tenant {TenantId} and root employee updated successfully.", tenant.Id);
|
||||||
}
|
}
|
||||||
@ -677,6 +682,29 @@ namespace Marco.Pms.Services.Controllers
|
|||||||
return StatusCode(500, ApiResponse<object>.ErrorResponse("Error updating tenant", "Unexpected error occurred while updating tenant.", 500));
|
return StatusCode(500, ApiResponse<object>.ErrorResponse("Error updating tenant", "Unexpected error occurred while updating tenant.", 500));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var tenantTaks = Task.Run(async () =>
|
||||||
|
{
|
||||||
|
await _updateLogHelper.PushToUpdateLogsAsync(new UpdateLogsObject
|
||||||
|
{
|
||||||
|
EntityId = tenant.Id.ToString(),
|
||||||
|
UpdatedById = loggedInEmployee.Id.ToString(),
|
||||||
|
OldObject = tenantObject,
|
||||||
|
UpdatedAt = DateTime.UtcNow
|
||||||
|
}, "TenantModificationLog");
|
||||||
|
});
|
||||||
|
var employeeTaks = Task.Run(async () =>
|
||||||
|
{
|
||||||
|
await _updateLogHelper.PushToUpdateLogsAsync(new UpdateLogsObject
|
||||||
|
{
|
||||||
|
EntityId = rootEmployee.Id.ToString(),
|
||||||
|
UpdatedById = loggedInEmployee.Id.ToString(),
|
||||||
|
OldObject = employeeobject,
|
||||||
|
UpdatedAt = DateTime.UtcNow
|
||||||
|
}, "EmployeeModificationLog");
|
||||||
|
});
|
||||||
|
|
||||||
|
await Task.WhenAll(tenantTaks, employeeTaks);
|
||||||
|
|
||||||
// 9. Map updated tenant to ViewModel for response
|
// 9. Map updated tenant to ViewModel for response
|
||||||
var response = _mapper.Map<TenantVM>(tenant);
|
var response = _mapper.Map<TenantVM>(tenant);
|
||||||
|
|
||||||
|
@ -47,10 +47,6 @@ namespace Marco.Pms.Services.MappingProfiles
|
|||||||
.ForMember(
|
.ForMember(
|
||||||
dest => dest.ContactName,
|
dest => dest.ContactName,
|
||||||
opt => opt.MapFrom(src => $"{src.FirstName} {src.LastName}")
|
opt => opt.MapFrom(src => $"{src.FirstName} {src.LastName}")
|
||||||
)
|
|
||||||
.ForMember(
|
|
||||||
dest => dest.Name,
|
|
||||||
opt => opt.MapFrom(src => src.OrganizationName)
|
|
||||||
);
|
);
|
||||||
|
|
||||||
CreateMap<SubscriptionPlanDetails, SubscriptionPlanVM>()
|
CreateMap<SubscriptionPlanDetails, SubscriptionPlanVM>()
|
||||||
|
@ -49,6 +49,6 @@
|
|||||||
"MongoDB": {
|
"MongoDB": {
|
||||||
"SerilogDatabaseUrl": "mongodb://localhost:27017/DotNetLogs",
|
"SerilogDatabaseUrl": "mongodb://localhost:27017/DotNetLogs",
|
||||||
"ConnectionString": "mongodb://localhost:27017/MarcoBMS_Caches?socketTimeoutMS=500&serverSelectionTimeoutMS=500&connectTimeoutMS=500",
|
"ConnectionString": "mongodb://localhost:27017/MarcoBMS_Caches?socketTimeoutMS=500&serverSelectionTimeoutMS=500&connectTimeoutMS=500",
|
||||||
"ModificationConnectionString": "mongodb://devuser:DevPass123@147.93.98.152:27017/MarcoBMSLocalDev?authSource=admin&socketTimeoutMS=500&serverSelectionTimeoutMS=500&connectTimeoutMS=500"
|
"ModificationConnectionString": "mongodb://devuser:DevPass123@147.93.98.152:27017/MarcoBMSLocalDev?authSource=admin&eplicaSet=rs01&directConnection=true"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user