using ReCodeIt.Utils; namespace ReCodeIt.Models; /// <summary> /// All settings container /// </summary> public class Settings { private AppSettings _appSettings; public AppSettings AppSettings { get { return _appSettings; } set { _appSettings = value; Save(); } } private RemapperSettings _remapper; public RemapperSettings Remapper { get { return _remapper; } set { _remapper = value; Save(); } } private AutoMapperSettings _autoMapper; public AutoMapperSettings AutoMapper { get { return _autoMapper; } set { _autoMapper = value; Save(); } } private void Save() { DataProvider.SaveAppSettings(); } } /// <summary> /// These are settings for the application /// </summary> public class AppSettings { private bool _debug; public bool Debug { get { return _debug; } set { _debug = value; Save(); } } private bool _silentMode; public bool SilentMode { get { return _silentMode; } set { _silentMode = value; Save(); } } private void Save() { DataProvider.SaveAppSettings(); } } /// <summary> /// These are settings for the manual remapper /// </summary> public class RemapperSettings { private string _assemblyPath; /// <summary> /// Path to the assembly we want to remap /// </summary> public string AssemblyPath { get { return _assemblyPath; } set { _assemblyPath = value; Save(); } } private string _outputPath; /// <summary> /// Path including the filename and extension we want to write the changes to /// </summary> public string OutputPath { get { return _outputPath; } set { _outputPath = value; Save(); } } private string _mappingPath; /// <summary> /// Path to the mapping file /// </summary> public string MappingPath { get { return _mappingPath; } set { _mappingPath = value; Save(); } } private bool _useProjectMappings; /// <summary> /// Use the projects mappings instead of a standalone file /// </summary> public bool UseProjectMappings { get { return _useProjectMappings; } set { _useProjectMappings = value; Save(); } } private MappingSettings _mappingSettings; public MappingSettings MappingSettings { get { return _mappingSettings; } set { _mappingSettings = value; Save(); } } private void Save() { DataProvider.SaveAppSettings(); } } /// <summary> /// These are settings for the auto mapping /// </summary> public class AutoMapperSettings { private string _assemblyPath; /// <summary> /// Path to the assembly we want to remap /// </summary> public string AssemblyPath { get { return _assemblyPath; } set { _assemblyPath = value; Save(); } } private string _outputPath; /// <summary> /// Path including the filename and extension we want to write the changes to /// </summary> public string OutputPath { get { return _outputPath; } set { _outputPath = value; Save(); } } private int _requiredMatches; /// <summary> /// Minimum number of times a member must have this name in the assembly before considering it /// for remapping /// </summary> public int RequiredMatches { get { return _requiredMatches; } set { _requiredMatches = value; Save(); } } private int _minLengthToMatch; /// <summary> /// Minimum length of the field/property name in code before it will be considered for a rename /// </summary> public int MinLengthToMatch { get { return _minLengthToMatch; } set { _minLengthToMatch = value; Save(); } } private bool _searchMethods; /// <summary> /// Will attempt to map types from method meta data and parameters /// </summary> public bool SearchMethods { get { return _searchMethods; } set { _searchMethods = value; Save(); } } private MappingSettings _mappingSettings; public MappingSettings MappingSettings { get { return _mappingSettings; } set { _mappingSettings = value; Save(); } } private List<string> _typesToIgnore; /// <summary> /// Any member name you want to ignore while iterating through the assembly /// </summary> public List<string> TypesToIgnore { get { return _typesToIgnore; } set { _typesToIgnore = value; Save(); } } private List<string> _tokensToMatch; /// <summary> /// The auto mapper will look for these tokens in class names and prioritize those /// </summary> public List<string> TokensToMatch { get { return _tokensToMatch; } set { _tokensToMatch = value; Save(); } } private List<string> _propertyFieldBlacklist; /// <summary> /// Property or fields names to ignore in the automap, these are case sanitized so case does not matter /// </summary> public List<string> PropertyFieldBlackList { get { return _propertyFieldBlacklist; } set { _propertyFieldBlacklist = value; Save(); } } private List<string> _methodParamaterBlackList; /// <summary> /// method parameter names to ignore in the automap, these are case sanitized so case does not matter /// </summary> public List<string> MethodParamaterBlackList { get { return _methodParamaterBlackList; } set { _methodParamaterBlackList = value; Save(); } } private void Save() { DataProvider.SaveAppSettings(); } } /// <summary> /// These are settings that all versions of the remappers use /// </summary> public class MappingSettings { private bool _renameFields; /// <summary> /// Names of fields of the matched type will be renamed to the type name with approproiate convention /// </summary> public bool RenameFields { get { return _renameFields; } set { _renameFields = value; Save(); } } private bool _renameProps; /// <summary> /// Names of properties of the matched type will be renamed to the type name with approproiate convention /// </summary> public bool RenameProperties { get { return _renameProps; } set { _renameProps = value; Save(); } } private bool _publicize; /// <summary> /// Publicize all types, methods, and properties : NOTE: Not run until after the remap has completed /// </summary> public bool Publicize { get { return _publicize; } set { _publicize = value; Save(); } } private bool _unseal; /// <summary> /// Unseal all types : NOTE: Not run until after the remap has completed /// </summary> public bool Unseal { get { return _unseal; } set { _unseal = value; Save(); } } private void Save() { DataProvider.SaveAppSettings(); } }