示例#1
0
        private void InitializeCheckedServers()
        {
            var all = _serverTreeComponent.ServerTree.RootServerGroup.GetAllServers();

            foreach (var server in all)
            {
                var @checked = CheckedServers.FirstOrDefault(s => s.Name == server.Name);
                server.IsChecked = @checked != null;
            }
        }
        public override void Save()
        {
            try
            {
                List <ServerDirectoryEntry> allEntries = null;
                Platform.GetService <IServerDirectory>(s => allEntries = s.GetServers(new GetServersRequest()).ServerEntries);

                var changedEntries = new List <ServerDirectoryEntry>();

                foreach (var existingEntry in allEntries)
                {
                    var isChecked = CheckedServers.Any(s => s.Name == existingEntry.Server.Name);
                    if (existingEntry.IsPriorsServer == isChecked)
                    {
                        continue;
                    }

                    existingEntry.IsPriorsServer = isChecked;
                    changedEntries.Add(existingEntry);
                }

                Platform.GetService(delegate(IServerDirectory service)
                {
                    foreach (var changedEntry in changedEntries)
                    {
                        service.UpdateServer(new UpdateServerRequest {
                            ServerEntry = changedEntry
                        });
                    }
                });
            }
            catch (Exception e)
            {
                ExceptionHandler.Report(e, SR.MessageFailedToSavePriorsServers, Host.DesktopWindow);
            }
        }