public void AddCustomer(int organizationID, int productID, int versionID)
        {
            using (SqlCommand command = new SqlCommand())
            {
                command.CommandText = @"INSERT INTO 
          OrganizationProducts 
          (OrganizationID, ProductID, ProductVersionID, IsVisibleOnPortal, DateCreated, DateModified, CreatorID, ModifierID) 
          VALUES 
          (@OrganizationID, @ProductID, @ProductVersionID, 1, @DateCreated, @DateModified, @CreatorID, @ModifierID)";
                command.CommandType = CommandType.Text;
                command.Parameters.AddWithValue("@OrganizationID", organizationID);
                command.Parameters.AddWithValue("@ProductID", productID);
                command.Parameters.AddWithValue("@ProductVersionID", versionID);
                command.Parameters.AddWithValue("@DateCreated", DateTime.UtcNow);
                command.Parameters.AddWithValue("@DateModified", DateTime.UtcNow);
                command.Parameters.AddWithValue("@CreatorID", LoginUser.UserID);
                command.Parameters.AddWithValue("@ModifierID", LoginUser.UserID);
                ExecuteNonQuery(command, "OrganizationProducts");
            }

            string organizationName = ((Organization)Organizations.GetOrganization(LoginUser, organizationID)).Name;
            string productName      = ((Product)Products.GetProduct(LoginUser, productID)).Name;
            string versionNumber    = ((ProductVersion)ProductVersions.GetProductVersion(LoginUser, (int)versionID)).VersionNumber;

            string description = "Added product '" + productName + "' version '" + versionNumber + "' to customer '" + organizationName + "'";

            ActionLogs.AddActionLog(LoginUser, ActionLogType.Insert, ReferenceType.ProductVersions, (int)versionID, description);
            ActionLogs.AddActionLog(LoginUser, ActionLogType.Insert, ReferenceType.Products, productID, description);
            ActionLogs.AddActionLog(LoginUser, ActionLogType.Insert, ReferenceType.Organizations, organizationID, description);
        }
        partial void BeforeRowDelete(int productVersionID)
        {
            ProductVersion version     = (ProductVersion)ProductVersions.GetProductVersion(LoginUser, productVersionID);
            Product        product     = (Product)Products.GetProduct(LoginUser, version.ProductID);
            string         description = "Deleted version '" + version.VersionNumber + "' for product '" + product.Name + "'";

            ActionLogs.AddActionLog(LoginUser, ActionLogType.Delete, ReferenceType.ProductVersions, productVersionID, description);
        }