예제 #1
0
        public async Task HandleSubscriptionsAsync()
        {
            var userSubscriptions = await _uow.UserSubscriptionRepository.GetAll()
                                    .Include(us => us.Subscription)
                                    .ToListAsync();

            var today    = DateTime.UtcNow;
            var tomorrow = today.AddDays(1);

            foreach (var userSubscription in userSubscriptions)
            {
                if (userSubscription.IsActive && userSubscription.ValidAt.Date == tomorrow.Date)
                {
                    await _subscriptionService.NotifySubscriptionAboutToExpireAsync(userSubscription.Id);
                }
                else if (userSubscription.IsActive && userSubscription.ValidAt.Date < today.Date)
                {
                    await _subscriptionService.DisableUserSubscriptionAsync(userSubscription.Id);
                }
            }
        }