Report the status of Encog training to the cloud.
        /// <summary>
        /// Should be called after training has completed and the iteration method
        /// will not be called any further.
        /// </summary>
        public virtual void FinishTraining()
        {
#if !SILVERLIGHT
            if (this.statusUtil != null)
            {
                this.statusUtil.Finish();
                this.statusUtil = null;
            }
#endif
            Network.Structure.UpdateFlatNetwork();
        }
        /// <summary>
        /// Call the strategies before an iteration.
        /// </summary>
        public void PreIteration()
        {
            this.iteration++;
#if !SILVERLIGHT
            if (this.statusUtil != null)
            {
                this.statusUtil.Update();
            }
            else
            {
                if (this.Cloud != null)
                {
                    this.statusUtil = new TrainingStatusUtility(this.Cloud, this);
                    this.statusUtil.Update();
                }
            }
#endif


            foreach (IStrategy strategy in this.strategies)
            {
                strategy.PreIteration();
            }
        }
        /// <summary>
        /// Should be called after training has completed and the iteration method
        /// will not be called any further.
        /// </summary>
        public virtual void FinishTraining()
        {
#if !SILVERLIGHT
            if (this.statusUtil != null)
            {
                this.statusUtil.Finish();
                this.statusUtil = null;
            }
#endif
            Network.Structure.UpdateFlatNetwork();
        }
        /// <summary>
        /// Call the strategies before an iteration.
        /// </summary>
        public void PreIteration()
        {
            this.iteration++;
#if !SILVERLIGHT
            if (this.statusUtil != null)
            {
                this.statusUtil.Update();
            }
            else
            {
                if (this.Cloud != null)
                {
                    this.statusUtil = new TrainingStatusUtility(this.Cloud, this);
                    this.statusUtil.Update();
                }
            }
#endif


            foreach (IStrategy strategy in this.strategies)
            {
                strategy.PreIteration();
            }
        }