public async Task <bool> Handle(CreateBulkMemberCommand request, CancellationToken cancellationToken) { var member = new Domain.AggregatesModel.MemberAggregate.Member(request.Name, request.Address); foreach (var accountItem in request.Accounts) { member.AddMemberAccount(accountItem.Balance, accountItem.Status, accountItem.Name); } _context.Members.Add(member); await _context.SaveChangesAsync(cancellationToken); return(true); }
public async Task <long> Handle(RedeemPointCommand request, CancellationToken cancellationToken) { var memberAccount = await _context.MemberAccounts.FindAsync(request.MemberAccountId); memberAccount.RedeemPointFromAccount(request.Point); _context.MemberAccounts.Update(memberAccount); await _context.SaveChangesAsync(cancellationToken); //publish to integration event await _mediator.Send(new PointsRedeemed { AccountId = memberAccount.Id, Point = request.Point }, cancellationToken); return(memberAccount.Id); }
public async Task <long> Handle(CreateAccountCommand request, CancellationToken cancellationToken) { var member = await _context.Members.FindAsync(request.MemberId); member.AddANewEmptyMemberAccount(request.MemberAccount.Name); _context.Members.Update(member); await _context.SaveChangesAsync(cancellationToken); //publish to integration event await _mediator.Send(new AccountCreated { Id = member.MemberAccounts.ElementAt(0).Id, Name = request.MemberAccount.Name }, cancellationToken); return(member.Id); }
public async Task <long> Handle(CreateMemberCommand request, CancellationToken cancellationToken) { var member = new Domain.AggregatesModel.MemberAggregate.Member(request.Name, request.Address); _context.Members.Add(member); await _context.SaveChangesAsync(cancellationToken); //publish to integration event await _mediator.Send(new MemberCreated { Id = member.Id, Name = request.Name, Address = request.Address }, cancellationToken); return(member.Id); }