VSTalk.Engine.ViewModel.ContactList.ClientResourcesManager.Update C# (CSharp) 메소드

Update() 공개 메소드

public Update ( ) : void
리턴 void
        public void Update()
        {
            //remove
            var toRemove = ActiveResources.Where(resource => !IsAccepted(resource)).ToList();
            foreach (var resource in toRemove)
            {
                RemoveResource(resource);
            }

            //insert
            var toInsert = _registeredResources.Exclude(toRemove.Union(ActiveResources));
            foreach (var clientResource in toInsert.Where(IsAccepted))
            {
                AddResource(clientResource);
            }

            //reorder
            var clientResources = OrderedResources(ActiveResources).ToList();
            foreach (var target in clientResources)
            {
                var actualPosition = ActiveResources.IndexOf(target);
                var expectedPosition = clientResources.IndexOf(target);
                if (actualPosition != expectedPosition)
                {
                    ActiveResources.Move(actualPosition, expectedPosition);
                }
            }
        }