From ed96fe2bdb6db2bad0713a904f762ac7601f42e1 Mon Sep 17 00:00:00 2001 From: pavelbannov Date: Tue, 11 Apr 2023 18:58:44 +0300 Subject: [PATCH] refresh quota --- common/ASC.Core.Common/Billing/ITariffService.cs | 2 +- common/ASC.Core.Common/Billing/TariffService.cs | 5 ++--- common/ASC.Core.Common/Context/Impl/TenantManager.cs | 10 +++++----- web/ASC.Web.Api/Api/PaymentsController.cs | 4 ++-- web/ASC.Web.Api/Core/QuotaHelper.cs | 4 ++-- 5 files changed, 12 insertions(+), 13 deletions(-) diff --git a/common/ASC.Core.Common/Billing/ITariffService.cs b/common/ASC.Core.Common/Billing/ITariffService.cs index 443b718b7a..85cb40ebca 100644 --- a/common/ASC.Core.Common/Billing/ITariffService.cs +++ b/common/ASC.Core.Common/Billing/ITariffService.cs @@ -31,7 +31,7 @@ public interface ITariffService { IDictionary> GetProductPriceInfo(params string[] productIds); IEnumerable GetPayments(int tenantId); - Tariff GetTariff(int tenantId, bool withRequestToPaymentSystem = true); + Tariff GetTariff(int tenantId, bool withRequestToPaymentSystem = true, bool refresh = false); Task GetShoppingUri(int tenant, string currency = null, string language = null, string customerEmail = null, Dictionary quantity = null, string backUrl = null); Uri GetShoppingUri(int? tenant, int quotaId, string affiliateId, string currency = null, string language = null, string customerId = null, string quantity = null); Uri GetShoppingUri(string[] productIds, string affiliateId = null, string currency = null, string language = null, string customerId = null, string quantity = null); diff --git a/common/ASC.Core.Common/Billing/TariffService.cs b/common/ASC.Core.Common/Billing/TariffService.cs index 9846366ec6..a8e3591ce8 100644 --- a/common/ASC.Core.Common/Billing/TariffService.cs +++ b/common/ASC.Core.Common/Billing/TariffService.cs @@ -147,7 +147,7 @@ public class TariffService : ITariffService _dbContextFactory = coreDbContextManager; } - public Tariff GetTariff(int tenantId, bool withRequestToPaymentSystem = true) + public Tariff GetTariff(int tenantId, bool withRequestToPaymentSystem = true, bool refresh = false) { //single tariff for all portals if (_coreBaseSettings.Standalone) @@ -155,7 +155,7 @@ public class TariffService : ITariffService tenantId = -1; } - var tariff = GetTariffFromCache(tenantId); + var tariff = refresh ? null : GetTariffFromCache(tenantId); int? tariffId = null; if (tariff == null) @@ -170,7 +170,6 @@ public class TariffService : ITariffService if (_billingClient.Configured && withRequestToPaymentSystem) { - try { var currentPayments = _billingClient.GetCurrentPayments(GetPortalId(tenantId)); diff --git a/common/ASC.Core.Common/Context/Impl/TenantManager.cs b/common/ASC.Core.Common/Context/Impl/TenantManager.cs index e2b29ff5a7..5ce34b890e 100644 --- a/common/ASC.Core.Common/Context/Impl/TenantManager.cs +++ b/common/ASC.Core.Common/Context/Impl/TenantManager.cs @@ -45,7 +45,7 @@ public class TenantManager internal CoreBaseSettings CoreBaseSettings { get; set; } internal CoreSettings CoreSettings { get; set; } - private readonly static object _lock = new object(); + private static readonly object _lock = new object(); static TenantManager() { @@ -283,17 +283,17 @@ public class TenantManager return QuotaService.GetTenantQuotas().Where(q => q.Tenant < 0 && (all || q.Visible)).OrderByDescending(q => q.Tenant).ToList(); } - public TenantQuota GetCurrentTenantQuota() + public TenantQuota GetCurrentTenantQuota(bool refresh = false) { - return GetTenantQuota(GetCurrentTenant().Id); + return GetTenantQuota(GetCurrentTenant().Id, refresh); } - public TenantQuota GetTenantQuota(int tenant) + public TenantQuota GetTenantQuota(int tenant, bool refresh = false) { var defaultQuota = QuotaService.GetTenantQuota(tenant) ?? QuotaService.GetTenantQuota(Tenant.DefaultTenant) ?? TenantQuota.Default; if (defaultQuota.Tenant != tenant && TariffService != null) { - var tariff = TariffService.GetTariff(tenant); + var tariff = TariffService.GetTariff(tenant, refresh: refresh); TenantQuota currentQuota = null; foreach (var tariffRow in tariff.Quotas) diff --git a/web/ASC.Web.Api/Api/PaymentsController.cs b/web/ASC.Web.Api/Api/PaymentsController.cs index a23526c4ff..4477b1e780 100644 --- a/web/ASC.Web.Api/Api/PaymentsController.cs +++ b/web/ASC.Web.Api/Api/PaymentsController.cs @@ -153,9 +153,9 @@ public class PaymentController : ControllerBase } [HttpGet("payment/quota")] - public async Task GetQuota() + public async Task GetQuota(bool refresh) { - return await _quotaHelper.GetCurrentQuota(); + return await _quotaHelper.GetCurrentQuota(refresh); } [HttpPost("payment/request")] diff --git a/web/ASC.Web.Api/Core/QuotaHelper.cs b/web/ASC.Web.Api/Core/QuotaHelper.cs index 37b5deb136..d3ba794f3c 100644 --- a/web/ASC.Web.Api/Core/QuotaHelper.cs +++ b/web/ASC.Web.Api/Core/QuotaHelper.cs @@ -52,9 +52,9 @@ public class QuotaHelper } } - public async Task GetCurrentQuota() + public async Task GetCurrentQuota(bool refresh = false) { - var quota = _tenantManager.GetCurrentTenantQuota(); + var quota = _tenantManager.GetCurrentTenantQuota(refresh); var priceInfo = _tenantManager.GetProductPriceInfo(); var currentRegion = _regionHelper.GetCurrentRegionInfo();