DocSpace-buildtools/web/ASC.Web.Core/Utility/TenantStatisticsProvider.cs

54 lines
1.6 KiB
C#
Raw Normal View History

using Constants = ASC.Core.Users.Constants;
namespace ASC.Web.Studio.UserControls.Statistics
{
2020-10-19 15:53:15 +00:00
[Scope]
2019-09-09 12:56:33 +00:00
public class TenantStatisticsProvider
{
2020-08-12 09:58:08 +00:00
private UserManager UserManager { get; }
private TenantManager TenantManager { get; }
2019-09-09 12:56:33 +00:00
2019-09-16 14:51:39 +00:00
public TenantStatisticsProvider(UserManager userManager, TenantManager tenantManager)
{
2019-09-09 12:56:33 +00:00
UserManager = userManager;
2019-09-16 14:51:39 +00:00
TenantManager = tenantManager;
}
public int GetUsersCount()
{
return UserManager.GetUsersByGroup(Constants.GroupUser.ID).Length;
}
2021-05-27 17:13:24 +00:00
public int GetVisitorsCount()
{
return UserManager.GetUsersByGroup(Constants.GroupVisitor.ID).Length;
}
public int GetAdminsCount()
{
return UserManager.GetUsersByGroup(Constants.GroupAdmin.ID).Length;
}
2019-09-09 12:56:33 +00:00
public long GetUsedSize()
{
return GetUsedSize(TenantManager.GetCurrentTenant().Id);
}
2019-09-09 12:56:33 +00:00
public long GetUsedSize(int tenant)
{
return GetQuotaRows(tenant).Sum(r => r.Counter);
}
2019-09-09 12:56:33 +00:00
public long GetUsedSize(Guid moduleId)
{
return GetQuotaRows(TenantManager.GetCurrentTenant().Id).Where(r => new Guid(r.Tag).Equals(moduleId)).Sum(r => r.Counter);
}
2019-09-09 12:56:33 +00:00
public IEnumerable<TenantQuotaRow> GetQuotaRows(int tenant)
{
2020-12-28 13:22:08 +00:00
return TenantManager.FindTenantQuotaRows(tenant)
.Where(r => !string.IsNullOrEmpty(r.Tag) && new Guid(r.Tag) != Guid.Empty);
}
}
}