public bool IsCorrectName(string name) { if (!name.IsValidDbSymbolName()) { return(false); } if (string.IsNullOrEmpty(name)) { return(false); } if (Inners != null) { if (Inners.Any(x => x.Name.Equals(name, StringComparison.OrdinalIgnoreCase))) { return(false); } } if (Recs != null) { if (Recs.Any(r => r.Name.Equals(name, StringComparison.OrdinalIgnoreCase))) { return(false); } } return(true); }
public void AddInner([CanBeNull] DicED dic) { if (dic == null || dic.IsEmpty()) { return; } if (!IsCorrectName(dic.Name)) { throw new Exception("Invalid Name - " + dic.Name); } if (Inners == null) { Inners = new List <DicED>(); } Inners.Add(dic); }
/// <summary> /// Проверка, пустой ли словарь - нет записей и нет вложенных словарей или они пустые /// </summary> public bool IsEmpty() { // Если нет записей или они все пустые, и если нет вложенных словарей или они все пустые return((Recs == null || Recs.All(r => r.IsEmpty())) && (Inners == null || Inners.All(i => i.IsEmpty()))); }
public DicED GetInner(string name) { return(Inners?.Find(r => r.Name.Equals(name, StringComparison.OrdinalIgnoreCase))); }
public override void AddChild(Node child) { Inners.Add(child); }