public async Task <int> Handle(RegisterUserCommand request, CancellationToken cancellationToken)
        {
            var entity = _mapper.Map <User>(request.User);

            if (_context.Users.Any(u => u.Username.Equals(entity.Username)))
            {
                throw new DuplicateEntityException("User", entity.Username);
            }

            _context.Users.Add(entity);
            await _context.SaveChangesAsync(cancellationToken);

            return(entity.Id);
        }
        public async Task <int> Handle(AddEntryToPhonebookCommand request, CancellationToken cancellationToken)
        {
            Entry entry = _mapper.Map <Entry>(request.Entry);

            PhoneBook phoneBook = _context.PhoneBooks.Where(p => p.Id == request.Entry.PhoneBookId).FirstOrDefault();

            if (phoneBook == null)
            {
                throw new NotFoundException(phoneBook.GetType().Name, request.Entry.PhoneBookId);
            }
            if (!phoneBook.Entries.Contains(entry))
            {
                phoneBook.Entries.Add(entry);
            }
            else
            {
                throw new DuplicateEntityException(entry.GetType().Name, entry.Name);
            }

            await _context.SaveChangesAsync();

            return(entry.Id);
        }