private void doDeleteConfig()
 {
     VoiceEndpoints.Remove(SelectedVoiceEndpoint);
     SaveEndpointsFile();
     SelectedVoiceEndpoint = null;
     LoadEndpointsFile();
 }
        private void doNewConfigSave()
        {
            if (string.IsNullOrWhiteSpace(SelectedVoiceEndpoint.Endpoint) ||
                string.IsNullOrWhiteSpace(SelectedVoiceEndpoint.Name) ||
                string.IsNullOrWhiteSpace(SelectedVoiceEndpoint.Region) ||
                string.IsNullOrWhiteSpace(SelectedVoiceEndpoint.Key))
            {
                MessageBox.Show("Please make sure all the endpoint fields are completed");
                return;
            }

            var currentValues = SelectedVoiceEndpoint;

            LoadEndpointsFile();                   // reset before changes
            VoiceEndpoints.Add(currentValues);     // add back in
            SaveEndpointsFile();
            SelectedVoiceEndpoint = currentValues; // select again
        }
        public void SaveEndpointsFile()
        {
            if (!Directory.Exists(settingsVM.ProjectsFolder))
            {
                Directory.CreateDirectory(settingsVM.ProjectsFolder);
            }

            try
            {
                DataContractSerializer ser = new DataContractSerializer(typeof(List <SpeechEndpointConfig>));
                var xmlSettings            = new XmlWriterSettings {
                    Indent = true, IndentChars = "\t"
                };
                using (var writer = XmlWriter.Create(settingsVM.VoiceEndpointsFile, xmlSettings))
                {
                    ser.WriteObject(writer, VoiceEndpoints.ToList());
                }
            }
            catch (Exception exc)
            {
                var msg = $"Error serialising or saving the projects file: {exc}";
                MessageBox.Show(msg);
            }
        }