Пример #1
0
        public Task <List <WordResponse> > GetRandomWordsAsync(AnfDbContext dbContext, int count)
        {
            return(dbContext.Words
#if DBSELECT_MYSQL || DBSELECT_MSSQL
                   .FromSqlRaw("SELECT t1.* FROM Words t1 JOIN (SELECT RAND() * (SELECT MAX(Id) FROM Words) AS nid) t2 ON t1.Id > t2.nid")
#elif DBSELECT_SQLITE
                   .FromSqlRaw("SELECT t1.* FROM Words t1 JOIN (SELECT abs(random() / 9.2233720368547799E+18) * (SELECT MAX(Id) FROM Words) AS nid) t2 ON t1.id > t2.nid limit {0}", count)
#else
#error No random get body
#endif
                   .Take(count)
                   .Select(x => new WordResponse
            {
                AuthorId = x.AuthorId,
                Id = x.Id,
                CommitType = x.CommitType,
                CreateTime = x.CreateTime,
                CreatorId = x.CreatorId,
                From = x.From,
                Length = x.Length,
                Text = x.Text,
                Type = x.Type,
                LikeCount = x.LikeCount,
                VisitCount = x.VisitCount,
                AuthorName = x.Author == null ? null : x.Author.UserName,
                CreatorName = x.Creator.UserName
            })
                   .ToListAsync());
        }
Пример #2
0
 public VisitStatisticalService(AnfDbContext dbContext, IDatabase database) : base(dbContext, database)
 {
 }
Пример #3
0
 public WordUserStatisticalService(AnfDbContext dbContext, IDatabase database) : base(dbContext, database)
 {
 }
Пример #4
0
 protected StatisticalService(AnfDbContext dbContext, IDatabase database)
 {
     DbContext = dbContext;
     Database  = database;
 }
Пример #5
0
 public WordDataAccessor(AnfDbContext dbContext, IOptions <WordCacheOptions> options)
 {
     DbContext = dbContext ?? throw new ArgumentNullException(nameof(dbContext));
     Options   = options ?? throw new ArgumentNullException(nameof(options));
 }