Beispiel #1
0
        public async Task <bool> ActiveVIP(ActiveVIPDto dto)
        {
            var vipRecord = await _vipRepo.FindByUserId(dto.UserId, AbortToken);

            if (vipRecord == null)
            {
                await _vipRepo.AddAsync(VIPUser.Create(dto.UserId, dto.EffectDay), AbortToken);

                return(true);
            }
            if (vipRecord.ExpireTime < DateTime.Now)
            {
                vipRecord.ExpireTime = DateTime.Now.AddDays(dto.EffectDay);
                return(true);
            }

            return(false);
        }
Beispiel #2
0
        public async Task <VIPUserDto> GetVIPInfo(Guid userId)
        {
            var vipUser = await _vipRepo.FindByUserId(userId, AbortToken);

            bool isVip = vipUser != null && vipUser.ExpireTime > DateTime.Now;

            return(new VIPUserDto()
            {
                IsVip = isVip,
                ExpireTime = vipUser?.ExpireTime,
                Level = vipUser?.Level ?? 0,
            });
        }