2022-01-31 08:30:08 +00:00
|
|
|
using Constants = ASC.Core.Users.Constants;
|
2019-06-14 16:14:24 +00:00
|
|
|
|
|
|
|
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
|
2019-06-14 16:14:24 +00:00
|
|
|
{
|
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-06-14 16:14:24 +00:00
|
|
|
{
|
2019-09-09 12:56:33 +00:00
|
|
|
UserManager = userManager;
|
2019-09-16 14:51:39 +00:00
|
|
|
TenantManager = tenantManager;
|
2019-06-14 16:14:24 +00:00
|
|
|
}
|
|
|
|
|
2019-09-12 11:34:58 +00:00
|
|
|
public int GetUsersCount()
|
2019-06-14 16:14:24 +00:00
|
|
|
{
|
2019-09-12 11:34:58 +00:00
|
|
|
return UserManager.GetUsersByGroup(Constants.GroupUser.ID).Length;
|
2019-06-14 16:14:24 +00:00
|
|
|
}
|
|
|
|
|
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()
|
2019-06-14 16:14:24 +00:00
|
|
|
{
|
2022-02-15 10:30:05 +00:00
|
|
|
return GetUsedSize(TenantManager.GetCurrentTenant().Id);
|
2019-06-14 16:14:24 +00:00
|
|
|
}
|
|
|
|
|
2019-09-09 12:56:33 +00:00
|
|
|
public long GetUsedSize(int tenant)
|
2019-06-14 16:14:24 +00:00
|
|
|
{
|
|
|
|
return GetQuotaRows(tenant).Sum(r => r.Counter);
|
|
|
|
}
|
|
|
|
|
2019-09-09 12:56:33 +00:00
|
|
|
public long GetUsedSize(Guid moduleId)
|
2019-06-14 16:14:24 +00:00
|
|
|
{
|
2022-02-15 10:30:05 +00:00
|
|
|
return GetQuotaRows(TenantManager.GetCurrentTenant().Id).Where(r => new Guid(r.Tag).Equals(moduleId)).Sum(r => r.Counter);
|
2019-06-14 16:14:24 +00:00
|
|
|
}
|
|
|
|
|
2019-09-09 12:56:33 +00:00
|
|
|
public IEnumerable<TenantQuotaRow> GetQuotaRows(int tenant)
|
2019-06-14 16:14:24 +00:00
|
|
|
{
|
2020-12-28 13:22:08 +00:00
|
|
|
return TenantManager.FindTenantQuotaRows(tenant)
|
2019-06-14 16:14:24 +00:00
|
|
|
.Where(r => !string.IsNullOrEmpty(r.Tag) && new Guid(r.Tag) != Guid.Empty);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|