private void DisplayMessages(CurrentExecutionViewModel CurrentExecutionViewModel) { UpdateProgress uiUpdaterExecution = new UpdateProgress(DisplayExecutionMessage); UpdateProgress uiUpdaterMsBuild = new UpdateProgress(DisplayMsBuildMessage); string msgArgsStr; MessageArgsLogger messageArgs; while (true) { if (CurrentExecutionViewModel.MessagesToBeDisplayed.Count > 0) { bool isDequeued = CurrentExecutionViewModel.MessagesToBeDisplayed.TryDequeue(out msgArgsStr); if (isDequeued) { messageArgs = (MessageArgsLogger)ATACore.CommandExecutor.MessageDeserializer(msgArgsStr, typeof(MessageArgsLogger)); switch (messageArgs.MessageSource) { case MessageSource.MsBuildLogger: rtbMsBuild.Dispatcher.BeginInvoke(uiUpdaterMsBuild, DispatcherPriority.Normal, messageArgs.LogMessage); break; case MessageSource.EnqueueLogger: case MessageSource.DenqueueLogger: case MessageSource.ExecutionLogger: rtbExecution.Dispatcher.BeginInvoke(uiUpdaterExecution, DispatcherPriority.Normal, messageArgs.LogMessage); break; case MessageSource.ResultsParser: NavigateToNextPage ng = new NavigateToNextPage(Navigate); mainGrid.Dispatcher.BeginInvoke(ng, DispatcherPriority.Send, messageArgs.LogMessage); break; } } } } }
public ExecutionWindow(CurrentExecutionViewModel currentExecutionViewModel) { InitializeComponent(); MainWindow.CurrentExecutionViews.Add(currentExecutionViewModel); int index = MainWindow.CurrentExecutionViews.Count - 1; this.ContentSource = new Uri(String.Concat("/ExecutionView.xaml#currentExecutionViewModelIndex=", index), UriKind.Relative); //ExecutionView executionView = new ExecutionView(currentExecutionViewModel); //this.Content = executionView; }
private void MessageListener(CurrentExecutionViewModel CurrentExecutionViewModel) { while (isConnected) { string messageStr = ATACore.TcpWrapperProcessor.TcpClientWrapper.ReadClientMessage(clientTcpListner); if (messageStr != null) { messageStr = messageStr.CleanMessageEnd(); CurrentExecutionViewModel.MessagesToBeDisplayed.Enqueue(messageStr); } } }