Пример #1
0
        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 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;
                 }
             }
         }
     }
 }
Пример #4
0
        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;
            }
        }