////////////////////////////////////////////////////////////////////////////////////////////////////
        /// \fn public void MessageReceiveReport(BaseProcess process, BaseMessage message)
        ///
        /// \brief Message receive report.
        ///
        /// \brief #### Algorithm.
        ///
        /// \brief #### Usage Notes.
        ///
        /// \author Main
        /// \date 24/01/2017
        ///
        /// \param process The process.
        /// \param message The message.
        ////////////////////////////////////////////////////////////////////////////////////////////////////

        public void MessageReceiveReport(BaseProcess process, BaseMessage message)
        {
            vectorClock[process.ea[ne.eak.Id]] += 1;
            Logger.Log(Logger.LogMode.MainLogAndMessageTrace, "RunningHandler", "MessageReceiveReport", " MessageReceiveReport ", message, "RunningHandler");
            if (finishDetector.MessageReceiveReport(process, message, network))
            {
                network.UpdateRunningStatus(new object[] { processesInStep });
                Logger.Log(Logger.LogMode.MainLogAndMessageTrace, "RunningHandler TerminationAlgorithmStatus", "TerminationAlgorithmStatus", " TerminationAlgorithmStatus ", finishDetector.ReportStatus(), "RunningHandler TerminationAlgorithmStatus");
                Logger.Log(Logger.LogMode.MainLogAndMessageTrace, "RunningHandler", "", "-----------------------End Step " + step.ToString() + " -------------", "", "RunningHandler");
                MessageRouter.UpdateInitRunningPresentation();
                step++;
            }
            else
            {
                Logger.Log(Logger.LogMode.MainLogAndMessageTrace, "RunningHandler TerminationAlgorithmStatus", "TerminationAlgorithmStatus", " TerminationAlgorithmStatus ", finishDetector.ReportStatus(), "RunningHandler TerminationAlgorithmStatus");
            }
        }