public LazyMoreLikeThisOperation(InMemoryDocumentSessionOperations session, MoreLikeThisQuery query)
        {
            if (session == null)
            {
                throw new ArgumentNullException(nameof(session));
            }

            _query       = query ?? throw new ArgumentNullException(nameof(query));
            _conventions = session.Conventions;
            _operation   = new MoreLikeThisOperation(session, query);
        }
        public async Task <List <T> > MoreLikeThisAsync <T>(MoreLikeThisQuery query)
        {
            if (query == null)
            {
                throw new ArgumentNullException(nameof(query));
            }

            var operation = new MoreLikeThisOperation(this, query);

            var command = operation.CreateRequest();
            await RequestExecutor.ExecuteAsync(command, Context, sessionInfo : SessionInfo).ConfigureAwait(false);

            var result = command.Result;

            operation.SetResult(result);

            return(operation.Complete <T>());
        }
        public List <T> MoreLikeThis <T>(MoreLikeThisQuery query)
        {
            if (query == null)
            {
                throw new ArgumentNullException(nameof(query));
            }

            var operation = new MoreLikeThisOperation(this, query);

            var command = operation.CreateRequest();

            RequestExecutor.Execute(command, Context, sessionInfo: SessionInfo);

            var result = command.Result;

            operation.SetResult(result);

            return(operation.Complete <T>());
        }