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); }
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); }