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); if (result.Count() == 0) { return 1; } if (result.Max() != result.Count()) { //pierwszy "wolny" nr int i = result.Count(); foreach (var nr in result) { if (i != nr) { return i; } i--; } } return result.Count() + 1; }