JS to C#, anyone?

Im having trouble converting the following code… Any help is very appreciatted!

#pragma strict
var colliding : Collider;

var body : Rigidbody;

var forceMultiplier = 25;

function OnCollisionEnter (collisionInfo : Collision) {

    if (collisionInfo.gameObject.name == "Ball") {

        var contactNormal = collisionInfo.contacts[0];

                var rot = Quaternion.FromToRotation(Vector3.up, contactNormal.normal);

                var pos = contactNormal.point;

                var rv = collisionInfo.relativeVelocity.magnitude;

        direction = body.transform.position - pos;

        reflectBallTo = Vector3.Reflect (pos, direction);

        colliding.gameObject.rigidbody.AddForce (reflectBallTo * forceMultiplier);

    }   

}

Thiiiis should work, might have a few minor bugs. But honestly, I only did this because I had nothing better to do. If it doesn’t work, spend time fixing it to work before going any further with C#. That’s how you learn, fix stuff up.

using UnityEngine;
using System.Collections;
using System;

public class BallCollide : MonoBehavior
{
	public Collider colliding;
	public RigidBody body;
	public float forceMultiplier = 25;
	 
	public void OnCollisionEnter(Collision collisionInfo) 
	{
		if (collisionInfo.gameObject.name == "Ball")
		{
			string contactNormal = collisionInfo.contacts[0];
			Quaternion rot = Quaternion.FromToRotation(Vector3.up, contactNormal.normal);
			// This might supposed to be something else, but I'm guessing it's a Quaternion.
			float pos = contactNormal.point;
			var rv = collisionInfo.relativeVelocity.magnitude;
			// I have no idea what this is supposed to be, which I'm kicking myself for.
			var direction = body.transform.position - pos;
			 // Again, no idea. Might be a float[]
			 
			Vector3 reflectBallTo = Vector3.Reflect (pos, direction);
			 
			colliding.gameObject.rigidbody.AddForce (reflectBallTo * forceMultiplier);
		}
	}
}