private Tuple<List<IssueBCF>, List<Issue>> AddIssue(string path, bool isBcf) { try { // set image export settings ComApi.InwOaPropertyVec options = ComBridge.State.GetIOPluginOptions("lcodpimage"); // configure the option "export.image.format" to export png and image size foreach (ComApi.InwOaProperty opt in options.Properties()) { if (opt.name == "export.image.format") opt.value = "lcodpexpng"; if (opt.name == "export.image.width") opt.value = 1600; if (opt.name == "export.image.height") opt.value = 900; } _savedViewpoints = new List<SavedViewpoint>(); foreach (SavedItem oSI in _oDoc.SavedViewpoints.ToSavedItemCollection()) { RecurseItems(oSI); } var types = new ObservableCollection<Issuetype>(); var assignees = new List<User>(); var components = new ObservableCollection<Component>(); var priorities = new ObservableCollection<Priority>(); var noCom = true; var noPrior = true; var noAssign = true; if (!isBcf) { types = mainPan.jira.TypesCollection; assignees = mainPan.getAssigneesProj(); components = mainPan.jira.ComponentsCollection; priorities = mainPan.jira.PrioritiesCollection; noCom = mainPan.jira.ProjectsCollection[mainPan.jiraPan.projIndex].issuetypes[0].fields.components == null; noPrior = mainPan.jira.ProjectsCollection[mainPan.jiraPan.projIndex].issuetypes[0].fields.priority == null; noAssign = mainPan.jira.ProjectsCollection[mainPan.jiraPan.projIndex].issuetypes[0].fields.assignee == null; } AddIssueNavis ain = new AddIssueNavis(_savedViewpoints, types, assignees, components, priorities, noCom, noPrior, noAssign); if (isBcf) ain.JiraFieldsBox.Visibility = System.Windows.Visibility.Collapsed; ain.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterScreen; ain.ShowDialog(); if (ain.DialogResult.HasValue && ain.DialogResult.Value) { int elemCheck = 2; if (ain.all.IsChecked.Value) elemCheck = 0; else if (ain.selected.IsChecked.Value) elemCheck = 1; List<SavedViewpoint> savedViewpointsImport = new List<SavedViewpoint>(); for (int i = 0; i < ain.issueList.SelectedItems.Count; i++) { int index = ain.issueList.Items.IndexOf(ain.issueList.SelectedItems[i]); savedViewpointsImport.Add(_savedViewpoints[index]); } if (!savedViewpointsImport.Any()) return null; //get selection only once! if (elemCheck == 1) _elementList = _oDoc.CurrentSelection.SelectedItems.Where(o => o.InstanceGuid != Guid.Empty).ToList<ModelItem>(); List<IssueBCF> issues = new List<IssueBCF>(); List<Issue> issuesJira = new List<Issue>(); foreach (var sv in savedViewpointsImport) { Issue issueJira = new Issue(); if (!isBcf) { issueJira.fields = new Fields(); issueJira.fields.issuetype = (Issuetype)ain.issueTypeCombo.SelectedItem; issueJira.fields.priority = (Priority)ain.priorityCombo.SelectedItem; if (!string.IsNullOrEmpty(ain.ChangeAssign.Content.ToString()) && ain.ChangeAssign.Content.ToString() != "none") { issueJira.fields.assignee = new User(); issueJira.fields.assignee.name = ain.ChangeAssign.Content.ToString(); } if (ain.SelectedComponents != null && ain.SelectedComponents.Any()) { issueJira.fields.components = ain.SelectedComponents; } } IssueBCF issue = new IssueBCF(); string folderIssue = Path.Combine(path, issue.guid.ToString()); if (!Directory.Exists(folderIssue)) Directory.CreateDirectory(folderIssue); issue.snapshot = Path.Combine(folderIssue, "snapshot.png"); // set the currtent saved viewpoint and then generate sna and BCF viewpoint _oDoc.SavedViewpoints.CurrentSavedViewpoint = sv; issue.viewpoint = generateViewpoint(sv.Viewpoint, elemCheck); generateSnapshot(folderIssue); issue.markup.Topic.Title = sv.DisplayName; issue.markup.Header[0].IfcProject = ""; string projFilename = !string.IsNullOrEmpty(_oDoc.FileName) ? System.IO.Path.GetFileName(_oDoc.FileName) : ""; issue.markup.Header[0].Filename = projFilename; issue.markup.Header[0].Date = DateTime.Now; //comment if (sv.Comments.Any()) { foreach (var comm in sv.Comments) { var c = new CommentBCF { Comment1 = comm.Body, Topic = new CommentTopic { Guid = issue.guid.ToString() } }; ; c.Date = DateTime.Now; c.VerbalStatus = comm.Status.ToString(); c.Author = (string.IsNullOrWhiteSpace(mainPan.jira.Self.displayName)) ? UserSettings.Get("BCFusername") : mainPan.jira.Self.displayName; issue.markup.Comment.Add(c); } } issues.Add(issue); issuesJira.Add(issueJira); } // end foreach return new Tuple<List<IssueBCF>, List<Issue>>(issues, issuesJira); } } catch (Exception ex) { MessageBox.Show(ex.ToString()); } return null; }
private Tuple <List <IssueBCF>, List <Issue> > AddIssue(string path, bool isBcf) { try { // set image export settings ComApi.InwOaPropertyVec options = ComBridge.State.GetIOPluginOptions("lcodpimage"); // configure the option "export.image.format" to export png and image size foreach (ComApi.InwOaProperty opt in options.Properties()) { if (opt.name == "export.image.format") { opt.value = "lcodpexpng"; } if (opt.name == "export.image.width") { opt.value = 1600; } if (opt.name == "export.image.height") { opt.value = 900; } } _savedViewpoints = new List <SavedViewpoint>(); foreach (SavedItem oSI in _oDoc.SavedViewpoints.ToSavedItemCollection()) { RecurseItems(oSI); } var types = new ObservableCollection <Issuetype>(); var assignees = new List <User>(); var components = new ObservableCollection <Component>(); var priorities = new ObservableCollection <Priority>(); var noCom = true; var noPrior = true; var noAssign = true; if (!isBcf) { types = mainPan.jira.TypesCollection; assignees = mainPan.getAssigneesProj(); components = mainPan.jira.ComponentsCollection; priorities = mainPan.jira.PrioritiesCollection; noCom = mainPan.jira.ProjectsCollection[mainPan.jiraPan.projIndex].issuetypes[0].fields.components == null; noPrior = mainPan.jira.ProjectsCollection[mainPan.jiraPan.projIndex].issuetypes[0].fields.priority == null; noAssign = mainPan.jira.ProjectsCollection[mainPan.jiraPan.projIndex].issuetypes[0].fields.assignee == null; } AddIssueNavis ain = new AddIssueNavis(_savedViewpoints, types, assignees, components, priorities, noCom, noPrior, noAssign); if (isBcf) { ain.JiraFieldsBox.Visibility = System.Windows.Visibility.Collapsed; } ain.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterScreen; ain.ShowDialog(); if (ain.DialogResult.HasValue && ain.DialogResult.Value) { int elemCheck = 2; if (ain.all.IsChecked.Value) { elemCheck = 0; } else if (ain.selected.IsChecked.Value) { elemCheck = 1; } List <SavedViewpoint> savedViewpointsImport = new List <SavedViewpoint>(); for (int i = 0; i < ain.issueList.SelectedItems.Count; i++) { int index = ain.issueList.Items.IndexOf(ain.issueList.SelectedItems[i]); savedViewpointsImport.Add(_savedViewpoints[index]); } if (!savedViewpointsImport.Any()) { return(null); } //get selection only once! if (elemCheck == 1) { _elementList = _oDoc.CurrentSelection.SelectedItems.Where(o => o.InstanceGuid != Guid.Empty).ToList <ModelItem>(); } List <IssueBCF> issues = new List <IssueBCF>(); List <Issue> issuesJira = new List <Issue>(); foreach (var sv in savedViewpointsImport) { Issue issueJira = new Issue(); if (!isBcf) { issueJira.fields = new Fields(); issueJira.fields.issuetype = (Issuetype)ain.issueTypeCombo.SelectedItem; issueJira.fields.priority = (Priority)ain.priorityCombo.SelectedItem; if (!string.IsNullOrEmpty(ain.ChangeAssign.Content.ToString()) && ain.ChangeAssign.Content.ToString() != "none") { issueJira.fields.assignee = new User(); issueJira.fields.assignee.name = ain.ChangeAssign.Content.ToString(); } if (ain.SelectedComponents != null && ain.SelectedComponents.Any()) { issueJira.fields.components = ain.SelectedComponents; } } IssueBCF issue = new IssueBCF(); string folderIssue = Path.Combine(path, issue.guid.ToString()); if (!Directory.Exists(folderIssue)) { Directory.CreateDirectory(folderIssue); } issue.snapshot = Path.Combine(folderIssue, "snapshot.png"); // set the currtent saved viewpoint and then generate sna and BCF viewpoint _oDoc.SavedViewpoints.CurrentSavedViewpoint = sv; issue.viewpoint = generateViewpoint(sv.Viewpoint, elemCheck); generateSnapshot(folderIssue); issue.markup.Topic.Title = sv.DisplayName; issue.markup.Header[0].IfcProject = ""; string projFilename = !string.IsNullOrEmpty(_oDoc.FileName) ? System.IO.Path.GetFileName(_oDoc.FileName) : ""; issue.markup.Header[0].Filename = projFilename; issue.markup.Header[0].Date = DateTime.Now; //comment if (sv.Comments.Any()) { foreach (var comm in sv.Comments) { var c = new CommentBCF { Comment1 = comm.Body, Topic = new CommentTopic { Guid = issue.guid.ToString() } }; ; c.Date = DateTime.Now; c.VerbalStatus = comm.Status.ToString(); c.Author = (string.IsNullOrWhiteSpace(mainPan.jira.Self.displayName)) ? UserSettings.Get("BCFusername") : mainPan.jira.Self.displayName; issue.markup.Comment.Add(c); } } issues.Add(issue); issuesJira.Add(issueJira); } // end foreach return(new Tuple <List <IssueBCF>, List <Issue> >(issues, issuesJira)); } } catch (Exception ex) { MessageBox.Show(ex.ToString()); } return(null); }