public async Task <MemberDto> Handle(DeleteMemberCommand request, CancellationToken cancellationToken)
        {
            var memberEntity = await _dbContext
                               .Members
                               .SingleOrDefaultAsync(m => m.MemberId == request.MemberId, cancellationToken);

            if (memberEntity is null)
            {
                throw new NullReferenceException($"Member [memberId: {request.MemberId}] not found");
            }

            _dbContext.Remove(memberEntity);
            _ = await _dbContext.SaveChangesAsync(cancellationToken);

            var deletedMemberAgreements = await _dbContext
                                          .Agreements
                                          .Where(x => x.MemberId == request.MemberId)
                                          .ToListAsync(cancellationToken);

            foreach (var agreement in deletedMemberAgreements)
            {
                _ = _dbContext.Remove(agreement);
            }

            _ = await _dbContext.SaveChangesAsync(cancellationToken);

            _deleteMemberSender.DeleteMember(memberEntity.MemberId);

            var memberDto = memberEntity.Adapt <MemberDto>();

            return(memberDto);
        }