public async Task <Message> Add(Message message, CancellationToken cancellationToken) { logger.LogDebug("Add; Adding message={@Message}", message); int id; using (var connection = await dbConnectionFactory.CreateAndOpenConnection()) { id = await connection.QuerySingleAsync <int>( new CommandDefinition("INSERT INTO \"Messages\" (\"AuthorId\", \"SendOn\", \"MessageId\") VALUES(@AuthorId, @SendOn, @MessageId) RETURNING \"Id\"", message, cancellationToken : cancellationToken)).ConfigureAwait(false); } logger.LogInformation("Add; Inserted Id: {@Result}", id); return(message with { Id = id }); }