Quota: used field
This commit is contained in:
parent
2c758355bc
commit
ddeb4157ad
@ -124,6 +124,12 @@ public abstract class BaseStartup
|
||||
services.AddScoped<ITenantQuotaFeatureStatistic<ActiveUsersFeature>, ActiveUsersStatistic>();
|
||||
services.AddScoped<ActiveUsersStatistic>();
|
||||
|
||||
services.AddScoped<ITenantQuotaFeatureChecker, MaxTotalSizeChecker>();
|
||||
services.AddScoped<MaxTotalSizeChecker>();
|
||||
|
||||
services.AddScoped<ITenantQuotaFeatureStatistic<MaxTotalSizeFeature>, MaxTotalSizeStatistic>();
|
||||
services.AddScoped<MaxTotalSizeStatistic>();
|
||||
|
||||
|
||||
DIHelper.TryAdd(typeof(IWebhookPublisher), typeof(WebhookPublisher));
|
||||
|
||||
|
@ -36,15 +36,16 @@ public class ActiveUsersFeature : TenantQuotaFeatureCount
|
||||
|
||||
public class ActiveUsersChecker : ITenantQuotaFeatureChecker
|
||||
{
|
||||
private readonly UserManager _userManager;
|
||||
private readonly ITenantQuotaFeatureStatistic<ActiveUsersFeature> _tenantQuotaFeatureStatistic;
|
||||
|
||||
public ActiveUsersChecker(UserManager userManager)
|
||||
public ActiveUsersChecker(ITenantQuotaFeatureStatistic<ActiveUsersFeature> tenantQuotaFeatureStatistic)
|
||||
{
|
||||
_userManager = userManager;
|
||||
_tenantQuotaFeatureStatistic = tenantQuotaFeatureStatistic;
|
||||
}
|
||||
|
||||
public bool Check(TenantQuota quota)
|
||||
{
|
||||
return _userManager.GetUsersByGroup(Users.Constants.GroupUser.ID).Length >= quota.ActiveUsers;
|
||||
return quota.ActiveUsers <= (int)_tenantQuotaFeatureStatistic.GetValue();
|
||||
}
|
||||
|
||||
public string Exception(TenantQuota quota)
|
||||
|
@ -33,3 +33,42 @@ public class MaxTotalSizeFeature : TenantQuotaFeatureLength
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
public class MaxTotalSizeChecker : ITenantQuotaFeatureChecker
|
||||
{
|
||||
private readonly ITenantQuotaFeatureStatistic<MaxTotalSizeFeature> _tenantQuotaFeatureStatistic;
|
||||
|
||||
public MaxTotalSizeChecker(ITenantQuotaFeatureStatistic<MaxTotalSizeFeature> tenantQuotaFeatureStatistic)
|
||||
{
|
||||
_tenantQuotaFeatureStatistic = tenantQuotaFeatureStatistic;
|
||||
}
|
||||
|
||||
public bool Check(TenantQuota quota)
|
||||
{
|
||||
return quota.MaxTotalSize <= (long)_tenantQuotaFeatureStatistic.GetValue();
|
||||
}
|
||||
|
||||
public string Exception(TenantQuota quota)
|
||||
{
|
||||
return "The used storage size should not exceed " + quota.MaxTotalSize;
|
||||
}
|
||||
}
|
||||
|
||||
public class MaxTotalSizeStatistic : ITenantQuotaFeatureStatistic<MaxTotalSizeFeature>
|
||||
{
|
||||
private readonly TenantManager _tenantManager;
|
||||
|
||||
public MaxTotalSizeStatistic(TenantManager tenantManager)
|
||||
{
|
||||
_tenantManager = tenantManager;
|
||||
}
|
||||
|
||||
public object GetValue()
|
||||
{
|
||||
var tenant = _tenantManager.GetCurrentTenant().Id;
|
||||
|
||||
return _tenantManager.FindTenantQuotaRows(tenant)
|
||||
.Where(r => !string.IsNullOrEmpty(r.Tag) && new Guid(r.Tag) != Guid.Empty)
|
||||
.Sum(r => r.Counter);
|
||||
}
|
||||
}
|
@ -314,10 +314,6 @@ public class TenantQuota : IMapFrom<DbQuota>
|
||||
}
|
||||
}
|
||||
|
||||
//if (MaxTotalSize != long.MaxValue
|
||||
// && false) throw new Exception("The used storage size should not exceed " + MaxTotalSize);
|
||||
//if (ActiveUsers != int.MaxValue
|
||||
// && false) throw new Exception("The number of active users should not exceed " + ActiveUsers);
|
||||
//if (CountAdmin != int.MaxValue
|
||||
// && false) throw new Exception("The number of managers should not exceed " + CountAdmin);
|
||||
//if (CountRoom != int.MaxValue
|
||||
|
@ -43,7 +43,7 @@ public class QuotaFeatureDto : IEquatable<QuotaFeatureDto>
|
||||
public string Id { get; set; }
|
||||
public string Title { get; set; }
|
||||
public string Image { get; set; }
|
||||
public object Used { get; set; }
|
||||
public FeatureUsedDto Used { get; set; }
|
||||
public FeaturePriceDto Price { get; set; }
|
||||
|
||||
public bool Equals(QuotaFeatureDto other)
|
||||
@ -69,6 +69,12 @@ public class FeaturePriceDto
|
||||
public FeaturePriceRangeDto Range { get; set; }
|
||||
}
|
||||
|
||||
public class FeatureUsedDto
|
||||
{
|
||||
public object Value { get; set; }
|
||||
public string Title { get; set; }
|
||||
}
|
||||
|
||||
public class FeaturePriceRangeDto
|
||||
{
|
||||
public object Value { get; set; }
|
||||
|
@ -147,7 +147,11 @@ public class QuotaHelper
|
||||
|
||||
if (statisticProvider != null)
|
||||
{
|
||||
result.Used = statisticProvider.GetValue();
|
||||
result.Used = new FeatureUsedDto
|
||||
{
|
||||
Value = statisticProvider.GetValue(),
|
||||
Title = Resource.ResourceManager.GetString($"TariffsFeature_used_{feature.Name}")
|
||||
};
|
||||
}
|
||||
|
||||
yield return result;
|
||||
|
@ -2211,6 +2211,24 @@ namespace ASC.Web.Core.PublicResources {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Storage space used:.
|
||||
/// </summary>
|
||||
public static string TariffsFeature_used_total_size {
|
||||
get {
|
||||
return ResourceManager.GetString("TariffsFeature_used_total_size", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Managers added:.
|
||||
/// </summary>
|
||||
public static string TariffsFeature_used_users {
|
||||
get {
|
||||
return ResourceManager.GetString("TariffsFeature_used_users", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Unlimited number of users.
|
||||
/// </summary>
|
||||
|
@ -855,4 +855,10 @@
|
||||
<data name="Tariffs_admin" xml:space="preserve">
|
||||
<value>Business plan</value>
|
||||
</data>
|
||||
<data name="TariffsFeature_used_total_size" xml:space="preserve">
|
||||
<value>Storage space used:</value>
|
||||
</data>
|
||||
<data name="TariffsFeature_used_users" xml:space="preserve">
|
||||
<value>Managers added:</value>
|
||||
</data>
|
||||
</root>
|
Loading…
Reference in New Issue
Block a user