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); //} }
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)); }