private Tuple<IssueBCF, Issue> AddIssue(string path, bool isBcf)
{
try
{
UIDocument uidoc = uiapp.ActiveUIDocument;
Document doc = uidoc.Document;
if (!(uidoc.ActiveView is View3D || uidoc.ActiveView is ViewSheet || uidoc.ActiveView is ViewPlan || uidoc.ActiveView is ViewSection || uidoc.ActiveView is ViewDrafting))
{
MessageBox.Show("I'm sorry,\nonly 3D and 2D views are supported.", "Error!", MessageBoxButton.OK, MessageBoxImage.Error);
return null;
}
IssueBCF issue = new IssueBCF();
string folderIssue = Path.Combine(path, issue.guid.ToString());
if (!Directory.Exists(folderIssue))
Directory.CreateDirectory(folderIssue);
var types = new ObservableCollection<Issuetype>();
var assignees = new List<User>();
var components = new ObservableCollection<IssueTracker.Classes.Component>();
var priorities = new ObservableCollection<Priority>();
var noCom = true;
var noPrior = true;
var noAssign = true;
if (!isBcf)
{
types = mainPan.jira.TypesCollection;
assignees = mainPan.getAssigneesIssue();
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;
}
AddIssueRevit air = new AddIssueRevit(uidoc, folderIssue, types, assignees, components, priorities, noCom, noPrior, noAssign);
air.Title = "Add Jira Issue";
if (!isBcf)
air.VerbalStatus.Visibility = System.Windows.Visibility.Collapsed;
else
air.JiraFieldsBox.Visibility = System.Windows.Visibility.Collapsed;
air.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterScreen;
air.ShowDialog();
if (air.DialogResult.HasValue && air.DialogResult.Value)
{
issue.snapshot = Path.Combine(folderIssue, "snapshot.png");
int elemCheck = 2;
if (air.all.IsChecked.Value)
elemCheck = 0;
else if (air.selected.IsChecked.Value)
elemCheck = 1;
Issue issueJira = new Issue();
if (!isBcf)
{
issueJira.fields = new Fields();
issueJira.fields.issuetype = (Issuetype) air.issueTypeCombo.SelectedItem;
issueJira.fields.priority = (Priority) air.priorityCombo.SelectedItem;
if (!string.IsNullOrEmpty(air.ChangeAssign.Content.ToString()) &&
air.ChangeAssign.Content.ToString() != "none")
{
issueJira.fields.assignee = new User();
issueJira.fields.assignee.name = air.ChangeAssign.Content.ToString();
}
if (air.SelectedComponents != null && air.SelectedComponents.Any())
{
issueJira.fields.components = air.SelectedComponents;
}
}
issue.viewpoint = generateViewpoint(elemCheck);
issue.markup.Topic.Title = air.TitleBox.Text;
issue.markup.Header[0].IfcProject = ExporterIFCUtils.CreateProjectLevelGUID(doc,
Autodesk.Revit.DB.IFC.IFCProjectLevelGUIDType.Project);
string projFilename = (doc.PathName != null && doc.PathName != "")
? System.IO.Path.GetFileName(doc.PathName)
: "";
issue.markup.Header[0].Filename = projFilename;
issue.markup.Header[0].Date = DateTime.Now;
//comment
if (!string.IsNullOrWhiteSpace(air.CommentBox.Text))
{
CommentBCF c = new CommentBCF();
c.Comment1 = air.CommentBox.Text;
c.Topic = new CommentTopic();
c.Topic.Guid = issue.guid.ToString();
;
c.Date = DateTime.Now;
c.VerbalStatus = air.VerbalStatus.Text;
// if (air.comboStatuses.SelectedIndex != -1)
// c.Status = mainPan.getStatus(air.comboStatuses.SelectedValue.ToString());
c.Status = CommentStatus.Unknown;
c.Author = (string.IsNullOrWhiteSpace(mainPan.jira.Self.displayName))
? MySettings.Get("BCFusername")
: mainPan.jira.Self.displayName;
issue.markup.Comment.Add(c);
}
return new Tuple<IssueBCF, Issue>(issue, issueJira);
}
else
{
mainPan.DeleteDirectory(folderIssue);
}
}
catch (System.Exception ex1)
{
MessageBox.Show("exception: " + ex1);
}
return null;
}