public PutSettingResponse PutSetting()

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());
        }