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); }
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)); } }