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); }
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); }
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); } }
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); } }
public async Task RemoveUserFromMemberRoleAsync(string email) { var userId = await _userLookup.FindUserIdByEmailAsync(email); await _userRoleMembershipService.RemoveUserFromRoleByRoleNameAsync(userId, Constants.MEMBER_ROLE_NAME); }