public void Save(ClientSettings clientSettings)
        {
            try
            {
                using (StreamWriter sw = new StreamWriter(mPath + mFileName))
                {
                    XmlSerializer ser = new XmlSerializer(typeof(ClientSettings));
                    ser.Serialize(sw, clientSettings);
                    sw.Close();
                }
            }
            catch (Exception)
            {
#if (DEBUG)
                throw;
#endif
            }
        }
        public SettingsWindow(String path)
        {
            InitializeComponent();

            LocalizeComponent();
            BrandComponent();

            //TO DO: Open configuration
            mClientSettingsSerializer = new ClientSettingsSerializer(path);
            mClientSettings = mClientSettingsSerializer.Load();



            //Basic
            checkBoxConfirmClosing.Checked = mClientSettings.ProgramConfirmClosing;
            checkBoxEnableQA.Checked = mClientSettings.ProgramEnableQualityAgent;
            checkBoxStartup.Checked = mClientSettings.ProgramAtStartup;

            checkBoxContactsServer.Checked = mClientSettings.ContactsEnableServerStore;
            checkBoxContactsOutlook.Checked = mClientSettings.ContactsEnableOutlookStore;
            checkBoxContactsLocal.Checked = true; //Always available

            //Language
            String cultureInfo = Thread.CurrentThread.CurrentUICulture.Name;

            if (cultureInfo == "es-ES")
            {
                radioButtonEspanol.Checked = true;
            }
            else if (cultureInfo == "de-DE")
            {
                radioButtonDeutsch.Checked = true;
            }
            else if (cultureInfo == "it-CH")
            {
                radioButtonItalian.Checked = true;
            }
            else //    if (cultureInfo == "en-US")
            {
                radioButtonEnglish.Checked = true;
            }

                




            //Phone
            checkBoxEnableSipDiagnosticLogging.Checked = mClientSettings.PhoneEnableSIPDiagnostic;
            trackBarMicrophone.Value = mClientSettings.PhoneAudioMicrophoneVolume;
            trackBarSpeaker.Value = mClientSettings.PhoneAudioSpeakerVolume;

            listBoxAvailableCodecs.Items.Clear();
            listBoxEnabledCodecs.Items.Clear();

            foreach (AudioCodec audioCodec in mClientSettings.PhoneAvailableMediaFormats)
            {
                if (!listBoxAvailableCodecs.Items.Contains(audioCodec)) listBoxAvailableCodecs.Items.Add(audioCodec);
            }

            foreach (AudioCodec audioCodec in mClientSettings.PhoneEnabledMediaFormats)
            {
                if (!listBoxEnabledCodecs.Items.Contains(audioCodec)) listBoxEnabledCodecs.Items.Add(audioCodec);
            }

            radioButtonRingToneCustom.Checked = !mClientSettings.PhoneDefaultRingToneEnabled;
            radioButtonRingToneDefault.Checked = mClientSettings.PhoneDefaultRingToneEnabled;


            if (File.Exists(mClientSettings.PhoneCustomRingTone))
            {
                FileInfo fileInfo = new FileInfo(mClientSettings.PhoneCustomRingTone);
                if (fileInfo.Extension.ToLower() == ".mp3")
                {
                    textBoxRingTonePath.Text = mClientSettings.PhoneCustomRingTone;
                }
            }

        }
        //Public Methods
        public ClientSettings Load()
        {
            ClientSettings clientSettings = new ClientSettings();
            try
            {
                using (StreamReader sr = new StreamReader(mPath + mFileName))
                {
                    if (File.Exists(mPath + mFileName))
                    {
                        XmlSerializer des = new XmlSerializer(typeof(ClientSettings));
                        clientSettings = (ClientSettings)des.Deserialize(new System.Xml.XmlTextReader(sr));
                        sr.Close();
                    }
                }
            }
            catch (Exception)
            {
                if (File.Exists(mPath + mFileName))
                {

#if (DEBUG)
                    throw;
#else
                    File.Delete(mPath + mFileName);
#endif

                }
            }
            if (clientSettings.PhoneEnabledMediaFormats == null || clientSettings.PhoneEnabledMediaFormats.Count == 0)
            {
                clientSettings.PhoneEnabledMediaFormats = new List<AudioCodec>();
                clientSettings.PhoneEnabledMediaFormats.Add(new AudioCodec(AudioCodec.AudioCodecFormat.G729, "G729"));
                clientSettings.PhoneEnabledMediaFormats.Add(new AudioCodec(AudioCodec.AudioCodecFormat.iLBC_30Ms, "iLBC 30Ms"));
                clientSettings.PhoneEnabledMediaFormats.Add(new AudioCodec(AudioCodec.AudioCodecFormat.uLaw_8k, "uLaw 8k"));
                clientSettings.PhoneEnabledMediaFormats.Add(new AudioCodec(AudioCodec.AudioCodecFormat.aLaw_8k, "aLaw 8k"));
            }

            

            return clientSettings;
         
        }