//----< load files into GUI when window is loaded >------ private void loadFiles() { Thread worker; worker = new Thread(() => { try { path = Directory.GetCurrentDirectory(); path = NavLocal.getAncestorPath(3, path); Dispatcher.Invoke(() => { regex = NavLocal.txtRegexs.Text; patterns = NavLocal.txtPatterns.Text; if (NavLocal.subdirs.IsChecked.Equals(true)) { NavLocal.options = "/s"; } else { NavLocal.options = ""; } NavLocal.LoadNavTab(path); }); } catch (Exception ex) { Console.WriteLine("Exception caught: " + ex.Message); } }); worker.Start(); //ATU(); }
//----< first test not completed >--------------------------------- void test3() { NavLocal.checkintest(); NavRemote.checkouttest(); BrowseTest.browsetest(); }
//----< A function to handle browse button in navigation tab >------ private void Button_btnbrowse(object sender, RoutedEventArgs e) { var FD = new System.Windows.Forms.FolderBrowserDialog(); if (FD.ShowDialog() == System.Windows.Forms.DialogResult.OK) { path = FD.SelectedPath; NavLocal.LoadNavTab(path); } }
//A function to demonstrate all the requirements are fullfilled private void ATU() { Thread thread = new Thread(() => { Console.WriteLine("=======================================Demonstrating Requirements======================================="); Console.WriteLine("Req1: This project uses Microsoft Visual Studio 15.9 2017 Enterprise Endition"); Console.WriteLine(" This project is based on C++ static library, C++ CLR/CLI DLLs & WPF Console Application"); Console.WriteLine("Req2: This is project used WPF GUI and C# to implement all the functionalities of Client"); Console.WriteLine("Req3: Interface - IPublisher is defined for Publisher that declares methods to access all the publisher" + " facilities and an Object Factory which returns a pointer to Publisher of IPublisher type"); Console.WriteLine(" Path to IPublisher.h: " + System.IO.Path.GetFullPath("../../../Publisher/IPublisher.h")); Console.WriteLine(" Path to Publisher.h & Object Factory: " + System.IO.Path.GetFullPath("../../../Publisher/Publisher.h")); Console.WriteLine(" Publisher and IPublisher are built as DLLs, IPublisher exposes the Publisher methods to the C++ CLR/CLI translator"); Console.WriteLine("Req4: This project provides Graphical User Interface (GUI) for the client that supports navigating remote directories to find a project for conversion, " + "and supports displaying the conversion results in a way that meets Project #3 requirements."); Console.WriteLine("Req5: This project provide message designs appropriate for this application. All messages are instances of the same Message class, but have a specified set of attributes " + "and body contents suited for the intended task."); Console.WriteLine(" Translator is built as Dynamic link library to support this interaction"); Console.WriteLine(" Path to Translator.h: " + System.IO.Path.GetFullPath("../../../Translator/Translator.h")); Console.WriteLine("Req6: This project support converting source code in the server and, with a separate request, " + "transferring one or more converted files back to the local client, using the communication channel."); Console.WriteLine(" Display view shows all the converted files. It supports two mode. Open files in browser or Open files in new window"); Console.WriteLine("Req7: This project demonstrate correct operations for two concurrent clients."); Console.WriteLine("Req8: This is Automated Test Suite"); Console.WriteLine("=======================================Demonstrating Requirements======================================="); Dispatcher.Invoke(async() => { Console.WriteLine("\n Client running on: " + clientName + ":" + clientPort); string[] args = Environment.GetCommandLineArgs(); ConnCont.Connect_Click(null, null); try { path = System.IO.Path.GetFullPath(args[6]); regex = args[7]; NavLocal.txtRegexs.Text = regex; NavLocal.CurrPath.Text = path; Console.WriteLine("\n Path given to be published:" + path); Console.WriteLine("\n Regex given:" + regex); } catch (Exception) { Console.WriteLine("\n Exception caught in ATU"); } await Task.Delay(1000); NavLocal.Upload_Click(null, null); await Task.Delay(2000); NavLocal.Publish_Click(null, null); }); }); thread.Start(); }
//----< test case >--------------------------------- void test1() { Console.WriteLine("\n--------- ----------------"); Console.WriteLine("Testing Started\n Clear Storage and LocalCO Folders"); Console.WriteLine("----------- --------------"); Console.WriteLine("\n(1) Connection to Server"); Button_Connect(new object(), new RoutedEventArgs()); NavLocal.Button_CheckIn(new object(), new RoutedEventArgs()); NavRemote.Button_CheckOut(new object(), new RoutedEventArgs()); NavRemote.Button_Metadata(new object(), new RoutedEventArgs()); Button_Browse(new object(), new RoutedEventArgs()); }
//----< start Comm, fill window display with dirs and files >------ private void Window_Loaded(object sender, RoutedEventArgs e) { // start Comm endPoint_ = new CsEndPoint(); endPoint_.machineAddress = "localhost"; endPoint_.port = 8082; NavRemote.navEndPoint_ = endPoint_; CheckOutControl.navEndPoint_ = endPoint_; connectionControl.navEndPoint_ = endPoint_; checkInControl.navEndPoint_ = endPoint_; queryControl.navEndPoint_ = endPoint_; MetadataControl.navEndPoint_ = endPoint_; translater = new Translater(); translater.listen(endPoint_); // start processing messages processMessages(); // load dispatcher loadDispatcher(); CsEndPoint serverEndPoint = new CsEndPoint(); serverEndPoint.machineAddress = "localhost"; serverEndPoint.port = 8080; pathStack_.Push("../Storage"); NavRemote.PathTextBlock.Text = "Storage"; CheckOutControl.PathTextBlock.Text = "Storage"; NavRemote.pathStack_.Push("../Storage"); CheckOutControl.pathStack_.Push("../Storage"); NavLocal.PathTextBlock.Text = "LocalStorage"; checkInControl.PathTextBlock.Text = "LocalStorage"; NavLocal.pathStack_.Push(""); checkInControl.pathStack_.Push(""); NavLocal.localStorageRoot_ = "../../../../LocalStorage"; checkInControl.localStorageRoot_ = "../../../../LocalStorage"; saveFilesPath = translater.setSaveFilePath("../../../SaveFiles"); sendFilesPath = translater.setSendFilePath("../../../SendFiles"); NavLocal.refreshDisplay(); NavRemote.refreshDisplay(); CheckOutControl.refreshDisplay(); checkInControl.refreshDisplay(); connectionControl.setupConnect(); mainTestStub(); //test1(); }
//----< first test not completed >--------------------------------- void test1() { //NavLocal.DirList_MouseDoubleClick(new object(), new MouseButtonEventArgs(Mouse.PrimaryDevice, 0, MouseButton.Left)); conbtn(new object(), new RoutedEventArgs()); NavLocal.FileList.SelectedIndex = 1; NavLocal.Cinbutton(new object(), new RoutedEventArgs()); NavLocal.FileList.SelectedIndex = 2; NavLocal.Cinbutton(new object(), new RoutedEventArgs()); NavRemote.refreshDisplay(); NavRemote.coutbutton(new object(), new RoutedEventArgs()); NavRemote.Metadata(new object(), new RoutedEventArgs()); brsbutton(new object(), new RoutedEventArgs()); }
//----< first test not completed >--------------------------------- void testGUI() { Console.WriteLine("\n-------------------------"); Console.WriteLine("Testing Started\n Clear Storage and LocalCO Folders"); Console.WriteLine("-------------------------"); Console.WriteLine("\n(1) Connection to Server"); connectButtonClick(new object(), new RoutedEventArgs()); NavLocal.DirList_MouseDoubleClick(new object(), new MouseButtonEventArgs(Mouse.PrimaryDevice, 0, MouseButton.Left)); Console.WriteLine("\n(2) CheckIng File A.cpp"); NavLocal.FileList.SelectedIndex = 0; NavLocal.cDes.Text = "This is CPP FILE"; NavLocal.cChildren.Text = "A::A.h"; NavLocal.cCat.Text = "First;Second"; NavLocal.fileSelect(new object(), new RoutedEventArgs()); NavLocal.CheckIn_Click(new object(), new RoutedEventArgs()); Console.WriteLine("\n(3) CheckIng File A.h"); NavLocal.FileList.SelectedIndex = 1; NavLocal.cDes.Text = "This is Header FILE"; NavLocal.cChildren.Text = "A::A.cpp"; NavLocal.cCat.Text = "Second;Third"; NavLocal.fileSelect(new object(), new RoutedEventArgs()); NavLocal.CheckIn_Click(new object(), new RoutedEventArgs()); NavRemote.refreshDisplay(); NavRemote.DirList_MouseDoubleClick(new object(), new MouseButtonEventArgs(Mouse.PrimaryDevice, 0, MouseButton.Left)); NavRemote.FileList.SelectedIndex = 1; NavRemote.FileList_MouseDoubleClick(new object(), new MouseButtonEventArgs(Mouse.PrimaryDevice, 0, MouseButton.Left)); Console.WriteLine("\n(4) Closing Staus of file A.h"); NavRemote.closeStatus_Click(new object(), new RoutedEventArgs()); System.Threading.Thread.Sleep(1000); Console.WriteLine("\n(5) CheckIng Again File A.h, It will stored as A.h.2 "); NavLocal.refreshDisplay(); NavLocal.FileList.SelectedIndex = 1; NavLocal.cDes.Text = "This is Header FILE"; NavLocal.cChildren.Text = "A::A.cpp"; NavLocal.cCat.Text = "Second;Third"; NavLocal.fileSelect(new object(), new RoutedEventArgs()); NavLocal.CheckIn_Click(new object(), new RoutedEventArgs()); NavRemote.refreshDisplay(); Console.WriteLine("\n(6) CheckOut file A::A.cpp, This is also checkout its dependent File A::A.h\n You can find it in LocalCO "); NavRemote.CheckOut_Click(new object(), new RoutedEventArgs()); Console.WriteLine("\n(7) Querying on Database using Name --> /.h/ , Desciption --> /Header / , Category ----> /Second/ , Children ----> /A::A.cpp/ "); Query_Button(new object(), new RoutedEventArgs()); }
//----< start Comm, fill window display with dirs and files >------ private void Window_Loaded(object sender, RoutedEventArgs e) { Thread.Sleep(5000); // start Comm endPoint_ = new CsEndPoint(); endPoint_.machineAddress = "localhost"; endPoint_.port = 8082; NavRemote.navEndPoint_ = endPoint_; ConnectTest.navEndPoint_ = endPoint_; BrowseTest.navEndPoint_ = endPoint_; translater = new Translater(); translater.listen(endPoint_); // start processing messages processMessages(); // load dispatcher loadDispatcher(); CsEndPoint serverEndPoint = new CsEndPoint(); serverEndPoint.machineAddress = "localhost"; serverEndPoint.port = 8080; pathStack_.Push("../NoSqlDb /Repository"); NavRemote.PathTextBlock.Text = "NoSqlDb/Repository"; NavRemote.pathStack_.Push("../NoSqlDb/Repository"); NavLocal.PathTextBlock.Text = "LocalStorage"; NavLocal.pathStack_.Push(""); NavLocal.localStorageRoot_ = "../../../../LocalStorage"; saveFilesPath = translater.setSaveFilePath("../../../../NoSqlDb /Repository"); sendFilesPath = translater.setSendFilePath("../../../../NoSqlDb /Repository"); NavLocal.refreshDisplay(); NavRemote.refreshDisplay(); test3(); test4(); Thread.Sleep(2000); test6(serverEndPoint, endPoint_); }
//----< click connect button in connect tab >------ private void Button_Click_Connect(object sender, RoutedEventArgs e) { // start Comm endPoint_ = new CsEndPoint(); endPoint_.machineAddress = "localhost"; endPoint_.port = Convert.ToInt32(txtMsg1.Text); NavRemote.navEndPoint_ = endPoint_; CloseCheckin.navEndPoint_ = endPoint_; QueryControl.navEndPoint_ = endPoint_; translater = new Translater(); translater.listen(endPoint_); // start processing messages processMessages(); // load dispatcher loadDispatcher(); CsEndPoint serverEndPoint = new CsEndPoint(); serverEndPoint.machineAddress = "localhost"; serverEndPoint.port = 8080; pathStack_.Push("../Storage"); NavRemote.PathTextBlock.Text = "Storage"; NavRemote.pathStack_.Push("../Storage"); CloseCheckin.PathTextBlock.Text = "Storage"; CloseCheckin.pathStack_.Push("../Storage"); NavLocal.PathTextBlock.Text = "LocalStorage"; NavLocal.pathStack_.Push(""); NavLocal.localStorageRoot_ = "../../../../LocalStorage"; QueryControl.pathStack_.Push("../Storage"); saveFilesPath = translater.setSaveFilePath("../../../SaveFiles"); sendFilesPath = translater.setSendFilePath("../../../SendFiles"); NavLocal.refreshDisplay(); CloseCheckin.refreshDisplay(); NavRemote.refreshDisplay(); connectstatus.Text = "Connected! Port number is " + txtMsg1.Text; }
//----< start Comm, fill window display with dirs and files >------ private void Window_Loaded(object sender, RoutedEventArgs e) { // start Comm endPoint_ = new CsEndPoint(); endPoint_.machineAddress = "localhost"; endPoint_.port = 8082; //set remote window and local window comm's endpoint NavRemote.navEndPoint_ = endPoint_; NavLocal.navEndPoint_ = endPoint_; translater = new Translater(); translater.listen(endPoint_); // start processing messages processMessages(); // load dispatcher loadDispatcher(); serverEndPoint_ = new CsEndPoint(); serverEndPoint_.machineAddress = "localhost"; serverEndPoint_.port = 8080; //set remote window and local window comm's server endpoint NavRemote.serverEndPoint_ = serverEndPoint_; NavLocal.serverEndPoint_ = serverEndPoint_; pathStack_.Push("../Storage"); NavRemote.PathTextBlock.Text = "Storage"; NavRemote.pathStack_.Push("../Storage"); NavLocal.PathTextBlock.Text = "LocalStorage"; NavLocal.pathStack_.Push(""); NavLocal.localStorageRoot_ = "../../../../LocalStorage"; saveFilesPath = translater.setSaveFilePath("../../../SaveFiles"); sendFilesPath = translater.setSendFilePath("../../../SendFiles"); NavLocal.refreshDisplay(); NavRemote.refreshDisplay(); test1(); }