Exemple #1
0
        public virtual async Task UpgradeCustomerUserGroupAsync(string userId, TblUserGroups userGroup, DateTime?startDate = null)
        {
            if (startDate == null)
            {
                startDate = DateTime.Now;
            }

            var subscriptionExpireDate = startDate?.AddTimePeriodToDateTime(userGroup.SubscriptionExpirationPeriodType,
                                                                            userGroup.SubscriptionExpirationTime);

            await _dbContext.Users.Where(p => p.Id == userId).UpdateAsync(p => new TblUsers()
            {
                SubscriptionDate       = startDate,
                SubscriptionExpireDate = subscriptionExpireDate,
                UserGroupId            = userGroup.Id
            });

            _eventPublisher.Publish(new CustomerUserGroupChangeEvent(userId, userGroup, startDate));
        }