public static bool IsTenantQuotaEnded(this MailBoxData mailbox, long minBalance, ILog log = null) { var quotaEnded = false; log = log ?? new NullLog(); try { var quotaController = new TenantQuotaController(mailbox.TenantId); var quota = CoreContext.TenantManager.GetTenantQuota(mailbox.TenantId); var usedQuota = quotaController.QuotaCurrentGet(); quotaEnded = quota.MaxTotalSize - usedQuota < minBalance; log.DebugFormat("IsTenantQuotaEnded: {0} Tenant = {1}. Tenant quota = {2}Mb ({3}), used quota = {4}Mb ({5}) ", quotaEnded, mailbox.TenantId, MailUtil.BytesToMegabytes(quota.MaxTotalSize), quota.MaxTotalSize, MailUtil.BytesToMegabytes(usedQuota), usedQuota); } catch (Exception ex) { log.ErrorFormat("IsQuotaExhausted(Tenant={0}) Exception: {1}", mailbox.TenantId, ex.Message); } return(quotaEnded); }
public void QuotaUsedDelete(long usedQuota) { try { var quotaController = new TenantQuotaController(Tenant); quotaController.QuotaUsedDelete(Defines.MODULE_NAME, string.Empty, Defines.MAIL_QUOTA_TAG, usedQuota); } catch (Exception ex) { Log.Error(string.Format("QuotaUsedDelete with params: tenant={0}, used_quota={1}", Tenant, usedQuota), ex); throw; } }