/// <summary> /// Adds an airline item /// </summary> /// <param name="source">New item to be added.</param> /// <returns>The id of the newly created item.</returns> public async Task <Bm> AddAsync(Bm source) { const string sqlQuery = "INSERT INTO airlines (name, iata) VALUES (@Name, @Iata) RETURNING id AS Id"; using var conn = _conn.GetConnection(); source.Id = await conn.QuerySingleAsync <int>(sqlQuery, source); return(source); }
/// <summary> /// Updates content of an existed airline /// </summary> /// <param name="id">The id of an item to be updated.</param> /// <param name="source">The information to update content of an existed airline.</param> /// <returns>"0" if item was not updated, otherwise >"0".</returns> public async Task <Bm> UpdateAsync(int id, Bm source) { source.Id = id; const string sqlQuery = "UPDATE airlines SET name=@Name, iata=@Iata WHERE id=@Id RETURNING id AS Id, iata AS Iata, name AS Name;"; using var conn = _conn.GetConnection(); return(await conn.QuerySingleOrDefaultAsync <Bm>(sqlQuery, source)); }
/// <summary> /// Partial update of a record /// </summary> /// <param name="id">Id of a record.</param> /// <param name="property">Column name in a class.</param> /// <param name="model">New value.</param> /// <returns>Updated item.</returns> public async Task <Bm> PatchRecordAsync(int id, string property, Bm model) { var tablePropertyName = AllowedColumns.GetValueOrDefault(property); model.Id = id; string sqlQuery = $"UPDATE airlines SET {tablePropertyName}=@{property} WHERE id=@id RETURNING id AS Id, iata AS Iata, name AS Name;"; using var conn = _conn.GetConnection(); return(await conn.QuerySingleOrDefaultAsync <Bm>(sqlQuery, model)); }