public async Task <AgreementDto> Handle(AddAgreementCommand request, CancellationToken cancellationToken)
        {
            var agreementEntity = request.Agreement.Adapt <Agreement>();

            var membershipEntity = await _dbContext
                                   .Memberships
                                   .FirstOrDefaultAsync(m => m.Id == agreementEntity.MembershipId,
                                                        cancellationToken);

            if (membershipEntity is not null)
            {
                agreementEntity.Name = membershipEntity.Name;
            }

            _ = await _dbContext.AddAsync(agreementEntity, cancellationToken);

            _ = await _dbContext.SaveChangesAsync(cancellationToken);

            var newAgreement = _dbContext
                               .Agreements
                               .Where(m => m.MemberId == request.Agreement.MemberId)
                               .AsEnumerable()
                               .LastOrDefault();

            if (newAgreement is null)
            {
                throw new NullReferenceException("Failed to add agreement. Try again");
            }

            var newAgreementDto = newAgreement.Adapt <AgreementDto>();

            _addAgreementSender.SendAgreement(agreementEntity);

            return(newAgreementDto);
        }
Пример #2
0
        public async Task <MemberDto> Handle(AddMemberCommand request, CancellationToken cancellationToken)
        {
            var pesel = request.Member.Pesel;

            var memberEntity = request.Member.Adapt <Member>();

            memberEntity.BirthDate = BirthDayDateCalculator.ExtractFromPesel(memberEntity.Pesel);

            _ = await _dbContext.AddAsync(memberEntity, cancellationToken);

            _ = await _dbContext.SaveChangesAsync(cancellationToken);

            var newMember = await _dbContext
                            .Members
                            .SingleOrDefaultAsync(m => m.Pesel == pesel, cancellationToken);

            if (newMember is null)
            {
                throw new NullReferenceException("Failed to add member. Try again");
            }

            var newMemberDto = newMember.Adapt <MemberDto>();

            _addMemberSender.SendMember(newMember);

            return(newMemberDto);
        }