Beispiel #1
0
        public async Task <int[]> GenerateTownStats(DateTime statDate)
        {
            var end   = statDate.AddDays(1);
            var item2 = _townRrcRepository.Count(x => x.StatTime >= statDate && x.StatTime < end);

            if (item2 < 44)
            {
                var townRrcList = _rrcService.GetTownRrcStats(statDate);
                foreach (var stat in townRrcList.GetPositionMergeStats(statDate))
                {
                    var subItem = _townRrcRepository.FirstOrDefault(
                        x => x.StatTime >= statDate && x.StatTime < end && x.TownId == stat.TownId);
                    if (subItem == null)
                    {
                        await _townRrcRepository.InsertAsync(stat);
                    }
                    else
                    {
                        var oldId = subItem.Id;
                        stat.MapTo(subItem);
                        subItem.Id = oldId;
                    }
                }
                item2 += _townRrcRepository.SaveChanges();
            }
            var item6 = _townQciRepository.Count(x => x.StatTime >= statDate && x.StatTime < end);

            if (item6 < 44)
            {
                var townQciList = _qciService.GetTownQciStats(statDate);
                foreach (var stat in townQciList.GetPositionMergeStats(statDate))
                {
                    var subItem = _townQciRepository.FirstOrDefault(
                        x => x.StatTime >= statDate && x.StatTime < end && x.TownId == stat.TownId);
                    if (subItem == null)
                    {
                        await _townQciRepository.InsertAsync(stat);
                    }
                    else
                    {
                        var oldId = subItem.Id;
                        stat.MapTo(subItem);
                        subItem.Id = oldId;
                    }
                }
                item6 += _townQciRepository.SaveChanges();
            }
            return(new [] { item2, item6 });
        }