/// <summary>
        /// This method fires an event to all parties that have registered with the ServiceEvent
        /// </summary>
        /// <param name="theEvent">The ServiceEvent Type to fire</param>
        /// <param name="sender">The sended object to pass</param>
        /// <param name="e">The ServiceEventArgs object to pass</param>
        public virtual void ProcessEvent(ServiceEvent theEvent, object sender, ServiceEventArgs e)
        {
            //Check whether anyone is attached to the event
            if (theEvent == null)
                return;

            foreach (ServiceEvent te in theEvent.GetInvocationList())
            {
                te(sender, e);
            }
        }