protected override async Task <bool> BeforeConfigure(ConfigurationRequestType configurationRequestType)
        {
            if (configurationRequestType == ConfigurationRequestType.Initial)
            {
                return(true);
            }

            Storage.Remove <ValidationResultsCM>();

            ValidationManager = CreateValidationManager();

            ValidationManager.Reset();

            if (!DisableValidationOnFollowup)
            {
                await Validate();
            }

            if (ValidationManager.HasErrors)
            {
                Storage.Add(Crate.FromContent(ValidationCrateLabel, ValidationManager.ValidationResults));
                return(false);
            }

            return(true);
        }
        /**********************************************************************************/

        protected override async Task <bool> BeforeConfigure(ConfigurationRequestType configurationRequestType)
        {
            if (configurationRequestType == ConfigurationRequestType.Initial)
            {
                Storage.Clear();
                Storage.Add(Crate.FromContent(ConfigurationControlsLabel, ActivityUI, AvailabilityType.Configuration));
            }

            return(await base.BeforeConfigure(configurationRequestType));
        }
        /**********************************************************************************/

        protected override Task AfterConfigure(ConfigurationRequestType configurationRequestType, Exception ex)
        {
            SyncConfControlsBack();
            return(base.AfterConfigure(configurationRequestType, ex));
        }
        /**********************************************************************************/

        protected virtual Task <bool> BeforeConfigure(ConfigurationRequestType configurationRequestType)
        {
            return(Task.FromResult(true));
        }
        /**********************************************************************************/

        protected virtual Task AfterConfigure(ConfigurationRequestType configurationRequestType, Exception ex)
        {
            return(Task.FromResult(0));
        }