public async Task <DivingTimePoco> AddAsync(DivingTimePoco poco) { var parameters = new { p_diver_id = poco.DiverId, p_year = poco.Year, p_working_minutes = poco.WorkingMinutes }; var sql = "with ins as (INSERT into diving_hours(diver_id, year, working_minutes) VALUES(@p_diver_id, @p_year, @p_working_minutes) returning *) select * from ins left join divers d on ins.diver_id = d.diver_id"; using (IDbConnection conn = Connection) { var addedTimePoco = (await conn.QueryAsync <DivingTimePoco, DiverPoco, DivingTimePoco>(sql, (time, diver) => { time.Diver = diver; return(time); }, splitOn: "diver_id", param: parameters)) .FirstOrDefault(); return(addedTimePoco); } }
public async Task <DivingTimePoco> UpdateAsync(DivingTimePoco poco) { var parameters = new { p_diver_id = poco.DiverId, p_year = poco.Year, p_working_minutes = poco.WorkingMinutes }; string sql = "UPDATE diving_hours set working_minutes = @p_working_minutes where diver_id = @p_diver_id and year = @p_year returning *;"; using (IDbConnection conn = Connection) { var updatedTimePoco = (await conn.QueryAsync <DivingTimePoco>(sql, parameters)).FirstOrDefault(); return(updatedTimePoco); } }