Exemplo n.º 1
0
                public static Analytics.StatisticsSubjectPerYear <Statistics.Dotace> Create(Firma f)
                {
                    var dotaceService = new Data.Dotace.DotaceService();
                    var dotaceFirmy   = dotaceService.GetDotaceForIco(f.ICO);

                    var cerpani = dotaceFirmy
                                  .SelectMany(d => d.Rozhodnuti)
                                  .SelectMany(r => r.Cerpani);

                    var dataYearly = cerpani
                                     .GroupBy(c => c.GuessedYear)
                                     .ToDictionary(g => g.Key ?? 0,
                                                   g => new Statistics.Dotace()
                    {
                        CelkemCerpano = g.Sum(c => c.CastkaSpotrebovana ?? 0),
                        PocetCerpani  = g.Count(c => c.CastkaSpotrebovana.HasValue)
                    });

                    // doplnit počty dotací
                    foreach (int year in dataYearly.Keys)
                    {
                        int pocetDotaci = dotaceFirmy.Count(d => (d.DatumPodpisu?.Year ?? 0) == year);
                        dataYearly[year].PocetDotaci = pocetDotaci;
                    }

                    return(new Analytics.StatisticsSubjectPerYear <Statistics.Dotace>(f.ICO, dataYearly));
                }
Exemplo n.º 2
0
                public static Analytics.StatisticsSubjectPerYear <Statistics.Dotace> Create(Firma f)
                {
                    var dotaceService = new Data.Dotace.DotaceService();
                    var dotaceFirmy   = dotaceService.GetDotaceForIco(f.ICO);

                    // doplnit počty dotací
                    var statistiky = dotaceFirmy.GroupBy(d => d.DatumPodpisu?.Year)
                                     .ToDictionary(g => g.Key ?? 0,
                                                   g => new Statistics.Dotace()
                    {
                        PocetDotaci = g.Count()
                    }
                                                   );

                    var cerpani = dotaceFirmy
                                  .SelectMany(d => d.Rozhodnuti)
                                  .SelectMany(r => r.Cerpani);

                    var dataYearly = cerpani
                                     .GroupBy(c => c.GuessedYear)
                                     .ToDictionary(g => g.Key ?? 0,
                                                   g => (CelkemCerpano: g.Sum(c => c.CastkaSpotrebovana ?? 0),
                                                         PocetCerpani: g.Count(c => c.CastkaSpotrebovana.HasValue))
                                                   );

                    foreach (var dy in dataYearly)
                    {
                        if (!statistiky.TryGetValue(dy.Key, out var yearstat))
                        {
                            yearstat = new Statistics.Dotace();
                            statistiky.Add(dy.Key, yearstat);
                        }

                        yearstat.CelkemCerpano = dy.Value.CelkemCerpano;
                        yearstat.PocetCerpani  = dy.Value.PocetCerpani;
                    }


                    return(new Analytics.StatisticsSubjectPerYear <Statistics.Dotace>(f.ICO, statistiky));
                }