示例#1
0
        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);
                }
            }
        }
示例#3
0
        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);
                }
            }
        }