private static CodeSummaryItem GetCodeSummaryHierarchy(CodeIds codeIds, Naturetypekodetre kodetre) { var r = new CodeSummaryItem(); foreach (var codeId in codeIds) { var codeItem = kodetre.HentFraKode(codeId.Key); var codes = r.Codes; foreach (var parentCodeItem in codeItem.ParentCodeItems) { if (!codes.ContainsKey(parentCodeItem.Id)) { var item = new CodeSummaryItem(parentCodeItem.Name, parentCodeItem.Url, 0); foreach (var id in codeId.Value) { if (item.HandledIds.Contains(id)) { continue; } item.Count++; item.HandledIds.Add(id); } codes[parentCodeItem.Id] = item; } else { foreach (var id in codeId.Value) { if (codes[parentCodeItem.Id].HandledIds.Contains(id)) { continue; } codes[parentCodeItem.Id].Count++; codes[parentCodeItem.Id].HandledIds.Add(id); } } } if (!codes.ContainsKey(codeItem.Id)) { codes[codeItem.Id] = new CodeSummaryItem(codeItem.Name, codeItem.Url, codeId.Value.Count); } else { codes[codeItem.Id].Count += codeId.Value.Count; } } return(r); }
private static CodeSummaryItem GetCodeSummaryHierarchy(CodeIds idsForCodes, Naturetypekodetre kodetre) { var root = new CodeSummaryItem(); var index = new Dictionary <string, CodeSummaryItem>(); foreach (var idsForCode in idsForCodes) { var codeItemFromTree = kodetre.HentFraKode(idsForCode.Key); if (codeItemFromTree.Name == "?") { continue; } HandleParents(root.Codes, index, codeItemFromTree); CodeSummaryItem item = null; if (!index.ContainsKey(codeItemFromTree.Id)) { item = new CodeSummaryItem(codeItemFromTree.Name, codeItemFromTree.Url, idsForCode.Value.Count); if (codeItemFromTree.ParentCodeItems.Count > 0) { var parent = index[codeItemFromTree.ParentCodeItems.Last().Id]; parent.Codes.Add(codeItemFromTree.Id, item); } else { root.Codes.Add(codeItemFromTree.Id, item); } index.Add(codeItemFromTree.Id, item); } else { item = index[codeItemFromTree.Id]; item.OwnCount += idsForCode.Value.Count; } } return(root); }
public ExcelGenerator(Naturetypekodetre allCodes) { naturtypeKodetre = allCodes; reproject = new MapProjection(Config.Settings.Export.ExcelSpatialReferenceSystemIdentifier); }