Skip to content

Commit

Permalink
Createing config now works
Browse files Browse the repository at this point in the history
  • Loading branch information
MrHinsh committed Aug 27, 2024
1 parent 3c35a13 commit 9ff4c40
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 21 deletions.
12 changes: 6 additions & 6 deletions docs/Reference/Generated/MigrationTools.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions src/MigrationTools.Host/Commands/InitMigrationCommand.cs
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@ private JObject AddEndpointOptionToConfig(IConfigurationRoot configuration, JObj
{
//instanceOfOption.ConfigurationSectionPath = $"MigrationTools:Endpoints:{key}";
var hardPath = $"MigrationTools:Endpoints:{key}";
configJson = Options.OptionsManager.AddOptionsToConfiguration(configJson, instanceOfOption, hardPath, true, false);
configJson = Options.OptionsManager.AddOptionsToConfiguration(configJson, instanceOfOption, hardPath, false, true);
_logger.LogInformation("Adding Option: {item}", endpointType.Name);
}
catch (Exception)
Expand All @@ -180,7 +180,7 @@ private JObject AddOptionToConfig(IConfigurationRoot configuration, JObject conf
section.Bind(instanceOfOption);
try
{
configJson = Options.OptionsManager.AddOptionsToConfiguration(configJson, instanceOfOption, false, isCollection);
configJson = Options.OptionsManager.AddOptionsToConfiguration(configJson, instanceOfOption, isCollection, false);
_logger.LogInformation("Adding Option: {item}", item.Name);
}
catch (Exception)
Expand Down
35 changes: 22 additions & 13 deletions src/MigrationTools/Options/OptionsManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -54,15 +54,15 @@ public static string CreateNewConfigurationJson(IOptions iOption, bool isCollect
return result;
}

public static JObject AddOptionsToConfiguration(JObject configJson, IOptions iOption, bool shouldAddObjectName = false, bool isCollection = false)
public static JObject AddOptionsToConfiguration(JObject configJson, IOptions iOption, bool isCollection = false, bool shouldAddObjectName = false)
{
//JObject configJson, TOptions options, string path, string objectName, string optionFor, bool isCollection = false, bool shouldAddObjectName = false
string path = isCollection ? iOption.ConfigurationCollectionPath : iOption.ConfigurationSectionPath;

return AddOptionsToConfiguration(configJson, iOption, path, shouldAddObjectName, isCollection);
return AddOptionsToConfiguration(configJson, iOption, path, isCollection,shouldAddObjectName);
}

public static JObject AddOptionsToConfiguration(JObject configJson, IOptions iOption, string sectionPath, bool shouldAddObjectName = false, bool isCollection = false)
public static JObject AddOptionsToConfiguration(JObject configJson, IOptions iOption, string sectionPath, bool isCollection = false, bool shouldAddObjectName = false)
{
Type optionsManagerType = typeof(OptionsManager<>).MakeGenericType(iOption.GetType());

Expand All @@ -73,7 +73,7 @@ public static JObject AddOptionsToConfiguration(JObject configJson, IOptions iOp
MethodInfo createMethod = optionsManagerType.GetMethod("AddOptionsToConfiguration");

// Prepare parameters for the method
object[] parameters = { configJson, iOption, sectionPath, iOption.ConfigurationObjectName, iOption.ConfigurationOptionFor, shouldAddObjectName, isCollection };
object[] parameters = { configJson, iOption, sectionPath, iOption.ConfigurationObjectName, iOption.ConfigurationOptionFor, isCollection, shouldAddObjectName };

// Invoke the method dynamically
JObject result = (JObject)createMethod.Invoke(optionsManagerInstance, parameters);
Expand Down Expand Up @@ -241,13 +241,13 @@ public string CreateNewConfigurationJson(TOptions options, string path, string o

// New method that updates the configuration
public JObject AddOptionsToConfiguration(
JObject configJson,
TOptions options,
string path,
string objectName,
string optionFor,
bool isCollection = false,
bool shouldAddObjectName = false)
JObject configJson,
TOptions options,
string path,
string objectName,
string optionFor,
bool isCollection = false,
bool shouldAddObjectName = false)
{
// Initialize the JObject if it was null
if (configJson == null)
Expand Down Expand Up @@ -288,13 +288,20 @@ public JObject AddOptionsToConfiguration(
else
{
// We're at the last part of the path, so add the options object here
var optionsObject = JObject.FromObject(options);
var optionsObject = new JObject();

// Add the object name and options
if (shouldAddObjectName)
{
optionsObject.AddFirst(new JProperty(objectName, optionFor));
optionsObject[objectName] = optionFor;
}

// Add the other properties from the options object
optionsObject.Merge(JObject.FromObject(options), new JsonMergeSettings
{
MergeArrayHandling = MergeArrayHandling.Concat
});

// Replace or add the object in the current section
currentSection[pathParts[i]] = optionsObject;
}
Expand All @@ -317,6 +324,8 @@ public JObject AddOptionsToConfiguration(





private OptionsConfiguration GetOptionsConfiguration()
{
TOptions options = new TOptions();
Expand Down

0 comments on commit 9ff4c40

Please sign in to comment.