Enemy AI doesn't shoot!

using UnityEngine;
using System.Collections;

public class EnemyAi : MonoBehaviour {

	public GameObject Target;

	public float minDist = 20;
	public float maxDist = 10;

	public Transform FirePoint;

	public Rigidbody Bullet;

	float Health = 100f;
	float Damage = 25;

	public void InflictDamage() {
		Health -= Damage;
	}

	// Use this for initialization
	void Start () {
		Target = GameObject.FindGameObjectWithTag ("Player");
	}
	
	// Update is called once per frame
	void Update () {
		transform.LookAt(Target.transform.position);

		if (Health == 0) {
			Destroy(gameObject);
				}

		if(Vector3.Distance(transform.position,Target.transform.position) >= minDist){
			
			transform.position += transform.forward * 4 *Time.deltaTime;
			
			
			
			if(Vector3.Distance(transform.position,Target.transform.position) <= maxDist)
			{
				ShootAtHere();
			} 
		}
	}

	void ShootAtHere() {

		Rigidbody BulletSpawn;

		BulletSpawn = Instantiate (Bullet, FirePoint.position, FirePoint.rotation)as Rigidbody;
		BulletSpawn.AddForce (transform.forward * 1000);

	}
}

There don’t seem to be any Syntax errors, so I’m clueless!

Glad you found the solution (in comments). Just to clarify what is happening:

You have a nested if function that means the second if will never get executed

For line 35 to be true the distance must be greater then minDist (20)

For line 41 to be true the distance must be less then maxDist (10)

Therefore line 43 ShootAtHere() will never be executed.