public IActionResult PutShop(int id, ShopInputDTO shop)
        {
            if (!repository.Update(id, shop))
            {
                return(NotFound());
            }

            return(Ok());
        }
        public int Add(ShopInputDTO inputEntity)
        {
            using IDbConnection connection = new SqlConnection(connectionString);
            connection.Open();
            using IDbTransaction transaction = connection.BeginTransaction();

            try {
                var insertQuery     = "INSERT INTO Shops (Address) VALUES (@Address); SELECT SCOPE_IDENTITY()";
                var createdEntityId = connection.ExecuteScalar <int>(insertQuery, inputEntity, transaction);

                AddShopProducts(connection, transaction, createdEntityId, inputEntity.ProductIds);

                transaction.Commit();

                return(createdEntityId);
            } catch {
                transaction.Rollback();
                throw;
            }
        }
        public bool Update(int id, ShopInputDTO inputEntity)
        {
            using IDbConnection connection = new SqlConnection(connectionString);
            connection.Open();
            using IDbTransaction transaction = connection.BeginTransaction();

            try {
                var  updateQuery = "Update Shops SET Address = @Address WHERE Id = @Id";
                Shop entity      = mapper.Map <Shop>(inputEntity);
                entity.Id = id;
                var result = connection.Execute(updateQuery, entity, transaction) == 1;

                var deleteShopProducts = "DELETE FROM ProductShops WHERE ShopId = @Id";
                connection.Execute(deleteShopProducts, entity, transaction);
                AddShopProducts(connection, transaction, id, inputEntity.ProductIds);

                transaction.Commit();

                return(result);
            } catch {
                transaction.Rollback();
                throw;
            }
        }
 public int PostShop(ShopInputDTO item)
 {
     return(repository.Add(item));
 }