private void OnlineTemplate_OnLoaded(object sender, RoutedEventArgs e) { try { string[] input = new string[] { "-c", ClientId, "-s", ClientSecret, "-a", BimId, "-h", AdminMail, "-f", " .\\sample", "-t", ",", "-z", ",", "-e", "UTF-8", "-d", "yyyy-MM-dd" }; AppOptions options = AppOptions.Parse(input); // options.AccountRegion = "EU"; options.AdminRole = "Project Manager"; ProjectWorkflow projectProcess = new ProjectWorkflow(options); List <BimProject> projects = projectProcess.GetAllProjects(); List <string> templateList = new List <string>(); foreach (var iter in projects) { templateList.Add(iter.name); } ComboBoxTemplate.ItemsSource = templateList; } catch (Exception ex) { statusbar.Text = "Fail to Load Templates: " + ex.Message; } }
public static void Main(string[] args) { if (args == null || args.Length < 1) { Application.PrintHelp(); return; } if (args[0] != null && args[0].Trim().Equals("/?")) { Application.PrintHelp(); return; } try { Application.PrintHeader(); AppOptions options = AppOptions.Parse(args); Application app = new Application(options); if (app.Initialize() == true) { app.Process(); } else { Console.WriteLine("Application could not initialize correctly!"); } } catch (Exception ex) { Console.WriteLine("ERROR: {0}", ex.Message); Console.WriteLine("ERROR: {0}", ex.StackTrace); Application.PrintHelp(); } }
private static void StartSniffing(NetworkInterfaceInfo nic, out PcapNgFileOutput output, out SocketSniffer sniffer) { var appOptions = new AppOptions(); appOptions.Parse(new string[] { "" }); var filters = appOptions.BuildFilters(); output = new PcapNgFileOutput(nic, appOptions.Filename); sniffer = new SocketSniffer(nic, filters, output); sniffer.Start(); }
static void Main(string[] args) { // Delete previous versions of log.txt System.IO.File.Delete("Log/logInfo.txt"); System.IO.File.Delete("Log/logImportant.txt"); AppOptions options = AppOptions.Parse(args); ProjectWorkflow projectProcess = new ProjectWorkflow(options); FolderWorkflow folderProcess = new FolderWorkflow(options); ProjectUserWorkflow projectUserProcess = new ProjectUserWorkflow(options); AccountWorkflow accountProcess = new AccountWorkflow(options); DataTable csvData = projectProcess.CustomGetDataFromCsv(); List <BimProject> projects = projectProcess.GetAllProjects(); List <BimCompany> companies = null; BimProject currentProject = null; List <HqUser> projectUsers = null; List <NestedFolder> folders = null; NestedFolder currentFolder = null; for (int row = 0; row < csvData.Rows.Count; row++) { string projectName = csvData.Rows[row]["project_name"].ToString(); if (!string.IsNullOrEmpty(projectName)) { Util.LogImportant($"\nCurrent project: {projectName}"); currentProject = projects.Find(x => x.name == projectName); if (currentProject == null) { projects = projectProcess.CustomCreateProject(csvData, row, projectName, projectProcess); currentProject = projects.Find(x => x.name == projectName); CheckProjectCreated(currentProject, projectName); } folders = folderProcess.CustomGetFolderStructure(currentProject); companies = accountProcess.CustomUpdateCompanies(csvData, row, accountProcess); projectUsers = projectUserProcess.CustomUpdateProjectUsers(csvData, row, companies, currentProject, projectUserProcess); } currentFolder = CreateFoldersAndAssignPermissions(csvData, row, projectUsers, folderProcess, folders, currentFolder, currentProject, projectUserProcess); UploadFilesFromFolder(csvData, row, folderProcess, currentFolder, currentProject.id, options.LocalFoldersPath); } }
/// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void GetTemplate_OnClick(object sender, RoutedEventArgs e) { var progress = new updates_upload(); progress.Show(); //Updates progress.pgb.Value = 10; progress.ProgressLabel.Content = "Build Connection"; // ProgressBar "refresh" CallDispatch(progress); string[] input = new string[] { "-c", ClientId, "-s", ClientSecret, "-a", BimId, "-h", AdminMail, "-f", " .\\sample", "-t", ",", "-z", ",", "-e", "UTF-8", "-d", "yyyy-MM-dd" }; AppOptions options = AppOptions.Parse(input); // options.AccountRegion = "EU"; options.AdminRole = "Project Manager"; ProjectWorkflow projectProcess = new ProjectWorkflow(options); FolderWorkflow folderProcess = new FolderWorkflow(options); System.Threading.Thread.Sleep(1000); // load all existing projects from the BIM360 environment List <BimProject> projects = projectProcess.GetAllProjects(); //Updates progress.pgb.Value = 30; progress.ProgressLabel.Content = "Download Project"; // ProgressBar "refresh" CallDispatch(progress); BimProject currentProject = null; // get project from bim360 try { currentProject = projects.Find(x => x.name == TextBoxTemplate.Text.Trim()); } catch (Exception) { statusbar.Text = "No Project with the name:" + TextBoxTemplate.Text.Trim() + " found!"; return; } if (currentProject == null) { return; } var nestedfolders = folderProcess.CustomGetFolderStructure(currentProject); foreach (var iterfolder in nestedfolders) { } progress.pgb.Value = 50; progress.ProgressLabel.Content = "Converte to local Project 0/2"; // ProgressBar "refresh" CallDispatch(progress); var newproject = new Bim360Project(TextBoxTemplate.Text.Trim()); newproject.ProjectType = Selection.SelectProjectType(currentProject.project_type); var roots = new List <Folder>(); //hier rekursive alle ordner finden foreach (var iterfolder in nestedfolders) { roots.Add(getNestedFolder(iterfolder)); progress.pgb.Value = 70; progress.ProgressLabel.Content = "Converte to local Project 1/2"; // ProgressBar "refresh" CallDispatch(progress); } //here hardcoded plan and projectfiles need to be changed in the furtuer if ACC comes if (roots[0].Name == "Plans") { newproject.Plans = roots[0]; newproject.ProjectFiles = roots[1]; } else { newproject.Plans = roots[1]; newproject.ProjectFiles = roots[0]; } AccProjectConfig.ProjectsView.ItemsSource = AccProjectConfig.projects; AccProjectConfig.projects.Add(newproject); AccProjectConfig.ProjectsView.Items.Refresh(); progress.Close(); statusbar.Text = "Import successful"; }
/// <summary> /// runs the upload to the BIM360 environment /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Upload_OnClick(object sender, RoutedEventArgs e) { var progress = new updates_upload(); progress.Show(); // convert string to stream byte[] byteArray = Encoding.UTF8.GetBytes(AccProjectConfig.ExportBim360Projects()); MemoryStream dataset = new MemoryStream(byteArray); //dataset.Position = 0; //Updates progress.pgb.Value = 10; progress.ProgressLabel.Content = "Build Connection"; // ProgressBar "refresh" CallDispatch(progress); //maybe change string[] input = new string[] { "-c", ClientId, "-s", ClientSecret, "-a", BimId, "-h", AdminMail, "-f", " .\\sample", "-t", ",", "-z", ",", "-e", "UTF-8", "-d", "yyyy-MM-dd" }; // Delete previous versions of log.txt System.IO.File.Delete("Log/logInfo.txt"); System.IO.File.Delete("Log/logImportant.txt"); AppOptions options = AppOptions.Parse(input); // options.AccountRegion = "EU"; options.AdminRole = "Project Manager"; ProjectWorkflow projectProcess = new ProjectWorkflow(options); System.Threading.Thread.Sleep(1000); // load all existing projects from the BIM360 environment List <BimProject> projects = projectProcess.GetAllProjects(); FolderWorkflow folderProcess = new FolderWorkflow(options); ProjectUserWorkflow projectUserProcess = new ProjectUserWorkflow(options); AccountWorkflow accountProcess = new AccountWorkflow(options); //Updates progress.pgb.Value = 25; progress.ProgressLabel.Content = "Convert Data from GUI"; // ProgressBar "refresh" CallDispatch(progress); // load data from custom CSV file. Filepath was set in constructor of projectProcess by pushing the options instance DataTable csvData = new DataTable(); csvData = ProjectWorkflow.CustomGetDataFromCsv_stream(dataset); //Updates progress.pgb.Value = 40; progress.ProgressLabel.Content = "Uploading"; // ProgressBar "refresh" CallDispatch(progress); List <BimCompany> companies = null; BimProject currentProject = null; List <HqUser> projectUsers = null; List <NestedFolder> folders = null; NestedFolder currentFolder = null; //Uploading try { for (int row = 0; row < csvData.Rows.Count; row++) { string projectName = csvData.Rows[row]["project_name"].ToString(); // check if the current row defines the start point for another project (project_name column must be set) if (!string.IsNullOrEmpty(projectName)) { Util.LogImportant($"\nCurrent project: {projectName}"); // check if the requested project name is already present inside BIM360 currentProject = projects.Find(x => x.name == projectName); if (currentProject == null) { // create the project projects = projectProcess.CustomCreateProject(csvData, row, projectName, projectProcess); // set the current project variable to the recently created project currentProject = projects.Find(x => x.name == projectName); // verify the initialization of the new project CheckProjectCreated(currentProject, projectName); } // create the folder structure folders = folderProcess.CustomGetFolderStructure(currentProject); // add the companies companies = accountProcess.CustomUpdateCompanies(csvData, row, accountProcess); // create or update the project users projectUsers = projectUserProcess.CustomUpdateProjectUsers(csvData, row, companies, currentProject, projectUserProcess); //activate all services ServiceWorkflow serviceProcess = new ServiceWorkflow(options); //check what servers needs to be activated if (ServiceTab.CheckBoxservices.IsChecked == true) { #region Add Services var listname = new List <string>(); listname.Add("admin"); listname.Add("doc_manage"); if (ServiceTab.CheckBoxpm.IsChecked == true) { listname.Add("pm"); } if (ServiceTab.CheckBoxfng.IsChecked == true) { listname.Add("fng"); } if (ServiceTab.CheckBoxcollab.IsChecked == true) { listname.Add("collab"); } if (ServiceTab.CheckBoxcost.IsChecked == true) { listname.Add("cost"); } if (ServiceTab.CheckBoxgng.IsChecked == true) { listname.Add("gng"); } if (ServiceTab.CheckBoxglue.IsChecked == true) { listname.Add("glue"); } if (ServiceTab.CheckBoxplan.IsChecked == true) { listname.Add("plan"); } if (ServiceTab.CheckBoxfield.IsChecked == true) { listname.Add("field"); } if (ServiceTab.CheckBoxassete.IsChecked == true) { listname.Add("assets"); } #endregion var serviceList = new List <ServiceActivation>(); foreach (var iter in listname) { serviceList.Add(new ServiceActivation()); serviceList.Last().service_type = iter; serviceList.Last().project_name = projectName; //test hardcoded Test company name needs to be enter or find out serviceList.Last().company = ServiceTab.Company.Text.Trim(); serviceList.Last().email = AdminMail; } serviceProcess.ActivateServicesProcess( new List <BimProject>(new BimProject[] { currentProject }), serviceList); } } // assign permissions currentFolder = CreateFoldersAndAssignPermissions(csvData, row, projectUsers, folderProcess, folders, currentFolder, currentProject, projectUserProcess); // run the file upload if requested UploadFilesFromFolder(csvData, row, folderProcess, currentFolder, currentProject.id, options.LocalFoldersPath); //Updates progress.pgb.Value = 50 + (50 / csvData.Rows.Count * row); progress.ProgressLabel.Content = "Uploading"; // ProgressBar "refresh" CallDispatch(progress); } } catch (Exception ex) { //show the error statusbar.Text = ex.Message; progress.Close(); return; } statusbar.Text = "Upload successful"; progress.Close(); }
static void Main(string[] args) { // Delete previous versions of log.txt System.IO.File.Delete("Log/logInfo.txt"); System.IO.File.Delete("Log/logImportant.txt"); AppOptions options = AppOptions.Parse(args); // options.AccountRegion = "EU"; ProjectWorkflow projectProcess = new ProjectWorkflow(options); FolderWorkflow folderProcess = new FolderWorkflow(options); ProjectUserWorkflow projectUserProcess = new ProjectUserWorkflow(options); AccountWorkflow accountProcess = new AccountWorkflow(options); // load data from custom CSV file. Filepath was set in constructor of projectProcess by pushing the options instance DataTable csvData = projectProcess.CustomGetDataFromCsv(); // load all existing projects from the BIM360 environment List <BimProject> projects = projectProcess.GetAllProjects(); List <BimCompany> companies = null; BimProject currentProject = null; List <HqUser> projectUsers = null; List <NestedFolder> folders = null; NestedFolder currentFolder = null; for (int row = 0; row < csvData.Rows.Count; row++) { string projectName = csvData.Rows[row]["project_name"].ToString(); // check if the current row defines the start point for another project (project_name column must be set) if (!string.IsNullOrEmpty(projectName)) { Util.LogImportant($"\nCurrent project: {projectName}"); // check if the requested project name is already present inside BIM360 currentProject = projects.Find(x => x.name == projectName); if (currentProject == null) { // create the project projects = projectProcess.CustomCreateProject(csvData, row, projectName, projectProcess); // set the current project variable to the recently created project currentProject = projects.Find(x => x.name == projectName); // verify the initialization of the new project CheckProjectCreated(currentProject, projectName); } // create the folder structure folders = folderProcess.CustomGetFolderStructure(currentProject); // add the companies companies = accountProcess.CustomUpdateCompanies(csvData, row, accountProcess); // create or update the project users projectUsers = projectUserProcess.CustomUpdateProjectUsers(csvData, row, companies, currentProject, projectUserProcess); } // assign permissions currentFolder = CreateFoldersAndAssignPermissions(csvData, row, projectUsers, folderProcess, folders, currentFolder, currentProject, projectUserProcess); // run the file upload if requested UploadFilesFromFolder(csvData, row, folderProcess, currentFolder, currentProject.id, options.LocalFoldersPath); } }
private async static Task <JavaMapletGaussOutput> TutorResult(MapleLinearAlgebra engine, MapleMatrix matrix, string methodName) { List <string> operations = new List <string>(); var gaussOutput = new JavaMapletGaussOutput(); await semaphoreSlim.WaitAsync();//Since same protocol is used for every Tutor we have to wait for other tutor's to be closed before we can recall. try { var engineType = typeof(MapleLinearAlgebra); var method = engineType.GetMethod(methodName); //reflection used since each Tutor uses same protocol, for linearalgebra, (but different call methods to maple) IWindow window = await(Task <IWindow>) method.Invoke(engine, new object[] { matrix }); // await engine.GaussJordanEliminationTutor(matrix); if (window is MSWindow) // Microsoft Windows { // Find interfaces for sniffing. var nics = NetworkInterfaceInfo.GetInterfaces(); var nic = nics.FirstOrDefault(c => c.Name.Contains("Loopback Pseudo")); // Ensure loopback pseudo interface is found... if (nic != default(NetworkInterfaceInfo)) { #region Start Sniffing var appOptions = new AppOptions(); appOptions.Parse(new string[] { "" }); var filters = appOptions.BuildFilters(); var output = new PcapNgFileOutput(nic, appOptions.Filename); var sniffer = new SocketSniffer(nic, filters, output); sniffer.Start(); #endregion #region MSWIN var mswin = (MSWindow)window; mswin.WindowPos(0, 0, 400, 800); for (int i = 0; i < 4; i++) { mswin.SendKeyStroke(System.Windows.Forms.Keys.Tab); await Task.Delay(60); } mswin.SendKeyStroke(System.Windows.Forms.Keys.Enter); mswin.Hide(); long LastPackageCount = 0; int WaitTries = 0; while (true) // wait for program to stop sending packages to intercept. { await Task.Delay(400); LastPackageCount = sniffer.PacketsCaptured; if (LastPackageCount > 0 && LastPackageCount == sniffer.PacketsCaptured) { WaitTries++; } if (WaitTries > 4) { break; } } mswin.Close(); #endregion #region Interpret Sniffed Data sniffer.Stop(); output.Dispose(); using (var reader = new StreamReader("snifter.pcapng")) { var content = reader.ReadToEnd(); var regex = new Regex(@"\<application_communications.*?\<content\>Applied operation\:\ (.*?)\<\/content\>", RegexOptions.Singleline); var match = regex.Match(content); while (match.Success) { var operation = match.Groups[1].Value.Trim();//initial space operations.Add(operation); match = match.NextMatch(); } var mapleMatrixRegex = new Regex(@"\<content\>(\<\;.*?)\<", RegexOptions.Singleline); var mapleMatrixMatch = mapleMatrixRegex.Match(content); var lastMatchStr = ""; while (mapleMatrixMatch.Success) { lastMatchStr = mapleMatrixMatch.Groups[1].Value; mapleMatrixMatch = mapleMatrixMatch.NextMatch(); } StringBuilder builder = new StringBuilder(lastMatchStr); gaussOutput.Operations = operations.ToArray(); int ra_index = 0; int index = 0; var search = "mtext>&NewLine;"; while ((ra_index = builder.ToString().IndexOf(search, ra_index)) != -1) { ra_index += search.Length; if (index >= operations.Count) { break; } builder.Insert(ra_index, $" {gaussOutput.OperationsDa[index++]} &NewLine;&NewLine;&NewLine;"); } gaussOutput.MathML = HttpUtility.HtmlDecode(builder.ToString()); } #endregion } } } finally { semaphoreSlim.Release(); } return(gaussOutput); }
/// <summary> /// runs the upload to the BIM360 environment /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Upload_OnClick(object sender, RoutedEventArgs e) { var progress = new updates_upload(); progress.Show(); //main window closing prevention try { // convert string to stream byte[] byteArray = Encoding.UTF8.GetBytes(AccProjectConfig.ExportBim360Projects()); MemoryStream dataset = new MemoryStream(byteArray); //dataset.Position = 0; //Updates progress.pgb.Value = 10; progress.ProgressLabel.Content = "Build Connection"; // ProgressBar "refresh" CallDispatch(progress); //input for upload string[] input = new string[] { "-c", ClientId, "-s", ClientSecret, "-a", BimId, "-h", AdminMail, "-f", " .\\sample", "-t", ",", "-z", ",", "-e", "UTF-8", "-d", "yyyy-MM-dd" }; // specify a folder in the %APPDATA% to store the logging files var loggingFolder = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); // Delete previous versions of log.txt try { System.IO.File.Delete(Path.Combine(loggingFolder, "Bim360Interface/logInfo.txt")); System.IO.File.Delete(Path.Combine(loggingFolder, "Bim360Interface/logInfo_important.txt")); } catch (Exception exception) { Console.WriteLine(exception); // throw; } AppOptions options = AppOptions.Parse(input); // options.AccountRegion = "EU"; options.AdminRole = "Project Manager"; ProjectWorkflow projectProcess = new ProjectWorkflow(options); System.Threading.Thread.Sleep(1000); // load all existing projects from the BIM360 environment List <BimProject> projects = projectProcess.GetAllProjects(); FolderWorkflow folderProcess = new FolderWorkflow(options); ProjectUserWorkflow projectUserProcess = new ProjectUserWorkflow(options); AccountWorkflow accountProcess = new AccountWorkflow(options); // this is the admin mail to activate the projects var adminMail = AdminMail; //Get defaut company name string defaultcomp; try { defaultcomp = folderProcess.CustomDefaultCompanyName(adminMail); } catch (NullReferenceException) { defaultcomp = "DefaultCompany"; } //Updates progress.pgb.Value = 25; progress.ProgressLabel.Content = "Convert Data from GUI"; // ProgressBar "refresh" CallDispatch(progress); // load data from custom CSV file. Filepath was set in constructor of projectProcess by pushing the options instance DataTable csvData = new DataTable(); csvData = ProjectWorkflow.CustomGetDataFromCsv_stream(dataset); //Updates progress.pgb.Value = 40; progress.ProgressLabel.Content = "Uploading"; // ProgressBar "refresh" CallDispatch(progress); List <BimCompany> companies = null; BimProject currentProject = null; List <HqUser> projectUsers = null; List <NestedFolder> folders = null; NestedFolder currentFolder = null; //Uploading try { for (int row = 0; row < csvData.Rows.Count; row++) { string projectName = csvData.Rows[row]["project_name"].ToString(); // check if the current row defines the start point for another project (project_name column must be set) if (!string.IsNullOrEmpty(projectName)) { Util.LogImportant($"\nCurrent project: {projectName}"); // check if the requested project name is already present inside BIM360 currentProject = projects.Find(x => x.name == projectName); if (currentProject == null) { // create the project projects = projectProcess.CustomCreateProject(csvData, row, projectName, projectProcess); // set the current project variable to the recently created project currentProject = projects.Find(x => x.name == projectName); // verify the initialization of the new project CheckProjectCreated(currentProject, projectName); } // create the folder structure folders = folderProcess.CustomGetFolderStructure(currentProject, adminMail); // add the companies companies = accountProcess.CustomUpdateCompanies(csvData, row, accountProcess); // create or update the project users projectUsers = projectUserProcess.CustomUpdateProjectUsers(csvData, row, companies, currentProject, projectUserProcess); //activate services ServiceWorkflow serviceProcess = new ServiceWorkflow(options); #region Add Services // admin and doc_manage should be always activated var serviceShortcuts = new List <string> { "admin", "doc_manage" }; // check which service should be activated in addition to admin and doc_manage if (ServiceTab.CheckBoxProjectManagement.IsChecked == true) { serviceShortcuts.Add("pm"); } if (ServiceTab.CheckBoxFieldManagement.IsChecked == true) { serviceShortcuts.Add("fng"); } if (ServiceTab.CheckBoxDesignCollab.IsChecked == true) { serviceShortcuts.Add("collab"); } if (ServiceTab.CheckBoxCostManagement.IsChecked == true) { serviceShortcuts.Add("cost"); } if (ServiceTab.CheckBoxgng.IsChecked == true) { serviceShortcuts.Add("gng"); } if (ServiceTab.CheckBoxglue.IsChecked == true) { serviceShortcuts.Add("glue"); } if (ServiceTab.CheckBoxPlan.IsChecked == true) { serviceShortcuts.Add("plan"); } if (ServiceTab.CheckBoxField.IsChecked == true) { serviceShortcuts.Add("field"); } if (ServiceTab.CheckBoxAssets.IsChecked == true) { serviceShortcuts.Add("assets"); } #endregion var serviceList = new List <ServiceActivation>(); foreach (var serviceShortcut in serviceShortcuts) { //ToDo: this part needs revision serviceList.Add(new ServiceActivation() { email = AdminMail, service_type = serviceShortcut, project_name = projectName, company = defaultcomp }); } // take the current project and activate all services that were checked serviceProcess.ActivateServicesProcess( new List <BimProject>(new BimProject[] { currentProject }), serviceList); } // assign permissions currentFolder = CreateFoldersAndAssignPermissions(csvData, row, projectUsers, folderProcess, folders, currentFolder, currentProject, projectUserProcess); // run the file upload if requested UploadFilesFromFolder(csvData, row, folderProcess, currentFolder, currentProject.id, options.LocalFoldersPath); //Updates progress.pgb.Value = 50 + (50 / csvData.Rows.Count * row); progress.ProgressLabel.Content = "Uploading"; // ProgressBar "refresh" CallDispatch(progress); } } catch (Exception ex) { //show the error statusbar.Text = ex.Message; progress.Close(); return; } statusbar.Text = "Upload successful"; progress.Close(); } catch (Exception ex) { this.statusbar.Text = "Error on upload:" + ex.Message; progress.Close(); } }