private static List <IOfficialDocument> GetAddendums(IOfficialDocument document) { var addendaList = new List <IOfficialDocument>() { }; var leadingDocuments = new List <IOfficialDocument>() { document }; while (Addendums.GetAll(a => leadingDocuments.Contains(a.LeadingDocument)).Any()) { leadingDocuments = OfficialDocuments.GetAll(a => Addendums.Is(a) && leadingDocuments.Contains(a.LeadingDocument)).ToList(); addendaList.AddRange(leadingDocuments); } return(addendaList); }