/// <summary> /// 根据文券事件更新用户的文券数量 /// </summary> /// <param name="user">用户对象</param> /// <param name="event">文券事件</param> /// <param name="description">文券记录描述,会被序列化成 JSON 存储到数据库</param> /// <param name="logTime">文券日志记录时间,如果为 null 则使用当前时间</param> /// <exception cref="ArgumentNullException">user 参数为 null</exception> public async Task UpdateAsync(KeylolUser user, CouponEvent @event, object description = null, DateTime?logTime = null) { await UpdateAsync(user, @event, @event.ToCouponChange(), description, logTime); }
/// <summary> /// 判断指定用户是否有足够文券触发指定事件 /// </summary> /// <param name="userId">用户 ID</param> /// <param name="event">文券事件</param> /// <returns>可以触发指定事件返回 true,不能则返回 false</returns> public async Task <bool> CanTriggerEventAsync(string userId, CouponEvent @event) { var user = await _userManager.FindByIdAsync(userId); return(user.Coupon + @event.ToCouponChange() >= 0); }