/// <summary>
        /// Update the custom events node based on user's selections
        /// </summary>
        private void UpdateCustomNode()
        {
            CustomNode.RemoveChild(CustomPropertiesNode);
            CustomNode.RemoveChild(EditBtnNode);
            var custom = (from e in ConfigurationManager.GetDefaultInstance().EventConfig.Events
                          where e.IsRecorded
                          select e.Id).ToList();

            CustomNode.Children.Where(c => c.Type != EventConfigNodeType.Group && !custom.Contains(c.Id)).ToList().ForEach(c => CustomNode.RemoveChild(c));

            var add = custom.Where(id => !CustomNode.Children.Select(c => c.Id).Contains(id)).ToList();

            CustomNode.AddChildren(add, EventConfigNodeType.Event);
            CustomNode.SortChildren();
            CustomNode.InsertChildAtIndex(0, EditBtnNode);

            custom = (from e in ConfigurationManager.GetDefaultInstance().EventConfig.Properties
                      where e.IsRecorded
                      select e.Id).ToList();

            CustomPropertiesNode.Children.Where(c => c.Type != EventConfigNodeType.Group && !custom.Contains(c.Id)).ToList().ForEach(c => CustomPropertiesNode.RemoveChild(c));

            add = custom.Where(id => !CustomPropertiesNode.Children.Select(c => c.Id).Contains(id)).ToList();
            CustomPropertiesNode.AddChildren(add, EventConfigNodeType.Property);
            CustomPropertiesNode.SortChildren();

            if (CustomPropertiesNode.Children.Count > 0)
            {
                CustomNode.AddChild(CustomPropertiesNode);
            }
        }