コード例 #1
0
        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);
        }
コード例 #2
0
        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;
            }
        }