private RestorePlanDetailInfo Create(
            string optionKey,
            IRestoreDatabaseTaskDataObject restoreDataObject,
            OptionBuilder optionBuilder)
        {
            object currnetValue = optionBuilder.CurrentValueFunction(restoreDataObject);
            object defaultValue = optionBuilder.DefaultValueFunction(restoreDataObject);
            OptionValidationResult validationResult = optionBuilder.ValidateFunction(restoreDataObject, currnetValue, defaultValue);

            return(new RestorePlanDetailInfo
            {
                Name = optionKey,
                CurrentValue = currnetValue,
                DefaultValue = defaultValue,
                IsReadOnly = validationResult.IsReadOnly,
                IsVisiable = validationResult.IsVisible,
                ErrorMessage = validationResult.ErrorMessage
            });
        }
 private void Register(string optionKey, OptionBuilder optionBuilder)
 {
     optionBuilders.Add(optionKey, optionBuilder);
 }