public async Task <JumperResponseModel> MergeJumpers(JumperMergeRequestModel model) { using (var trans = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled)) { foreach (var sourceJumperId in model.SourceJumperIds) { await _database.ExecuteAsync(@" UPDATE final_standings SET jumper_id = @DestinationJumperId WHERE jumper_id = @SourceJumperId; UPDATE final_results SET jumper_id = @DestinationJumperId WHERE jumper_id = @SourceJumperId; UPDATE qualification_results SET jumper_id = @DestinationJumperId WHERE jumper_id = @SourceJumperId; ", new { DestinationJumperId = model.DestinationJumperId, SourceJumperId = sourceJumperId }); await _database.Delete <Jumper>(sourceJumperId); } await _database.ExecuteAsync("REFRESH MATERIALIZED VIEW jumper_results"); trans.Complete(); } return(await GetJumper(model.DestinationJumperId)); }
public Task <JumperResponseModel> MergeJumpers([FromBody] JumperMergeRequestModel model) { return(_jumperService.MergeJumpers(model)); }