/// <summary>
        /// Activate our public API facade
        /// </summary>
        protected void ActivateFacade(IFacadeControl facade)
        {
            // First activation
            if (facade.ValidateHealthState == null)
            {
                facade.ValidateHealthState = ValidateHealthState;
            }

            FillProperties(facade, FillProperty);
            facade.Activate();

            _activeFacades.Add(facade);
        }
        /// <summary>
        /// Deactivate our public facade
        /// </summary>
        protected void DeactivateFacade(IFacadeControl facade)
        {
            if (!_activeFacades.Contains(facade))
            {
                return;
            }

            facade.Deactivate();
            FillProperties(facade, (a, b) => null);

            _activeFacades.Remove(facade);

            var lifeCycleBoundFacade = facade as ILifeCycleBoundFacade;

            lifeCycleBoundFacade?.Deactivated();
        }