private object DoExecuteCommand(ICommand command)
{
object returnValue;
ShareCurrentObject();
try
{
Clock.Pause();
try
{
_commandLog.WriteCommand(ApplyCommandDecorators(command));
returnValue = command.Execute(_system);
}
finally
{
Clock.Resume();
}
}
finally
{
UnshareCurrentObject();
}
return returnValue;
}