aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/ReportIssueViewVM.cs
blob: 6df5fc4bc0847386667b74df283fdc593abd93da (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
using Microsoft.Win32;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Tango.Core.Commands;
using Tango.MachineStudio.Common;
using Tango.MachineStudio.Common.Notifications;
using Tango.MachineStudio.UI.TFS;
using Tango.Settings;
using Tango.SharedUI;
using Tango.SharedUI.Components;
using Tango.TFS;

namespace Tango.MachineStudio.UI.ViewModels
{
    public class ReportIssueViewVM : DialogViewVM
    {
        private MachineStudioSettings _settings;

        public SelectedObjectCollection<Tag> SelectedTags { get; set; }

        public Project Project { get; set; }

        [WorkItemValidation]
        public WorkItem WorkItem { get; set; }

        private String _imageFile;
        public String ImageFile
        {
            get { return _imageFile; }
            set { _imageFile = value; RaisePropertyChangedAuto(); }
        }

        public RelayCommand BrowseImageCommand { get; set; }

        public ReportIssueViewVM() : base()
        {
            _settings = SettingsManager.Default.GetOrCreate<MachineStudioSettings>();
            BrowseImageCommand = new RelayCommand(BrowseImage);
        }

ass="n">WorkItem workItem) : this() { Project = project; WorkItem = workItem; var area = project.GetAreaByName(_settings.DefaultIssueReportArea); if (area != null) { workItem.Area = area; } var assignedTo = project.Members.FirstOrDefault(x => x.Email == _settings.DefaultIssueReportAssignTo); if (assignedTo != null) { workItem.AssignedTo = assignedTo; } var tags = project.Tags.Where(x => _settings.DefaultIssueReportTags.Contains(x.Name)).ToList(); if (tags != null) { workItem.Tags = tags; } SelectedTags = new SelectedObjectCollection<Tag>(Project.Tags.ToObservableCollection(), workItem.Tags.ToObservableCollection()); } private void BrowseImage() { OpenFileDialog dlg = new OpenFileDialog(); dlg.Title = "Select image file"; dlg.Filter = "Image Files|*.jpg;*.bmp;*.png"; if (dlg.ShowDialog().Value) { ImageFile = dlg.FileName; } } protected override void Accept() { if (Validate()) { WorkItem.Tags = SelectedTags.SynchedSource.ToList(); if (ImageFile != null && File.Exists(ImageFile)) { WorkItem.Attachments.Add(new Attachment() { Description = "User Image", FilePath = ImageFile, Name = Path.GetFileName(ImageFile), }); } try { _settings.DefaultIssueReportArea = WorkItem.Area.Name; _settings.DefaultIssueReportAssignTo = WorkItem.AssignedTo.Email; _settings.DefaultIssueReportTags = WorkItem.Tags.Select(x => x.Name).ToList(); _settings.Save(); } catch { } base.Accept(); } } } }