/// <summary> /// Parse the comm message and create build request. /// </summary> /// <param name="msg"></param> private void ProcessbuildRequest(CommMessage msg) { if (msg != null) { string requestFile = msg.Arguments[CommCommands.BuildReqArguements.PROJECT]; requestFile = Path.Combine(this.CommunicationObject.GetBaseDirectory(), requestFile); if (File.Exists(requestFile)) { try { ClientRequestDO requestDO = ClientRequestDO.GenerateClientRequestFromXML(requestFile); if (requestDO != null) { BuildRequestDO request = new BuildRequestDO { ClientID = msg.Arguments[CommCommands.CLIENTDETAILS], Language = ParseLanguage(requestDO.Language), FilesToBuild = requestDO.BuildFiles.ToList(), CompilerOptions = requestDO.CompilerOptions, ClientRequestFile = Path.GetFileName(requestFile) }; this.Compile(request); } } catch (Exception) { } } } }
/// <summary> /// Add files to current client request. /// </summary> /// <param name="isTestFile">Whether file is test file or build file.</param> private void AddFileToCurrentRequest(bool isTestFile = false) { var items = (List <ListItem>)BrowseRepositoryListBox.SelectedItems.Cast <ListItem>().ToList(); string baseDir = (string)this.CurrentDirectoryLabel.Content; int filesAdded = 0; for (int i = 0; i < items.Count; i++) { if (items[i].Type == CommCommands.RepositoryArgs.FILENAME) { HashSet <String> correctHashSet = null; string item = baseDir + items[i].Item; if (item.Length > 2) { item = item.Substring(2); } correctHashSet = isTestFile ? ClientRequestDO.GetCurrentRequest().TestDrivers : ClientRequestDO.GetCurrentRequest().BuildFiles; filesAdded += correctHashSet.Add(item) ? 1 : 0; } } if (isTestFile) { OutputToConsole(filesAdded + " files added to test drivers."); } else { OutputToConsole(filesAdded + " files added to build files."); } }
/// <summary> /// Create new build request automated. /// </summary> private void CreateNewBuildRequest() { this.ProcessNewRequest(); ClientRequestDO.GetCurrentRequest().BuildFiles.Add(@"TestProjectWithWarnings\Warnings.cs"); ClientRequestDO.GetCurrentRequest().BuildFiles.Add(@"TestProjectWithWarnings\TestDriver1.cs"); ClientRequestDO.GetCurrentRequest().TestDrivers.Add(@"TestProjectWithWarnings\TestDriver1.cs"); OutputToConsole("Added 2 files to build files and 1 to test driver."); OutputToConsole(@"\tTestProjectWithWarnings\Warnings.cs"); OutputToConsole(@"\tTestProjectWithWarnings\TestDriver1.cs"); OutputToConsole("TestDrivers => "); OutputToConsole(@"\tTestProjectWithWarnings\TestDriver1.cs"); SaveNewRequestToRepository(true); BrowseRepositoryListBox.SelectedIndex = 1; BrowseDirectory(BrowseRepositoryListBox); }
/// <summary> /// Process new request. /// </summary> private void ProcessNewRequest() { if (ClientRequestDO.NewRequest()) { OutputToConsole("New request created. You can add files to it.", MessagePassingCommunuication.Identity.Client); NewRequestBtn.Content = "Cancel Request"; AddBuildFileBtn.IsEnabled = true; AddTestFileBtn.IsEnabled = true; SaveFileBtn.IsEnabled = true; } else { ClientRequestDO.CancelRequest(); OutputToConsole("Request canceled.", MessagePassingCommunuication.Identity.Client); NewRequestBtn.Content = "New Request"; AddBuildFileBtn.IsEnabled = false; AddTestFileBtn.IsEnabled = false; SaveFileBtn.IsEnabled = false; } }
/// <summary> /// Logic to send file to repository. /// </summary> private void SaveNewRequestToRepository(bool displayXMLToConsole = false) { try { string fileName = "ClientReq_" + DateTime.Now.ToString("ddMMyy_hhmmss") + ".xml"; bool fileSaved = false; if (ClientRequestDO.GetCurrentRequest() != null) { ClientRequestDO.GenerateXML(fileName, out string xmlOutput); if (displayXMLToConsole) { OutputToConsole(xmlOutput); } } if (File.Exists(fileName)) { fileSaved = this.dispatcher.SendFile(fileName, this.dispatcher.GetURL(Identity.Repository)); if (fileSaved) { File.Delete(fileName); NewRequestBtn.Content = "New Request"; AddBuildFileBtn.IsEnabled = false; AddTestFileBtn.IsEnabled = false; SaveFileBtn.IsEnabled = false; OutputToConsole("Client request saved to repository: " + fileName); } else { OutputToConsole("Something went wrong. File (" + fileName + ") not saved."); } } } catch (Exception) { } }