////----< load getDirs processing into dispatcher dictionary >------- private void DispatcherLoadGetDirs() { Action <CsMessage> getDirs = (CsMessage rcvMsg) => { Action clrDirs = () => { //NavLocal.clearDirs(); NavRemote.clearDirs(); }; Dispatcher.Invoke(clrDirs, new Object[] { }); var enumer = rcvMsg.attributes.GetEnumerator(); while (enumer.MoveNext()) { string key = enumer.Current.Key; if (key.Contains("dir")) { Action <string> doDir = (string dir) => { NavRemote.addDir(dir); }; Dispatcher.Invoke(doDir, new Object[] { enumer.Current.Value }); } } Action insertUp = () => { NavRemote.insertParent(); }; Dispatcher.Invoke(insertUp, new Object[] { }); }; addClientProc("getDirs", getDirs); }
//----< load getFiles processing into dispatcher dictionary >------ private void DispatcherLoadGetFiles() { Action <CsMessage> getFiles = (CsMessage rcvMsg) => { Action clrFiles = () => { NavRemote.clearFiles(); }; Dispatcher.Invoke(clrFiles, new Object[] { }); var enumer = rcvMsg.attributes.GetEnumerator(); while (enumer.MoveNext()) { string key = enumer.Current.Key; if (key.Contains("file")) { Action <string> doFile = (string file) => { NavRemote.addFile(file); }; Dispatcher.Invoke(doFile, new Object[] { enumer.Current.Value }); } } }; addClientProc("getFiles", getFiles); }
//----< load checkin processing into dispatcher dictionary >------ private void DispatcherLoadcheckin() { Action <CsMessage> checkin = (CsMessage rcvMsg) => { var enumer = rcvMsg.attributes.GetEnumerator(); while (enumer.MoveNext()) { string key = enumer.Current.Key; if (key.Contains("status")) { Action <string> writestatus = (string sta) => { connectstatus.Text = "CheckIn status: " + sta; }; Dispatcher.Invoke(writestatus, new Object[] { enumer.Current.Value }); } if (key.Contains("fileName")) { Action <string> doFile = (string file) => { NavRemote.addFile(file); }; Dispatcher.Invoke(doFile, new Object[] { enumer.Current.Value }); } } }; addClientProc("checkin", checkin); }
Task test9() { Task test9 = Task.Factory.StartNew(() => { Thread.Sleep(2000); Console.WriteLine("\n-----We then checkout file3 and its children.-----\n"); }).ContinueWith((t) => { Dispatcher.Invoke((Action)(() => { NavRemote.refreshDisplay(); })); }).ContinueWith((t) => { Thread.Sleep(2000); Dispatcher.Invoke((Action)(() => { NavRemote.FileList.SelectedIndex = 1; NavRemote.withchildren.IsChecked = true; })); }).ContinueWith((t) => { Thread.Sleep(2000); Dispatcher.Invoke((Action)(() => { MouseButtonEventArgs mouseEve = new MouseButtonEventArgs(Mouse.PrimaryDevice, Environment.TickCount, MouseButton.Left); mouseEve.RoutedEvent = ListBox.MouseDoubleClickEvent; NavRemote.FileList.RaiseEvent(mouseEve); })); }); return(test9); }
//---<Dispatcher to load query results>----- private void DispatcherLoadQueryResults() { Action <CsMessage> getResults = (CsMessage rcvMsg) => { Action clrResults = () => { queryControl.fileList.Items.Clear(); }; Dispatcher.Invoke(clrResults, new Object[] { }); var enumer = rcvMsg.attributes.GetEnumerator(); Console.WriteLine("\nFile(s) obtianed from server:\n"); Console.WriteLine("---------------------------------------------------"); while (enumer.MoveNext()) { string key = enumer.Current.Key; if (key.Contains("key")) { Action <string> doDir = (string dir) => { Console.WriteLine(dir); queryControl.fileList.Items.Add(dir); }; Dispatcher.Invoke(doDir, new Object[] { enumer.Current.Value }); } } Action insertUp = () => { NavRemote.insertParent(); }; Dispatcher.Invoke(insertUp, new Object[] { }); }; addClientProc("queryResults", getResults); }
//----< first test not completed >--------------------------------- void test3() { NavLocal.checkintest(); NavRemote.checkouttest(); BrowseTest.browsetest(); }
//----< 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_); }
//----< load getFiles processing into dispatcher dictionary >------ private void DispatcherLoadGetFiles() { Action <CsMessage> getFiles = (CsMessage rcvMsg) => { Action clrFiles = () => { NavRemote.clearFiles(); }; Dispatcher.Invoke(clrFiles, new Object[] { }); var enumer = rcvMsg.attributes.GetEnumerator(); while (enumer.MoveNext()) { string key = enumer.Current.Key; if (key.Contains("file")) { Action <string> doFile = (string file) => { NavRemote.addFile(file); }; Dispatcher.Invoke(doFile, new Object[] { enumer.Current.Value }); } } Action mytest = () => { if (testCin == true) { testCheckIn(); testBrowse(); testCin = false; } if (testCout == true) { testCheckOut(); testConnect(); testCout = false; } }; Dispatcher.Invoke(mytest, new Object[] { }); }; addClientProc("getFiles", getFiles); }
//----< 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(); }
Task test8() { Task test8 = Task.Factory.StartNew(() => { Thread.Sleep(2000); Console.WriteLine("\n-----Now we do checkout.-----\n"); Console.WriteLine("\n-----Choose if you want to check out with children.-----\n"); Console.WriteLine("\n-----You can doubleclick the file in the filelist to do checkout. It will also open the file you selected.-----\n"); Console.WriteLine("\n-----After checkout look at the status bar and check CheckedOutFile folder.------\n"); Console.WriteLine("\n-----This meet requirement 3 and 6.-----\n"); Console.WriteLine("\n-----We firstly checkout only file1.-----\n"); }).ContinueWith((t) => { Dispatcher.Invoke((Action)(() => { NavRemote.refreshDisplay(); })); }).ContinueWith((t) => { Thread.Sleep(2000); Dispatcher.Invoke((Action)(() => { NavRemote.FileList.SelectedIndex = 0; NavRemote.withchildren.IsChecked = false; })); }).ContinueWith((t) => { Thread.Sleep(2000); Dispatcher.Invoke((Action)(() => { MouseButtonEventArgs mouseEve = new MouseButtonEventArgs(Mouse.PrimaryDevice, Environment.TickCount, MouseButton.Left); mouseEve.RoutedEvent = ListBox.MouseDoubleClickEvent; NavRemote.FileList.RaiseEvent(mouseEve); })); }); return(test8); }
//----< Starting up comm after client is connected to the server >--------------- internal void startComm() { NavRemote.Remote_Dirs.Items.Clear(); NavRemote.Remote_Files.Items.Clear(); translater = new Translater(); translater.listen(clientEndPoint_); processMessages(); //load dispatcher loadDispatcher(); pathStack_.Push("../Storage"); NavRemote.Remote_CurrPath.Text = "Storage"; pathStack_.Push("../Storage"); saveFilePath = translater.setSaveFilePath("../../../SaveFiles"); sendFilePath = translater.setSendFilePath("../../../SendFiles"); NavRemote.refreshDisplay(); loadFiles(); }