示例#1
0
        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);
        }
示例#2
0
        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);
        }
示例#4
0
        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);
        }