private static void InheritViewModelSettingDefaults
     (ViewModelSettingDefaults target, ViewModelSettingDefaults parent)
 {
     target.typePrefix = target.typePrefix ?? parent.typePrefix;
     target.typeSuffix = target.typeSuffix ?? parent.typeSuffix;
     InheritViewModelSettingsBase(target, parent);
 }
        private static void EstablishGlobalViewModelDefaults(RenderSettings settings)
        {
            var vm          = settings.globalDefaults.viewModel;
            var sysDefaults = new ViewModelSettingDefaults
            {
                access = "public",
                emitEntityPropertiesAsViewModels = false,
                inheritUsings = true,
                emitCollectionsAsObservable = false,
                emitAllProperties           = true,
                partialClass      = true,
                stubForCustomCode = true,
                typePrefix        = string.Empty,
                typeSuffix        = "VM",
                usings            = new HashSet <string>()
            };

            // any default not explicitly set is overriden with system default setting
            InheritViewModelSettingDefaults(vm, sysDefaults);
        }