public void BuidPage()
        {
            if (ApplicationContext.NodesSelected.Count > 0)
            {
                if (IsSelectSingleEndpoint())
                {
                    _view.PolicyEnhancementHeaderElement.Visibility         = Visibility.Collapsed;
                    _view.EndpointPolicyEnhancementHeaderElement.Visibility = Visibility.Visible;
                }
                else
                {
                    _view.PolicyEnhancementHeaderElement.Visibility         = Visibility.Visible;
                    _view.EndpointPolicyEnhancementHeaderElement.Visibility = Visibility.Collapsed;
                }

                UpdateHeader();
                _view.PnlPolicyContainer.Children.Clear();
                //var selectedNode = ApplicationContext.NodesSelected[0];

                var pocAgentList = new List <POCAgent>();
                if (ApplicationContext.POCAgentList == null)
                {
                    Functions.GetAllPolicies();
                }
                if (ApplicationContext.FolderPolicyList == null)
                {
                    Functions.LoadFolderPolicy();
                }
                if (ApplicationContext.EndpointPolicyList == null)
                {
                    Functions.LoadEndpointPolicy();
                }

                //Display all policies
                foreach (var node in ApplicationContext.NodesSelected)
                {
                    if (node.IsFolder)
                    {
                        var policyFolder = ApplicationContext.FolderPolicyList.FirstOrDefault(c => c.ObjectId == node.NodeId);
                        if (policyFolder != null)
                        {
                            var pocAgentFolder = ApplicationContext.POCAgentList.FirstOrDefault(c => c.Id == policyFolder.PolicyAgentId);
                            if (pocAgentFolder != null && !pocAgentList.Exists(c => c.Id == pocAgentFolder.Id))
                            {
                                pocAgentList.Add(pocAgentFolder);
                            }
                        }
                    }
                    else
                    {
                        var policyEndpoint = ApplicationContext.EndpointPolicyList.FirstOrDefault(c => c.ObjectId == node.NodeId);
                        if (policyEndpoint != null)
                        {
                            var pocAgentEndpoint = ApplicationContext.POCAgentList.FirstOrDefault(c => c.Id == policyEndpoint.PolicyAgentId);
                            if (pocAgentEndpoint != null && !pocAgentList.Exists(c => c.Id == pocAgentEndpoint.Id))
                            {
                                pocAgentList.Add(pocAgentEndpoint);
                            }
                        }
                    }
                }
                //if (selectedNode.IsFolder)
                //{
                //    var directory = ApplicationContext.FolderListAll.Find(r => r.FolderId == selectedNode.NodeId);

                //    var rootPolicy = ApplicationContext.FolderPolicyList.Find(r => r.ObjectId == selectedNode.NodeId);
                //    if (rootPolicy != null)
                //    {
                //        var pocAgent = ApplicationContext.POCAgentList.Find(r => r.Id == rootPolicy.PolicyAgentId);
                //        pocAgentList.Add(pocAgent);
                //    }
                //    FindChildPolicyAssign(directory, pocAgentList);
                //}
                //else
                //{
                //    var rootPolicy = ApplicationContext.EndpointPolicyList.Find(r => r.ObjectId == selectedNode.NodeId);
                //    if (rootPolicy != null)
                //    {
                //        var pocAgent = ApplicationContext.POCAgentList.Find(r => r.Id == rootPolicy.PolicyAgentId);
                //        pocAgentList.Add(pocAgent);
                //    }
                //}
                foreach (var pocAgent in pocAgentList)
                {
                    var policyEnhancement = new PolicyEnhancementElement();
                    policyEnhancement.Model.Id                      = pocAgent.Id;
                    policyEnhancement.Model.Name                    = pocAgent.Name;
                    policyEnhancement.Model.POCServer               = pocAgent.POCServer;
                    policyEnhancement.Model.Port                    = pocAgent.Port;
                    policyEnhancement.Model.Key                     = pocAgent.Key;
                    policyEnhancement.Model.NeighborhoodWatch       = pocAgent.NeighborhoodWatch;
                    policyEnhancement.Model.ActiveTransfer          = pocAgent.ActiveTransfer;
                    policyEnhancement.Model.TransferInterval        = pocAgent.TransferInterval;
                    policyEnhancement.Model.UpdateSource            = pocAgent.UpdateSource;
                    policyEnhancement.Model.SynchronizationInterval = pocAgent.SyncInterval;
                    policyEnhancement.Model.ExpanderBackgroundColor = pocAgent.Color;
                    _view.PnlPolicyContainer.Children.Add(policyEnhancement);
                }
            }
        }
コード例 #2
0
 public PolicyEnhancementViewModel(PolicyEnhancementElement view)
 {
     _view = view;
 }