Saving the tenant subscription modification logs in mongo DB
This commit is contained in:
parent
ac0843ffe7
commit
21e1a7322c
@ -3,7 +3,7 @@ using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using MongoDB.Driver;
|
||||
|
||||
namespace Marco.Pms.CacheHelper
|
||||
namespace Marco.Pms.Helpers.Utility
|
||||
{
|
||||
public class FeatureDetailsHelper
|
||||
{
|
@ -1,9 +1,10 @@
|
||||
using AutoMapper;
|
||||
using Marco.Pms.CacheHelper;
|
||||
using Marco.Pms.DataAccess.Data;
|
||||
using Marco.Pms.Helpers.Utility;
|
||||
using Marco.Pms.Model.Dtos.Tenant;
|
||||
using Marco.Pms.Model.Employees;
|
||||
using Marco.Pms.Model.Entitlements;
|
||||
using Marco.Pms.Model.MongoDBModels.Utility;
|
||||
using Marco.Pms.Model.Projects;
|
||||
using Marco.Pms.Model.Roles;
|
||||
using Marco.Pms.Model.TenantModels;
|
||||
@ -922,6 +923,7 @@ namespace Marco.Pms.Services.Controllers
|
||||
// 3. Get PermissionServices from DI inside a fresh scope (rarely needed, but retained for your design).
|
||||
using var scope = _serviceScopeFactory.CreateScope();
|
||||
var permissionService = scope.ServiceProvider.GetRequiredService<PermissionServices>();
|
||||
var _updateLogHelper = scope.ServiceProvider.GetRequiredService<UtilityMongoDBHelper>();
|
||||
|
||||
// 4. Check user permissions: must be both Root user and have ManageTenants permission.
|
||||
var isRootUser = loggedInEmployee.ApplicationUser?.IsRootUser ?? false;
|
||||
@ -967,6 +969,7 @@ namespace Marco.Pms.Services.Controllers
|
||||
// 6. If the tenant already has this plan, extend/renew it.
|
||||
if (currentSubscription != null && currentSubscription.PlanId == subscriptionPlan.Id)
|
||||
{
|
||||
var existingEntityBson = _updateLogHelper.EntityToBsonDocument(currentSubscription);
|
||||
DateTime newEndDate;
|
||||
// 6a. If the subscription is still active, extend from current EndDate; else start from now.
|
||||
if (currentSubscription.EndDate.Date >= utcNow.Date)
|
||||
@ -1009,6 +1012,14 @@ namespace Marco.Pms.Services.Controllers
|
||||
_logger.LogInfo("Subscription renewed: Tenant={TenantId}, Plan={PlanId}, NewEnd={EndDate}",
|
||||
model.TenantId, model.PlanId, newEndDate);
|
||||
|
||||
await _updateLogHelper.PushToUpdateLogsAsync(new UpdateLogsObject
|
||||
{
|
||||
EntityId = currentSubscription.Id.ToString(),
|
||||
UpdatedById = loggedInEmployee.Id.ToString(),
|
||||
OldObject = existingEntityBson,
|
||||
UpdatedAt = DateTime.UtcNow
|
||||
}, "SubscriptionPlanModificationLog");
|
||||
|
||||
return Ok(ApiResponse<object>.SuccessResponse(currentSubscription, "Subscription renewed/extended", 200));
|
||||
}
|
||||
|
||||
|
@ -1,4 +1,3 @@
|
||||
using Marco.Pms.CacheHelper;
|
||||
using Marco.Pms.DataAccess.Data;
|
||||
using Marco.Pms.Helpers;
|
||||
using Marco.Pms.Helpers.CacheHelper;
|
||||
|
Loading…
x
Reference in New Issue
Block a user