APIToken CreateAPIToken(APIToken APIToken, NpgsqlConnection connection) { if (string.IsNullOrEmpty(APIToken.Token)) { APIToken.CreateToken(_tokenSize); } string insertOrUpdate = "INSERT INTO APIToken (account, channel, token, description, canread, canwrite, validfrom) " + "VALUES(@account, @channel, @token, @description, @canread, @canwrite, @validfrom) " + "RETURNING *;"; return(connection.Query <APIToken>(insertOrUpdate, new { account = APIToken.Account, channel = APIToken.Channel, token = APIToken.Token, description = APIToken.Description, canread = APIToken.CanRead, canwrite = APIToken.CanWrite, validfrom = DateTime.UtcNow } ).Single()); }
public APIToken CreateAPIToken(APIToken APIToken) { if (string.IsNullOrEmpty(APIToken.Token)) { APIToken.CreateToken(_tokenSize); } using var connection = GetNpgsqlConnection(); connection.Open(); using NpgsqlTransaction transaction = connection.BeginTransaction(); string insertOrUpdate = "INSERT INTO APIToken (account, channel, token, description, canread, canwrite, validfrom) " + "VALUES(@account, @channel, @token, @description, @canread, @canwrite, @validfrom) " + "RETURNING *;"; var createdAPIToken = connection.Query <APIToken>(insertOrUpdate, new { account = APIToken.Account, channel = APIToken.Channel, token = APIToken.Token, description = APIToken.Description, canread = APIToken.CanRead, canwrite = APIToken.CanWrite, validfrom = DateTime.UtcNow } ).Single(); transaction.Commit(); return(createdAPIToken); }