internal ClassificationItem(IIfcClassificationReference entity, bool init) : base(entity) { Children = new ClassificationItemCollection(this, init); }
private static Dictionary <string, ClassificationItem> ConvertClassification(CostModel model, IEnumerable <TZatrideni> zatrideni, ClassificationItemCollection parent) { var result = new Dictionary <string, ClassificationItem>(); foreach (var zatr in zatrideni) { // classification items model classification hierarchy (breakdown structure) // there might be several classifications in the model var item = new ClassificationItem(model) { Sort = zatr.Typ.ToString(), Name = zatr.Nazev, Identification = zatr.Cislo, Description = zatr.ZPOPIS }; // nested level of classification breakdown if (zatr.ZATRIDENI?.Any() == true) { var children = ConvertClassification(model, zatr.ZATRIDENI, item.Children); foreach (var ch in children) { result.Add(ch.Key, ch.Value); } } // keep key in the lookup for later use if (!string.IsNullOrWhiteSpace(zatr.PolozkaZatrideniUID) && !result.ContainsKey(zatr.PolozkaZatrideniUID)) { result.Add(zatr.PolozkaZatrideniUID, item); } } return(result); }