Exemplo n.º 1
0
 public Task <AnfComicRank[]> SaveAsync(RankLevels level)
 {
     if (level == RankLevels.Hour)
     {
         return(SaveAsync(RankLevels.Hour, dbContext.HourRanks));
     }
     else if (level == RankLevels.Day)
     {
         return(SaveAsync(RankLevels.Day, dbContext.DayRanks));
     }
     else if (level == RankLevels.Month)
     {
         return(SaveAsync(RankLevels.Month, dbContext.MonthRanks));
     }
     return(Task.FromResult <AnfComicRank[]>(null));
 }
Exemplo n.º 2
0
        public async Task <AnfComicRank[]> SaveAsync <T>(RankLevels level, DbSet <T> rankSet)
            where T : AnfComicRank, new()
        {
            var datas = await comicRankService.RangeAsync(rankOptions.Value.SaveRankCount);

            if (datas.Length == 0)
            {
                return(Array.Empty <AnfComicRank>());
            }
            var time = DateTime.Now;

            if (level == RankLevels.Hour)
            {
                time = new DateTime(time.Year, time.Month, time.Day, time.Hour, 0, 0);
            }
            else if (level == RankLevels.Day)
            {
                time = new DateTime(time.Year, time.Month, time.Day, 0, 0, 0);
            }
            else if (level == RankLevels.Month)
            {
                time = new DateTime(time.Year, time.Month, 1, 0, 0, 0);
            }
            else
            {
                throw new NotSupportedException(level.ToString());
            }
            var i        = 1;
            var entities = datas.Select(x => new T
            {
                Address    = x.Element.ToString(),
                No         = i++,
                Time       = time,
                VisitCount = x.Score
            }).ToArray();
            await rankSet.BulkInsertAsync(entities);

            return(entities);
        }