示例#1
0
        public bool QuotaExceeded(QuotaTypes quotaType, int categoryID, out int allowedCount, out int currentCount)
        {
            //pCheckQuotaResult result = _context.CheckQuota(quotaType.ToString()).Single();

            //allowedCount = result.allowedCount;
            //currentCount = result.currentCount;

            //return result.isViolated??true;

            bool result = false;

            currentCount = 0;
            allowedCount = 0;
            int cid = AppContext.GetCID();

            switch (quotaType)
            {
            case QuotaTypes.Clients:
                currentCount = _context.Clients.Count();
                allowedCount = QuotaLimits.ClientLimit;
                result       = currentCount >= allowedCount;
                break;

            case QuotaTypes.DocumentCategories:
                currentCount = _context.Categories.Where(c => c.ClientID == cid).Count();
                allowedCount = QuotaLimits.DocumentCategoriesLimit;
                result       = currentCount >= allowedCount;
                break;

            case QuotaTypes.Documents:
                currentCount = _context.Documents.Where(d => d.ClientID == cid).Count();
                allowedCount = QuotaLimits.DocumentsLimit;
                result       = currentCount >= allowedCount;
                break;

            case QuotaTypes.DocumentTypes:
                currentCount = _context.Types.Where(t => t.ClientID == cid && (t.CategoryID == categoryID || categoryID == 0)).Count();
                allowedCount = QuotaLimits.DocumentTypesLimit;
                result       = currentCount >= allowedCount;
                break;

            case QuotaTypes.ScansTotalSize:
                var scans = _context.Scans;
                if (scans.Count() > 0)
                {
                    currentCount = scans.Where(s => s.ClientID == cid).Sum(s => s.ScanContent.Length);
                }
                else
                {
                    currentCount = 0;
                }
                allowedCount = QuotaLimits.ScansTotalSizeLimit;
                result       = currentCount >= allowedCount * 1024 * 1024;
                break;
            }
            return(result);
        }
示例#2
0
        public ActionResult Index()
        {
            QuotaTypes quotaType    = (QuotaTypes)TempData["quotaType"];
            string     currentValue = TempData["currentValue"].ToString();
            string     maxValue     = TempData["maxValue"].ToString();

            string message = string.Empty;

            switch (quotaType)
            {
            case QuotaTypes.Documents:
                message = string.Concat("Przekroczona maksymalna liczba (", maxValue, ") dokumentów.");
                break;

            case QuotaTypes.DocumentCategories:
                message = string.Concat("Przekroczona maksymalna liczba (", maxValue, ") kategorii.");
                break;

            case QuotaTypes.DocumentTypes:
                message = string.Concat("Przekroczona maksymalna liczba (", maxValue, ") typów.");
                break;

            case QuotaTypes.ScansInDocument:
                message = string.Concat("Przekroczona maksymalna liczba (", maxValue, ") skanów w dokumencie.");
                break;

            case QuotaTypes.ScansTotalSize:
                message = string.Concat("Przekroczony maksymalny rozmiar(", maxValue, "MB) skanów w systemie.");
                break;

            case QuotaTypes.Clients:
                message = string.Concat("Przekroczony maksymalny liczba(", maxValue, ") klientów w systemie.");
                break;

            default:
                break;
            }

            QuotaViewModel viewModel = new QuotaViewModel()
            {
                Message = message
            };

            if ((bool)TempData["isAjax"])
            {
                return(PartialView("QuotaInfoControl", viewModel));
            }
            else
            {
                return(View(viewModel));
            }
        }