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);
        }
Example #2
0
        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);
        }
Example #3
0
 public ExcelGenerator(Naturetypekodetre allCodes)
 {
     naturtypeKodetre = allCodes;
     reproject        = new MapProjection(Config.Settings.Export.ExcelSpatialReferenceSystemIdentifier);
 }