aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/FSE/Modules/Tango.FSE.Procedures/Dialogs/LoadPublishedProjectViewVM.cs
blob: 34a4f6e523aa07c142a7c9ce416fd82eb0a5cd3d (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
55
56
57
58
59
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Data;
using Tango.BL.Entities;
using Tango.FSE.Common;

namespace Tango.FSE.Procedures.Dialogs
{
    public class LoadPublishedProjectViewVM : FSEDialogViewVM
    {
        private ICollectionView _projectsView;

        public List<PublishedProcedureProject> PublishedProcedureProjects { get; set; }

        private PublishedProcedureProject _selectedProject;
        public PublishedProcedureProject SelectedProject
        {
            get { return _selectedProject; }
            set { _selectedProject = value; RaisePropertyChangedAuto(); InvalidateRelayCommands(); }
        }

        private bool _showSuppressedProjects;
        public bool ShowSuppressedProjects
        {
            get { return _showSuppressedProjects; }
            set { _showSuppressedProjects = value; RaisePropertyChangedAuto(); _projectsView?.Refresh(); }
        }

        public LoadPublishedProjectViewVM(List<PublishedProcedureProject> projects)
        {
            OKText = "LOAD PROJECT";
            PublishedProcedureProjects = projects;
            _projectsView = CollectionViewSource.GetDefaultView(PublishedProcedureProjects);
            _projectsView.Filter = (obj) =>
            {
                PublishedProcedureProject p = obj as PublishedProcedureProject;

                if (p != null)
                {
                    if (!ShowSuppressedProjects && !p.IsVisible)
                    {
                        return false;
                    }
                }

                return true;
            };
        }

        protected override bool CanOK()
        {
            return base.CanOK() && SelectedProject != null;
        }
    }
}