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