示例#1
0
        private static void OutputByCategory()
        {
            var foo = new Dictionary<string, Dictionary<int, decimal>>();

            var years = Enumerable.Range(2003, 10);

            var dataLoader = new DataLoader();

            foreach (var year in years)
            {
                var lines = dataLoader.Read(year).Where(x => x.LineLevel == 0);
                foreach (var line in lines)
                {
                    if (!foo.ContainsKey(line.LineName))
                    {
                        foo[line.LineName] = new Dictionary<int, decimal>();
                    }
                    foo[line.LineName][year] = line.CurrentYearBudget;
                }
            }

            var outputlines = foo.Keys.Select(x => new CategoryBudgetLine
            {
                Name = x,
                Y2003 = foo[x].ContainsKey(2003) ? foo[x][2003] : 0,
                Y2004 = foo[x].ContainsKey(2004) ? foo[x][2004] : 0,
                Y2005 = foo[x].ContainsKey(2005) ? foo[x][2005] : 0,
                Y2006 = foo[x].ContainsKey(2006) ? foo[x][2006] : 0,
                Y2007 = foo[x].ContainsKey(2007) ? foo[x][2007] : 0,
                Y2008 = foo[x].ContainsKey(2008) ? foo[x][2008] : 0,
                Y2009 = foo[x].ContainsKey(2009) ? foo[x][2009] : 0,
                Y2010 = foo[x].ContainsKey(2010) ? foo[x][2010] : 0,
                Y2011 = foo[x].ContainsKey(2011) ? foo[x][2011] : 0,
                Y2012 = foo[x].ContainsKey(2012) ? foo[x][2012] : 0,
            });

            var eng = new FileHelperEngine<CategoryBudgetLine>();
            eng.WriteFile("cats.csv", outputlines);

            //Console.WriteLine(lines.Count());
            //foreach (var m in foo.Keys)
            //{
            //    Console.WriteLine(m);
            //}
        }
示例#2
0
        public void OutputForTreeMapDisplay(int year)
        {
            var alllines = new DataLoader().Read(year);

            var lastlevels = GetTopLevelLines(alllines);

            var lines = lastlevels.Select(l => new
            {
                Paragraph = l.ParentBudgetLine.ParentBudgetLine.ParentBudgetLine.ParentBudgetLine.ParentBudgetLine.LineName,
                MainArea = l.ParentBudgetLine.ParentBudgetLine.ParentBudgetLine.ParentBudgetLine.LineName,
                ActivityArea = l.ParentBudgetLine.ParentBudgetLine.ParentBudgetLine.LineName,
                MainAccount = l.ParentBudgetLine.ParentBudgetLine.LineName,
                SubAccount = l.ParentBudgetLine.LineName,
                StandardAccount = l.LineName,
                Ammount = l.CurrentYearBudget
            }).OrderBy(l => l.Paragraph).
            ThenBy(l => l.MainArea).
            ThenBy(l => l.ActivityArea).
            ThenBy(l => l.MainAccount).
            ThenBy(l => l.SubAccount).
            ThenBy(l => l.StandardAccount);

            var outputlines = lines.Select(l => new OutBudgetLine
            {
                Paragraph = l.Paragraph,
                MainArea = l.MainArea,
                ActivityArea = l.ActivityArea,
                MainAccount = l.MainAccount,
                SubAccount = l.SubAccount,
                StandardAccount = l.StandardAccount,
                Ammount = l.Ammount
            });

            var headerline = new List<OutBudgetLine> { GetHeaderRow() };

            var eng = new FileHelperEngine<OutBudgetLine>();
            eng.WriteFile("budget" + year + ".csv", headerline.Concat(outputlines));
        }