public void ApplyTo(IViewResultListener resultListener) { var defnCompiled = _msg as ViewDefinitionCompiledCall; var compileFailedCall = _msg as ViewDefinitionCompilationFailedCall; var jobResultReceivedCall = _msg as JobResultReceivedCall; var cycleCompletedCall = _msg as CycleCompletedCall; var cycleFailedCall = _msg as CycleExecutionFailedCall; var completedCall = _msg as ProcessCompletedCall; var terminatedCall = _msg as ProcessTerminatedCall; var exception = _msg as Exception; if (defnCompiled != null) { resultListener.ViewDefinitionCompiled(defnCompiled.CompiledViewDefinition); } else if (compileFailedCall != null) { resultListener.ViewDefinitionCompilationFailed(compileFailedCall.ValuationTime, compileFailedCall.Exception); } else if (cycleCompletedCall != null) { resultListener.CycleCompleted(cycleCompletedCall.FullResult, cycleCompletedCall.DeltaResult); } else if (cycleFailedCall != null) { resultListener.CycleExecutionFailed(cycleFailedCall.ExecutionOptions, cycleFailedCall.Exception); } else if (completedCall != null) { resultListener.ProcessCompleted(); } else if (terminatedCall != null) { resultListener.ProcessTerminated(terminatedCall.ExecutionInterrupted); } else if (jobResultReceivedCall != null) { //TODO DOTNET-37 } else if (exception != null) { resultListener.ViewDefinitionCompilationFailed(DateTimeOffset.Now, new JavaException(exception.GetType().ToString(), exception.Message)); } else { throw new NotImplementedException(); } }