public static int GetDictionaryMaxNr(DictionaryTypeEnum dictType, int unitId, DatabaseContext db) { var result = db.DictionariesValues .Where(x => x.DictionaryTypeValue == dictType && x.EntityStatus == EntityStatus.esActive ) .OrderByDescending(x => x.Nr) .Select(x => x.Nr); int count = result.Count(); if (count == 0) { return 1; } if (result.Max() != count) { //pierwszy "wolny" nr foreach (var nr in result) { if (count != nr) { return count; } count--; } } return count + 1; }