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; } } } } }
private void ProcessSelectedProjectInfos() { try { string tfsProjectPath = @"D:\AutomationTestAssistant\TfsOperations.proj"; string currentUserName = ATACore.RegistryManager.GetUserName(); string currentTfsUserName = ATACore.Managers.MemberManager.GetTfsUserNameByUserName(ATACore.Managers.ContextManager.Context, currentUserName); ATACore.Managers.ContextManager.Context.Dispose(); List<Task> taskToBeExecuted = new List<Task>(); taskToBeExecuted.Add(new Task(() => {})); foreach (var cTeam in MainWindow.AdminProjectSettingsViewModel.Teams) { foreach (var cProject in cTeam.ObservableProjects) { if (!cProject.IsSelected) continue; string localPath = GetProjectLocalPath(currentUserName, cProject.TfsPath); if (String.IsNullOrEmpty(localPath)) continue; string workspaceName = ATACore.RegistryManager.GetWorkspaceName(currentUserName, localPath); Task t = taskToBeExecuted[taskToBeExecuted.Count - 1].ContinueWith((antecedent) => { if (!String.IsNullOrEmpty(workspaceName)) { DeleteWorkSpaceIfExists(tfsProjectPath, currentTfsUserName, cProject.TfsUrl, MainWindow.LocalMsBuildLogIpSettings, workspaceName); cProject.WorkspacesForDelete.Add(workspaceName); } }); taskToBeExecuted.Add(t); //IF ALREADY EXISTS IS GOING TO UPDATE THE OLD VALUE SHOULD BE TESTED! string tfsUrl = cProject.TfsUrl; string tfsPath = cProject.TfsPath; IpAddressSettings cIS = MainWindow.LocalMsBuildLogIpSettings; if (!AlreadyCreatedWorkspaces.Contains(tfsPath)) { ATACore.Utilities.FilesDeleter.DeleteAllFilesAndFolders(localPath); string newWorkspaceName = Guid.NewGuid().ToString(); Task t1 = taskToBeExecuted[taskToBeExecuted.Count - 1].ContinueWith((antecedent) => CreateNewWorkspace(tfsProjectPath, currentUserName, tfsUrl, tfsPath, localPath, cIS, newWorkspaceName)); taskToBeExecuted.Add(t1); AlreadyCreatedWorkspaces.Add(tfsPath); } Task t2 = taskToBeExecuted[taskToBeExecuted.Count - 1].ContinueWith((antecedent) => GetLatest(tfsProjectPath, currentTfsUserName, localPath, cIS)); taskToBeExecuted.Add(t2); PrepareAllCurrentProjectAddiotionalPaths(taskToBeExecuted, tfsProjectPath, currentUserName, currentTfsUserName, cProject, cIS); string pName = cProject.Name; Task t3 = taskToBeExecuted[taskToBeExecuted.Count - 1].ContinueWith((antecedent) => BuildCurrentProject(localPath, pName, cIS)); taskToBeExecuted.Add(t3); } } Task finalTask = taskToBeExecuted[taskToBeExecuted.Count - 1].ContinueWith((antecedent) => { NavigateToNextPage ng = new NavigateToNextPage(Navigate); mainGrid.Dispatcher.BeginInvoke(ng, DispatcherPriority.Send); }); taskToBeExecuted.Add(finalTask); taskToBeExecuted[0].Start(); } catch(Exception ex) { return; } }
private void ProcessSelectedProjectInfos() { try { string tfsProjectPath = @"D:\AutomationTestAssistant\TfsOperations.proj"; string currentUserName = ATACore.RegistryManager.GetUserName(); string currentTfsUserName = ATACore.Managers.MemberManager.GetTfsUserNameByUserName(ATACore.Managers.ContextManager.Context, currentUserName); ATACore.Managers.ContextManager.Context.Dispose(); List <Task> taskToBeExecuted = new List <Task>(); taskToBeExecuted.Add(new Task(() => {})); foreach (var cTeam in MainWindow.AdminProjectSettingsViewModel.Teams) { foreach (var cProject in cTeam.ObservableProjects) { if (!cProject.IsSelected) { continue; } string localPath = GetProjectLocalPath(currentUserName, cProject.TfsPath); if (String.IsNullOrEmpty(localPath)) { continue; } string workspaceName = ATACore.RegistryManager.GetWorkspaceName(currentUserName, localPath); Task t = taskToBeExecuted[taskToBeExecuted.Count - 1].ContinueWith((antecedent) => { if (!String.IsNullOrEmpty(workspaceName)) { DeleteWorkSpaceIfExists(tfsProjectPath, currentTfsUserName, cProject.TfsUrl, MainWindow.LocalMsBuildLogIpSettings, workspaceName); cProject.WorkspacesForDelete.Add(workspaceName); } }); taskToBeExecuted.Add(t); //IF ALREADY EXISTS IS GOING TO UPDATE THE OLD VALUE SHOULD BE TESTED! string tfsUrl = cProject.TfsUrl; string tfsPath = cProject.TfsPath; IpAddressSettings cIS = MainWindow.LocalMsBuildLogIpSettings; if (!AlreadyCreatedWorkspaces.Contains(tfsPath)) { ATACore.Utilities.FilesDeleter.DeleteAllFilesAndFolders(localPath); string newWorkspaceName = Guid.NewGuid().ToString(); Task t1 = taskToBeExecuted[taskToBeExecuted.Count - 1].ContinueWith((antecedent) => CreateNewWorkspace(tfsProjectPath, currentUserName, tfsUrl, tfsPath, localPath, cIS, newWorkspaceName)); taskToBeExecuted.Add(t1); AlreadyCreatedWorkspaces.Add(tfsPath); } Task t2 = taskToBeExecuted[taskToBeExecuted.Count - 1].ContinueWith((antecedent) => GetLatest(tfsProjectPath, currentTfsUserName, localPath, cIS)); taskToBeExecuted.Add(t2); PrepareAllCurrentProjectAddiotionalPaths(taskToBeExecuted, tfsProjectPath, currentUserName, currentTfsUserName, cProject, cIS); string pName = cProject.Name; Task t3 = taskToBeExecuted[taskToBeExecuted.Count - 1].ContinueWith((antecedent) => BuildCurrentProject(localPath, pName, cIS)); taskToBeExecuted.Add(t3); } } Task finalTask = taskToBeExecuted[taskToBeExecuted.Count - 1].ContinueWith((antecedent) => { NavigateToNextPage ng = new NavigateToNextPage(Navigate); mainGrid.Dispatcher.BeginInvoke(ng, DispatcherPriority.Send); }); taskToBeExecuted.Add(finalTask); taskToBeExecuted[0].Start(); } catch (Exception ex) { return; } }