コード例 #1
0
    public async Task ExtendMemberSubscription(string email, System.DateTime subscriptionEndDate)
    {
        var userId = await _userLookup.FindUserIdByEmailAsync(email);

        var spec   = new MemberByUserIdSpec(userId);
        var member = await _memberRepository.GetBySpecAsync(spec);

        if (member is null)
        {
            throw new MemberWithEmailNotFoundException(email);
        }
        member.ExtendCurrentSubscription(subscriptionEndDate);
    }
コード例 #2
0
    public async Task <Member> GetMemberByEmailAsync(string memberEmail)
    {
        var userId = await _userLookup.FindUserIdByEmailAsync(memberEmail);

        var spec   = new MemberByUserIdSpec(userId);
        var member = await _memberRepository.GetBySpecAsync(spec);

        if (member is null)
        {
            throw new MemberWithEmailNotFoundException(memberEmail);
        }

        return(member);
    }
コード例 #3
0
        private async Task HandleNewCustomerSubscriptionWithEmailAlreadyMember(string subscriptionId, decimal paymentAmount)
        {
            var customerId = _paymentHandlerSubscription.GetCustomerId(subscriptionId);
            var email      = _paymentHandlerCustomer.GetCustomerEmail(customerId);

            await AddNewSubscriberBillingActivity(subscriptionId, email, paymentAmount);

            var subscriptionDateTimeRange = _paymentHandlerSubscription.GetDateTimeRange(subscriptionId);

            var userId = await _userLookupService.FindUserIdByEmailAsync(email);

            var spec   = new MemberByUserIdSpec(userId);
            var member = await _repository.GetBySpecAsync(spec);

            if (member != null)
            {
                member.AddSubscription(subscriptionDateTimeRange);
            }
        }
コード例 #4
0
    private async Task HandleNewCustomerSubscriptionWithEmailAlreadyMember(string subscriptionId, decimal paymentAmount)
    {
        var customerId             = _paymentHandlerSubscription.GetCustomerId(subscriptionId);
        var paymentHandlerCustomer = _paymentHandlerCustomerService.GetCustomer(customerId);

        await AddNewSubscriberBillingActivity(subscriptionId, paymentHandlerCustomer.Email, paymentAmount);

        var subscriptionDateTimeRange = _paymentHandlerSubscription.GetDateTimeRange(subscriptionId);

        var userId = await _userLookupService.FindUserIdByEmailAsync(paymentHandlerCustomer.Email);

        var spec   = new MemberByUserIdSpec(userId);
        var member = await _repository.GetBySpecAsync(spec);

        if (member != null)
        {
            // TODO this should take in the subscription plan id - currently hard-coded to monthly
            member.AddSubscription(subscriptionDateTimeRange, 1);
        }
    }
コード例 #5
0
        public async Task RemoveUserFromMemberRoleAsync(string email)
        {
            var userId = await _userLookup.FindUserIdByEmailAsync(email);

            await _userRoleMembershipService.RemoveUserFromRoleByRoleNameAsync(userId, Constants.MEMBER_ROLE_NAME);
        }