in Runtime/Core/SettingsManagement/SettingsStore.cs [28:70]
public PutSettingResponse PutSetting(PutSettingRequest request)
{
if (string.IsNullOrEmpty(request.Key) || string.IsNullOrEmpty(request.Value))
{
return Response.Fail(new PutSettingResponse()
{
ErrorCode = ErrorCode.InvalidParameters
});
}
if (!_fileWrapper.FileExists(_settingsFilePath))
{
InitSettingsFile();
}
var input = new StringReader(_fileWrapper.ReadAllText(_settingsFilePath));
_yamlStreamWrapper.Load(input);
YamlMappingNode rootMappingNode = (_yamlStreamWrapper.GetDocuments().Count > 0) ? (YamlMappingNode)_yamlStreamWrapper.GetDocuments()[0].RootNode : default;
if (rootMappingNode == null)
{
return Response.Fail(new PutSettingResponse()
{
ErrorCode = ErrorCode.InvalidSettingsFile
});
}
if (rootMappingNode.Children.ContainsKey(request.Key))
{
rootMappingNode.Children.Remove(request.Key);
}
rootMappingNode.Add(request.Key, request.Value);
using (TextWriter writer = _fileWrapper.CreateText(_settingsFilePath))
{
_yamlStreamWrapper.Save(writer, false);
}
return Response.Ok(new PutSettingResponse());
}