//-------------------< Acts as test stub and calls series of things to show how requirements are met >------------ public void main() { Console.ForegroundColor = ConsoleColor.DarkBlue; Console.Write("\n====================================\n Requirement #5 \n====================================\n"); Console.ResetColor(); Console.Write("\nStarting Process Pool"); Console.Write("\n====================================\n Requirement #4 Client commands repo for files \n====================================\n"); CommMessage msg1 = new CommMessage(CommMessage.MessageType.request); msg1.from = ClientEnvironment.endPoint; msg1.to = Repository.endPoint; msg1.author = "Harika"; msg1.arguments.Add(""); msg1.command = "getBuildRequestFiles"; Console.Write("\n To address of message : {0}", msg1.to); comm.postMessage(msg1); CommMessage msg2 = msg1.clone(); msg2.command = "getBuildLogFiles"; comm.postMessage(msg2); CommMessage msg3 = msg1.clone(); msg3.command = "getTestLogFiles"; comm.postMessage(msg3); path = Repository.buildRequest; Console.Write("\n====================================\n Requirement #11 Client browses for Testcode files \n===================================="); string pattern = "CodeToTest*.cs"; Action <string, string, string> proc = this.search; proc.Invoke(path, pattern, testcase.Name); Console.Write("cbresult is {0}", cbResult); Console.Write("\n====================================\n Requirement 11#Client browses for TestDriver files \n===================================="); String pattern2 = "TestDriver*.cs"; proc.Invoke(path, pattern2, testDrivers.Name); Console.Write(cbResult); if (testDrivers.Items.Count > 0) { testDrivers.SelectedItem = (testDrivers.Items.GetItemAt(1)); testcase.SelectedItems.Add(testcase.Items.GetItemAt(1)); testcase.SelectedItems.Add(testcase.Items.GetItemAt(2)); testHelper(); testDrivers.SelectedItem = testDrivers.Items.GetItemAt(0); testcase.SelectedItem = testcase.Items.GetItemAt(0); testcase.SelectedItems.Add(testcase.Items.GetItemAt(2)); testHelper(); Console.Write("\n====================================\n Requirement #12 Client creates Build Request Structure \n===================================="); crtmsg.send = true; Console.Write("\n====================================\n Requirement #12 Sends to Repos for storage and commands repo to send to Mother Builder \n===================================="); createBuildRequest(); } }
void sendSelectedBuildRequest() { if (buildRequestFiles.SelectedItems.Count <= 0) { System.Windows.MessageBox.Show("Please select Build Request to send to Build Server through Repository"); } CommMessage msg1 = new CommMessage(CommMessage.MessageType.BuildRequest); msg1.from = ClientEnvironment.endPoint; msg1.to = Repository.endPoint; msg1.author = "Harika"; msg1.command = null; msg1.arguments.Add(""); foreach (string filename in buildRequestFiles.SelectedItems) { CommMessage msg2 = msg1.clone(); try { msg2.body = File.ReadAllText(Path.GetFullPath(filename)); } catch (Exception ex) { msg2.errorMsg = ex.Message; } if (msg2.errorMsg != null) { comm.postMessage(msg2); } } return; }
//-----------------------< To process the message recieved depending on message type >------------ bool initialiseMessageProcess(CommMessage msg) { if (msg.type == CommMessage.MessageType.TestRequest) { Console.ForegroundColor = ConsoleColor.DarkBlue; Console.Write("\n=======================================================================\n Requirement #8 Test Request Sent by Child Build Server\n======================================================================="); Console.ResetColor(); Console.Write("\nTest Request{0}\n\n", msg.body); if (msg.body != null) { parseTestRequest(msg); } } if (msg.type == CommMessage.MessageType.FileList) { CommMessage msg2 = msg.clone(); msg2.type = CommMessage.MessageType.TestComplete; msg2.to = msg.from; msg2.from = msg.to; this.comm.postMessage(msg2); startTestProcessing(); this.tlogmessage.body = tlogmesssage; Console.ForegroundColor = ConsoleColor.DarkBlue; Console.WriteLine("\n=====================================================================\nRequirement #9 :Sending Test Log To Repository and Notification to ClientGUI \n====================================================================="); Console.ResetColor(); Console.WriteLine("\n TestLog:\n{0}", this.tlogmessage.body); comm.postMessage(tlogmessage); comm.postMessage(tclientMessage); } return(true); }
//---------------------------------< Get filelist from repo make build test libraries send logs to repo >-------- void messageFileListHelper(CommMessage msg) { msg.show(); requestRepoForFilesBuildDll(Data, ChildBuildServer.root, ChildBuildServer.root); this.comm.postMessage(this.readymsg); CommMessage log = msg.clone(); log.type = CommMessage.MessageType.BuildLog; log.to = Repository.endPoint; log.from = EnvironmentSet.endPoint; log.body = doc; Console.Write("\n========================================================\n Requirement #7 : Build Logs Sending to RepoStorage\n======================================================="); Console.Write("\nBuild Log:\n{0}", log.body); this.comm.postMessage(log); this.comm.postMessage(blib.rply); if (this.toolChain.Equals("C#")) { if (tRmsg.body != null) { Console.WriteLine("\n===========================================\n Requirement #8 :Sending Test Request To Test Harness \n==========================================="); Console.WriteLine("\nTest Request::{0}\n", tRmsg.body); this.comm.postMessage(this.tRmsg); } } return; }
// Browse path button and the trigger of event private void Browse_Path(object sender, RoutedEventArgs e) { string Browse_Path = ""; FolderBrowserDialog fddialog = new FolderBrowserDialog(); fddialog.Description = "Select Path"; fddialog.ShowDialog(); if (fddialog.SelectedPath != "") { Browse_Path = fddialog.SelectedPath; } if (Client_Con_Server == true && Browse_Path != "") { CommMessage msg = new CommMessage(CommMessage.MessageType.request); msg.from = ClientEnvironment.endPoint; msg.to = ServerEnvironment.endPoint; msg.author = "Bo Qiu"; msg.command = "Start_Browse_Files"; msg.arguments.Add(Browse_Path); comm.postMessage(msg); CommMessage msg2 = msg.clone(); msg2.command = "Start_Browse_Dirs"; comm.postMessage(msg2); } else { Analysis_Status.Text = "Please connect to the Server first"; } }
//------< double click on folders to load child folders >------------------------------ private void FolderTree_MouseDoubleClick(object sender, MouseButtonEventArgs e) { if (folderTree.SelectedItem == null) { return; } IFileType fileType = (IFileType)folderTree.SelectedItem; if (fileType.FileType == FileTypeCal.Folder) { ObservableCollection <IFileType> currentFolder = viewModel.FolderDict[tbkPath.Text]; currentFolder.Clear(); CommMessage msg1 = new CommMessage(CommMessage.MessageType.request); msg1.from = ClientEnvironment.endPoint; msg1.to = ServerEnvironment.endPoint; msg1.command = "moveIntoFolderDirs"; msg1.arguments.Add(tbkPath.Text); comm.postMessage(msg1); CommMessage msg2 = msg1.clone(); msg2.command = "moveIntoFolderFiles"; comm.postMessage(msg2); } }
public MainWindow() { InitializeComponent(); initializeEnvironment(); Console.Title = "Navigator Client"; fileMgr = FileMgrFactory.create(FileMgrType.Local); fileMgr.currentPath = ""; comm = new Comm(ClientEnvironment.address, ClientEnvironment.port); initializeMessageDispatcher(); CommMessage msg1 = new CommMessage(CommMessage.MessageType.request); msg1.from = ClientEnvironment.endPoint; msg1.to = ServerEnvironment.endPoint; msg1.author = "Jim Fawcett"; msg1.command = "getTopFiles"; msg1.arguments.Add(""); comm.postMessage(msg1); CommMessage msg2 = msg1.clone(); msg2.command = "getTopDirs"; comm.postMessage(msg2); SCBox.Clear(); rcvThread = new Thread(rcvThreadProc); rcvThread.Start(); }
/*----< Load ATU >------------*/ private void dispatcherATU() { messageDispatcher["AutomatedTestUnit"] = (CommMessage msg) => { Req1(); Req2(); Req3(); Req4(); Req5(); Req6(); string[] file = { "File1.cs", "File2.cs", "File3.cs" }; CommMessage msg1 = new CommMessage(CommMessage.MessageType.request); msg1.from = ClientEnvironment.endPoint; msg1.to = ServerEnvironment.endPoint; msg1.command = "getDependency"; foreach (var item in file) { msg1.arguments.Add(item.ToString()); } comm.postMessage(msg1); CommMessage msg2 = msg1.clone(); msg2.command = "getStrongComponent"; comm.postMessage(msg2); Req7(); }; }
/* * - sends a message to server to get parent directory * - recv thread will create an Action<CommMessage> for the UI thread * to invoke to load the remoteDirs listbox */ void remoteUpClick() { CommMessage msg1 = new CommMessage(CommMessage.MessageType.request); msg1.from = ClientEnvironment.endPoint; msg1.to = ServerEnvironment.endPoint; msg1.author = "Jim Fawcett"; msg1.command = "getTopDirs"; //msg1.arguments.Add(remoteDirs.Items[0].ToString()); fileMgr.pathStack.Push(fileMgr.currentPath); if (remoteDirs.Items.Count > 0) { fileMgr.currentPath = remoteDirs.Items[0].ToString(); msg1.arguments.Add(remoteDirs.Items[0].ToString()); } else { fileMgr.currentPath = ""; msg1.arguments.Add(""); } comm.postMessage(msg1); CommMessage msg2 = msg1.clone(); msg2.command = "getTopFiles"; comm.postMessage(msg2); }
// ---------------------< Uses XmlManager to parse TestRequest sent by the BuildServerProcessPool >------------ public void parseTestRequest(CommMessage msg) { List <string> fileNames = new List <string>(); this.Data = xmlParse.parseXMLRequest(msg.body); foreach (TestRequestData data in Data) { fileNames.Add(data.testDriver); foreach (string td in data.testCode) { fileNames.Add(td); } } TestHarness.root = EnvironmentSet.root + "/" + Data[0].authorName + DateTime.Now.ToFileTime(); if (!System.IO.Directory.Exists(TestHarness.root)) { System.IO.Directory.CreateDirectory(TestHarness.root); } CommMessage filerqst = msg.clone(); filerqst.type = CommMessage.MessageType.FileRequest; filerqst.to = msg.from; filerqst.from = msg.to; filerqst.arguments = fileNames; this.comm.postMessage(filerqst); }
void buildRequestHelper(CommMessage msg) { Console.Write("========================================================\n Requirement #12 : Store Build Request and Transmit to Build Server \n========================================================="); Console.WriteLine("\n msg.from Client{0}::\n", msg.from); if (msg.command != null && (msg.command).Equals("create")) { try { File.WriteAllText(Repository.buildRequest + "/BuildRequest" + DateTime.Now.ToFileTime() + ".xml", msg.body); } catch (Exception ex) { Console.WriteLine(ex.Message); } if (!msg.send) { return; } } Console.Write("\n Sending message to Mother Build Server"); CommMessage bldRqst = msg.clone(); bldRqst.to = MotherBuildServer.endPoint; bldRqst.from = msg.to; Console.WriteLine("\n Message to Build Server msg.to::{0}", bldRqst.to); comm.postMessage(bldRqst); return; }
//-----------------------< Starts processing the messages from pulled out from the reciever queue >-------- public void messageProcessing(CommMessage msg) { if (msg.type == CommMessage.MessageType.FileRequest) { CommMessage msg2 = msg.clone(); msg2.type = CommMessage.MessageType.FileList; msg2.to = msg.from; msg2.from = msg.to; bool status = this.comm.postFile(msg2); if (status) { this.comm.postMessage(msg2); } return; } if (msg.type == CommMessage.MessageType.BuildLog) { Console.WriteLine("\n================================================\n Requirement #8 : Logging Build errors and Warnings \n================================================"); Console.WriteLine("\nBuild Log{0}\n", msg.body); try { File.WriteAllText(Repository.buildLogPath + "/BuildLog" + DateTime.Now.ToFileTime(), msg.body); } catch (Exception ex) { Console.WriteLine(ex.Message); } } if (msg.type == CommMessage.MessageType.TestLog) { Console.WriteLine("\n==================================================\n Requirement #9 :Recieved Test Log from Test Harness \n======================================================="); Console.WriteLine("\nTest Log{0}\n", msg.body); try { File.WriteAllText(Repository.testLogPath + "/TestLog" + DateTime.Now.ToFileTime(), msg.body); } catch (Exception ex) { Console.WriteLine(ex.Message); } } if (msg.type == CommMessage.MessageType.request) { CommMessage reply = this.messageDispatcher[msg.command](msg); Console.Write("\n======================================================================================\n Requirement #4 Repository sending files to Client based on command \n======================================================================================"); reply.show(); this.comm.postMessage(reply); } if (msg.type == CommMessage.MessageType.BuildRequest) { buildRequestHelper(msg); } }
private void Analysis_Click(object sender, RoutedEventArgs e) { CommMessage msg = new CommMessage(CommMessage.MessageType.request); msg.from = ClientEnvironment.endPoint; msg.to = ServerEnvironment.endPoint; msg.command = "analyzeDependency"; comm.postMessage(msg); CommMessage msg2 = msg.clone(); msg2.command = "strongComponent"; comm.postMessage(msg2); }
//----< move into remote subdir and display files and subdirs >-- /* * - sends messages to server to get files and dirs from folder * - recv thread will create Action<CommMessage>s for the UI thread * to invoke to load the remoteFiles and remoteDirs listboxs */ private void moveIntoDir(string DirName) { CommMessage msg1 = new CommMessage(CommMessage.MessageType.request); msg1.from = ClientEnvironment.endPoint; msg1.to = ServerEnvironment.endPoint; msg1.command = "moveIntoFolderDirs"; msg1.arguments.Add(DirName); comm.postMessage(msg1); CommMessage msg2 = msg1.clone(); msg2.command = "moveIntoFolderFiles"; comm.postMessage(msg2); }
//----< move into remote subdir and display files and subdirs >-- /* * - sends messages to server to get files and dirs from folder * - recv thread will create Action<CommMessage>s for the UI thread * to invoke to load the remoteFiles and remoteDirs listboxs */ private void remoteDirs_MouseDoubleClick(object sender, MouseButtonEventArgs e) { CommMessage msg1 = new CommMessage(CommMessage.MessageType.request); msg1.from = ClientEnvironment.endPoint; msg1.to = ServerEnvironment.endPoint; msg1.command = "moveIntoFolderFiles"; msg1.arguments.Add(remoteDirs.SelectedValue as string); comm.postMessage(msg1); CommMessage msg2 = msg1.clone(); msg2.command = "moveIntoFolderDirs"; comm.postMessage(msg2); }
//----< move into remote subdir and display files and subdirs >-- void guiDoubleDirClick() { CommMessage msg1 = new CommMessage(CommMessage.MessageType.request); msg1.from = ClientEnvironment.endPoint; msg1.to = ServerEnvironment.endPoint; msg1.command = "moveIntoFolderFiles"; msg1.arguments.Add(remoteDirs.SelectedValue as string); comm.postMessage(msg1); CommMessage msg2 = msg1.clone(); msg2.command = "moveIntoFolderDirs"; comm.postMessage(msg2); }
//----< move to parent directory of current remote path >-------- private void RemoteUp_Click(object sender, RoutedEventArgs e) { // coming soon CommMessage msg1 = new CommMessage(CommMessage.MessageType.request); msg1.from = ClientEnvironment.endPoint; msg1.to = ServerEnvironment.endPoint; msg1.author = "Yuxuan Xing"; msg1.command = "getTopFiles"; comm.postMessage(msg1); CommMessage msg2 = msg1.clone(); msg2.command = "getTopDirs"; comm.postMessage(msg2); }
private void getRemoteDirs() { CommMessage msg1 = new CommMessage(CommMessage.MessageType.request); msg1.from = ClientEnvironment.endPoint; msg1.to = ServerEnvironment.endPoint; msg1.author = "Rick"; msg1.command = "moveUpDirs"; msg1.arguments.Add(""); comm.postMessage(msg1); CommMessage msg2 = msg1.clone(); msg2.command = "moveUpFiles"; comm.postMessage(msg2); }
//----< give repo root files >--------------------- private void RepoTop_Files() { CommMessage msg1 = new CommMessage(CommMessage.MessageType.request); msg1.from = ClientEnvironment.endPoint; msg1.to = RepoEnvironment.endPoint; msg1.author = "Nitesh Bhutani"; msg1.command = "getTopFiles"; msg1.arguments.Add(""); comm.postMessage(msg1); CommMessage msg2 = msg1.clone(); msg2.command = "getTopDirs"; comm.postMessage(msg2); }
//----< move to root of remote directories >--------------------- /* * - sends a message to server to get files from root * - recv thread will create an Action<CommMessage> for the UI thread * to invoke to load the remoteFiles listbox */ private void RemoteTop_Click(object sender, RoutedEventArgs e) { CommMessage msg1 = new CommMessage(CommMessage.MessageType.request); msg1.from = ClientEnvironment.endPoint; msg1.to = ServerEnvironment.endPoint; msg1.author = "Jim Fawcett"; msg1.command = "getTopFiles"; msg1.arguments.Add(""); comm.postMessage(msg1); CommMessage msg2 = msg1.clone(); msg2.command = "getTopDirs"; comm.postMessage(msg2); }
//----< move to parent directory of current remote path >-------- private void RemoteUp_ClickAuto() { var msg1 = new CommMessage(CommMessage.MessageType.request); msg1.from = ClientEnvironment.endPoint; msg1.to = ServerEnvironment.endPoint; msg1.author = "Vinayak Kukreja"; msg1.command = "getUpFiles"; msg1.arguments.Add(""); comm.postMessage(msg1); var msg2 = msg1.clone(); msg2.command = "getUpDirs"; comm.postMessage(msg2); }
//----< fetching root files and directory >------------- public void getFile() { CommMessage msg1 = new CommMessage(CommMessage.MessageType.request); msg1.from = ClientEnvironment.endPoint; msg1.to = ServerEnvironment.endPoint; msg1.author = "Jim Fawcett"; msg1.command = "getTopFiles"; msg1.arguments.Add(""); comm.postMessage(msg1); CommMessage msg2 = msg1.clone(); msg2.command = "getTopDirs"; comm.postMessage(msg2); }
//----< move to parent directory of current remote path >-------- private void RemoteUp_Click(object sender, RoutedEventArgs e) { CommMessage msg1 = new CommMessage(CommMessage.MessageType.request); msg1.from = ClientEnvironment.endPoint; msg1.to = ServerEnvironment.endPoint; msg1.author = "Ren Jie"; msg1.command = "moveIntoUpDirs"; msg1.arguments.Add(""); comm.postMessage(msg1); Thread.Sleep(10); CommMessage msg2 = msg1.clone(); msg2.command = "moveIntoUpFiles"; comm.postMessage(msg2); }
//----< move to parent directory of current remote path >-------- void guiUpClick() { CommMessage msg1 = new CommMessage(CommMessage.MessageType.request); msg1.from = ClientEnvironment.endPoint; msg1.to = ServerEnvironment.endPoint; msg1.command = "moveUpFolderDirs"; msg1.arguments.Add(""); msg1.back = fileMgr.currentPath; comm.postMessage(msg1); CommMessage msg2 = msg1.clone(); msg2.command = "moveIntoFolderFiles"; msg2.arguments.Add(fileMgr.currentPath); comm.postMessage(msg2); }
//-------------< gives files from root directory of server >--------------- public void get_files() { RemoteUp.IsEnabled = true; CommMessage msg1 = new CommMessage(CommMessage.MessageType.request); msg1.from = ClientEnvironment.endPoint; msg1.to = ServerEnvironment.endPoint; msg1.command = "getTopFiles"; msg1.arguments.Add(""); msg1.show(); comm.postMessage(msg1); CommMessage msg2 = msg1.clone(); msg2.command = "getTopDirs"; msg2.show(); comm.postMessage(msg2); }
//----< move into remote subdir and display files and subdirs >-- /* * - sends messages to server to get files and dirs from folder * - recv thread will create Action<CommMessage>s for the UI thread * to invoke to load the remoteFiles and remoteDirs listboxs */ private void remoteDirs_MouseDoubleClick(object sender, MouseButtonEventArgs e) { string remoteDirName = remoteDirsListBox.SelectedValue as string; remotePathStack.Push(currentRemotePath); currentRemotePath = remoteDirName; CommMessage msg1 = new CommMessage(CommMessage.MessageType.request); msg1.from = BuildEnvironment.ClientEnvironment.endPoint; msg1.to = BuildEnvironment.ServerEnvironment.endPoint; msg1.command = "moveIntoFolderFiles"; msg1.arguments.Add(remoteDirsListBox.SelectedValue as string); comm.postMessage(msg1); CommMessage msg2 = msg1.clone(); msg2.command = "moveIntoFolderDirs"; comm.postMessage(msg2); }
/* * - sends messages to server to get strong component analysis result by sending filenames * - recv thread will create Action<CommMessage>s for the UI thread * to invoke to load the strong component analysis result in the listbox */ public void StrongCompButtonClick() { CommMessage msg1 = new CommMessage(CommMessage.MessageType.request); msg1.from = ClientEnvironment.endPoint; msg1.to = ServerEnvironment.endPoint; msg1.author = "Rucha Guntoorkar"; msg1.command = "getStrongComponent"; if (checkedStuff.Count > 0) { msg1.arguments = checkedStuff; } else { msg1.arguments = atuInputFiles; } comm.postMessage(msg1); CommMessage msg2 = msg1.clone(); }
// This function is for getting the top directory and files in the GUI private void RemoteTop_ClickAuto() { UpButton.IsEnabled = true; AnalButton.IsEnabled = true; remoteDirs.IsEnabled = true; remoteFiles.IsEnabled = true; var msg1 = new CommMessage(CommMessage.MessageType.request); msg1.from = ClientEnvironment.endPoint; msg1.to = ServerEnvironment.endPoint; msg1.author = "Vinayak Kukreja"; msg1.command = "getTopFiles"; msg1.arguments.Add(""); comm.postMessage(msg1); var msg2 = msg1.clone(); msg2.command = "getTopDirs"; comm.postMessage(msg2); }
//----< move into remote subdir and display files and subdirs >-- /* * - sends messages to server to get files and dirs from folder * - recv thread will create Action<CommMessage>s for the UI thread * to invoke to load the remoteFiles and remoteDirs listboxs */ private void remoteDirs_MouseDoubleClick(object sender, MouseButtonEventArgs e) { if (Client_Con_Server == true) { CommMessage msg1 = new CommMessage(CommMessage.MessageType.request); msg1.from = ClientEnvironment.endPoint; msg1.to = ServerEnvironment.endPoint; msg1.command = "moveIntoFolderDirs"; msg1.arguments.Add(remoteDirs.SelectedValue as string); comm.postMessage(msg1); CommMessage msg2 = msg1.clone(); msg2.command = "moveIntoFolderFiles"; comm.postMessage(msg2); } else { Navigator_Status.Text = "Please connect to the Server first"; } }
//-------< send requests to get the files and folders in the root >---------------- private void getTopFiles() { tb_StatusBar.Text = "Connecting..."; tbkPath.Text = "."; ObservableCollection <IFileType> currentFolder = viewModel.FolderDict["."]; currentFolder.Clear(); CommMessage msg1 = new CommMessage(CommMessage.MessageType.request); msg1.from = ClientEnvironment.endPoint; msg1.to = ServerEnvironment.endPoint; msg1.command = "moveIntoFolderDirs"; msg1.arguments.Add(tbkPath.Text); comm.postMessage(msg1); CommMessage msg2 = msg1.clone(); msg2.command = "moveIntoFolderFiles"; comm.postMessage(msg2); }