예제 #1
0
 public IEnumerable <T> GetRegionStats <T>(Func <TStat, T> selector,
                                           Func <TStat, string> regionSelector, string region)
 {
     return(RegionStats.Select(x => x.Value).Select(stats =>
                                                    stats.FirstOrDefault(x => regionSelector(x) == region)).Select(
                stat => stat != null ? selector(stat) : default(T)).ToList());
 }
예제 #2
0
        protected DailyStatList(IEnumerable <TStat> stats, string regionName)
            : this()
        {
            IEnumerable <DateTime> dates = stats.Select(x => x.StatDate).Distinct();

            foreach (DateTime date in dates)
            {
                IEnumerable <TStat> oneDayStats = stats.Where(x => x.StatDate == date);
                TStat currentCityStat           = oneDayStats.GetMergeStat(regionName);
                SummaryStats.Add(date, currentCityStat);
                RegionStats.Add(date, oneDayStats);
                IEnumerable <string> existedRegions = oneDayStats.Select(x => x.Region).Distinct();
                foreach (string region in existedRegions)
                {
                    if (Regions.FirstOrDefault(x => x == region) == null)
                    {
                        Regions.Add(region);
                    }
                }
            }
        }
예제 #3
0
        public async Task SeedRegionStats()
        {
            foreach (var reg in _context.Region.Include(rs => rs.Stats).ToList())
            {
                var countryCount = await GetTotlCountryNumberForRegionName(reg.Name);

                if (reg.Stats == null)
                {
                    var newStats = new RegionStats()
                    {
                        CountryCount = countryCount, RegionId = reg.Id
                    };
                    reg.Stats = newStats;

                    await _context.SaveChangesAsync();
                }
                else if (reg.Stats.CountryCount != countryCount)
                {
                    reg.Stats.CountryCount = countryCount;
                    await _context.SaveChangesAsync();
                }
            }
        }