public async Task <T> ConvertAsync(SqlServerAttribute input, CancellationToken cancellationToken)
        {
            var data = default(T);

            using (var connection = new SqlConnection(input.ConnectionString))
            {
                var parameters = new DynamicParameters(new { });
                input.SqlParameters.ForEach(param => parameters.Add(param.ParameterName, param.Value));

                data = await connection.QuerySingleAsync <T>(new CommandDefinition(input.Query, parameters)).ConfigureAwait(false);
            }

            return(data);
        }
        public async Task <IEnumerable <T> > ConvertAsync(SqlServerAttribute input, CancellationToken cancellationToken)
        {
            List <T> data = null;

            using (var connection = new SqlConnection(input.ConnectionString))
            {
                var parameters = new DynamicParameters(new { });
                input.SqlParameters.ForEach(param => parameters.Add(param.ParameterName, param.Value));

                //TODO: Check: Either remove ToList since QueryAsync internally uses a list
                //      or change CommandDefinition to be not buffered and yield return items.
                data = (await connection.QueryAsync <T>(new CommandDefinition(input.Query, parameters)).ConfigureAwait(false)).ToList();
            }

            return(data ?? Enumerable.Empty <T>());
        }