public async Task <int> InsertAsync(RecipeEntity entity) { using (var connection = new SqlConnection(_connectionString)) { await connection.OpenAsync(); using (var transaction = await connection.BeginTransactionAsync()) { var rowsAffected = await connection.ExecuteAsync(@" INSERT INTO [dbo].[Recipes] ([Id] ,[Title] ,[Description] ,[Logo] ,[CreatedDate]) VALUES (@Id ,@Title ,@Description ,@Logo ,@CreatedDate)", new { entity.Id, entity.Title, entity.Description, entity.Logo, entity.CreatedDate }, transaction : transaction); rowsAffected += await _ingredientRepository.InsertAsync(connection, transaction, entity.Ingredients); rowsAffected += await _instructionRepository.InsertAsync(connection, transaction, entity.Instructions); transaction.Commit(); return(rowsAffected); } } }
public async Task <int> InsertAsync(RecipeEntity entity) { using (var connection = new SqlConnection("Data Source=host.docker.internal,5050; Initial Catalog=RecipeBook;User Id=sa;Password=P@ssword123;MultipleActiveResultSets=true")) { await connection.OpenAsync(); using (var transaction = await connection.BeginTransactionAsync()) { var rowsAffected = await connection.ExecuteAsync(@" INSERT INTO [dbo].[Recipes] ([Id] ,[Title] ,[Description] ,[Logo] ,[CreatedDate]) VALUES (@Id ,@Title ,@Description ,@Logo ,@CreatedDate)", new { entity.Id, entity.Title, entity.Description, entity.Logo, entity.CreatedDate }, transaction : transaction); rowsAffected += await _ingredientRepository.InsertAsync(connection, transaction, entity.Ingredients); rowsAffected += await _instructionRepository.InsertAsync(connection, transaction, entity.Instructions); transaction.Commit(); return(rowsAffected); } } }
public async Task <int> UpdateAsync(RecipeEntity entity) { using (var connection = new SqlConnection(_connectionString)) { await connection.OpenAsync(); using (var transaction = connection.BeginTransaction()) { var rowsAffected = await connection.ExecuteAsync(@" UPDATE [dbo].[Recipes] SET [Title] = @Title ,[Description] = @Description ,[Logo] = @Logo WHERE [Id] = @Id" , new { entity.Id, entity.Title, entity.Description, entity.Logo }, transaction : transaction); await _ingredientRepository.DeleteAsync(connection, transaction, entity.Id); rowsAffected += await _ingredientRepository.InsertAsync(connection, transaction, entity.Ingredients); await _instructionRepository.DeleteAsync(connection, transaction, entity.Id); rowsAffected += await _instructionRepository.InsertAsync(connection, transaction, entity.Instructions); transaction.Commit(); return(rowsAffected); } } }