Пример #1
0
        public Task<IEnumerable<MediaInfo>> Find(string userId = null, int take = 0, DateTime? lastDateTime = null, Boolean ignoreRetentionTime = false)
        {
            using (var ctx = new EfStorageDbContext())
            {
                IQueryable<EfStorageDbContext.MediaInfoEntity> query = ctx.MediaInfo.OrderByDescending(x => x.CreatedAt);
                if (userId != null)
                {
                    query = query.Where(x => x.UserId == userId);
                }

                if (lastDateTime.HasValue)
                {
                    query = query.Where(x => x.CreatedAt < lastDateTime);
                }

                if (!ignoreRetentionTime)
                {
                    query = query.Where(x => x.CreatedAt > _retentionTimeLimit);
                }

                return Task.FromResult<IEnumerable<MediaInfo>>(
                    query
                        .Take(take)
                        .ToList()
                        .Select(x => new MediaInfo() { UserId = x.UserId, ContentType = x.ContentType, CreatedAt = x.CreatedAt, MediaId = x.MediaId })
                        .ToList()
                );
            }
        }
Пример #2
0
 public Task<UserInfo> FindByAuthHash(string authHash)
 {
     using (var ctx = new EfStorageDbContext())
     {
         return Task.FromResult(
             ctx.UserInfo
                 .Where(x => x.AuthHash == authHash)
                 .Select(x => new UserInfo() { UserId = x.UserId, AuthHash = x.AuthHash })
                 .FirstOrDefault()
         );
     }
 }
Пример #3
0
 public Task<MediaInfo> FindByMediaId(Guid mediaId, Boolean ignoreRetentionTime = false)
 {
     using (var ctx = new EfStorageDbContext())
     {
         return Task.FromResult(
             ctx.MediaInfo
                 .Where(x => x.MediaId == mediaId && (ignoreRetentionTime ? true : x.CreatedAt > _retentionTimeLimit))
                 .Select(x => new MediaInfo() { UserId = x.UserId, ContentType = x.ContentType, CreatedAt = x.CreatedAt, MediaId = x.MediaId })
                 .FirstOrDefault()
         );
     }
 }
Пример #4
0
        public async Task Create(MediaInfo mediaInfo)
        {
            using (var ctx = new EfStorageDbContext())
            {
                var mediaInfoEntity = new EfStorageDbContext.MediaInfoEntity()
                {
                    UserId = mediaInfo.UserId,
                    MediaId = mediaInfo.MediaId,
                    CreatedAt = mediaInfo.CreatedAt,
                    ContentType = mediaInfo.ContentType,
                };
                ctx.MediaInfo.Add(mediaInfoEntity);

                await ctx.SaveChangesAsync();
            }
        }
Пример #5
0
        public async Task<bool> InsertOrUpdate(UserInfo userInfo)
        {
            using (var ctx = new EfStorageDbContext())
            {
                var userInfoEntity = ctx.UserInfo
                            .Where(x => x.UserId == userInfo.UserId)
                            .FirstOrDefault();

                if (userInfoEntity == null)
                {
                    userInfoEntity = new EfStorageDbContext.UserInfoEntity() { UserId = userInfo.UserId };
                    ctx.UserInfo.Add(userInfoEntity);
                }
                userInfoEntity.AuthHash = userInfo.AuthHash;

                return (await ctx.SaveChangesAsync() == 1);
            }
        }
Пример #6
0
        public async Task Delete(MediaInfo mediaInfo)
        {
            using (var ctx = new EfStorageDbContext())
            {
                var target = ctx.MediaInfo.FirstOrDefault(x => x.MediaId == mediaInfo.MediaId);

                if (target != null)
                {
                    ctx.MediaInfo.Remove(target);
                }

                await ctx.SaveChangesAsync();
            }
        }