private void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
        {
            CErreurAppli erreur       = new CErreurAppli();
            String       sTitreErreur = "";

            CreateFichierTrace();
            try
            {
                if (bServiceSendInProcess == false)
                {
                    //if (InitService()) return;
                    EnvoieSms();
                }
            }
            catch (Exception ex)
            {
                erreur.Set(eCodeErreur.ERROR, ex.Message);
                //Ecrire erreur dans table ou fichier
                sTitreErreur = String.Format("{0} {1}", cstTitreErreurEnvoie, DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss"));
                Utilitaire.WritePrivateProfileString(sTitreErreur, "ErreurServiceSmsGalatee", ex.Message, m_PathSuiviServiceSms);
                return;
            }
        }
        private void EnvoieSms()
        {
            bServiceSendInProcess = true;
            timer.Interval        = 60 * 60 * 1000;
            String sTitreErreur   = "";
            String sMessageErreur = "";

            CErreurAppli erreur = new CErreurAppli();

            CreateFichierTrace();
            try
            {
                var ListSmsToSend = DBEservice.GetSmsByStatutEnvoiNombreEnvoi((int)StatutEnvoiSms.NonEnvoye, ModemSettings.Settings.Option.iNbreTraitementSms);
                //Recuperer les SMS à envoyer
                if (ListSmsToSend != null && ListSmsToSend.Count > 0)
                {
                    String sRetourSend;
                    foreach (CsSms mSms in ListSmsToSend)
                    {
                        sRetourSend = "";
                        if (string.IsNullOrEmpty(mSms.DESTINATEUR))
                        {
                            sTitreErreur = String.Format("{0} {1}", cstTitreErreurEnvoie,
                                                         DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss"));
                            sMessageErreur = String.Format("Echec d'envoie du SMS Num:{0}", mSms.SMSID) + " Numéro de téléphone, Messsage inexistant";
                            Utilitaire.WritePrivateProfileString(sTitreErreur, "ErreurServiceSmsGalatee", sMessageErreur,
                                                                 m_PathSuiviServiceSms);
                            continue;
                        }
                        if (string.IsNullOrEmpty(mSms.DESTINATEUR))
                        {
                            sTitreErreur = String.Format("{0} {1}", cstTitreErreurEnvoie,
                                                         DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss"));
                            sMessageErreur = String.Format("Echec d'envoie du SMS Num:{0}", mSms.SMSID) + " Numéro de téléphone inexistant";
                            Utilitaire.WritePrivateProfileString(sTitreErreur, "ErreurServiceSms", sMessageErreur,
                                                                 m_PathSuiviServiceSms);
                            continue;
                        }
                        if (string.IsNullOrEmpty(mSms.MESSAGE))
                        {
                            sTitreErreur = String.Format("{0} {1}", cstTitreErreurEnvoie,
                                                         DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss"));
                            sMessageErreur = String.Format("Echec d'envoie du SMS Num:{0}", mSms.SMSID) + " Messsage inexistant";
                            Utilitaire.WritePrivateProfileString(sTitreErreur, "ErreurServiceSmsGalatee", sMessageErreur,
                                                                 m_PathSuiviServiceSms);
                            continue;
                        }
                        if (mSms.MESSAGE.Length > Utilitaire.iNombreMaxSms) // Nombre maximum de caractère dans un SMS normal Ajouter le 12/02/2013 par ATO
                        {
                            erreur.Set(eCodeErreur.ECHEC_ENVOIE_SMS_MESSAGE_TROP_LONG);
                            continue;
                        }
                        if (!mcSendReadSms.EnvoieReceptionSynchrone(ref erreur, false, mSms.DESTINATEUR, mSms.MESSAGE, out sRetourSend))
                        {
                            //Ecrire erreur dans table ou fichier
                            sTitreErreur = String.Format("{0} {1}", cstTitreErreurEnvoie,
                                                         DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss"));
                            sMessageErreur = String.Format("Echec d'envoie du SMS Num:{0}", mSms.SMSID + " " + sRetourSend);
                            Utilitaire.WritePrivateProfileString(sTitreErreur, "ErreurServiceSmsGalatee", sMessageErreur, m_PathSuiviServiceSms);

                            mSms.STATUTENVOI = (int)StatutEnvoiSms.NonEnvoye;
                            mSms.NOMBREENVOI = mSms.NOMBREENVOI == null ? 0 : 1;
                            if (!DBEservice.Update(mSms))
                            {
                                //Ecrire erreur dans table ou fichier
                                sMessageErreur = String.Format("Message Numéro {0} non enregistré. \nCause: {1} ",
                                                               mSms.SMSID, erreur.MessageErreur);

                                sTitreErreur = String.Format("{0} {1}", cstTitreErreurEnvoie,
                                                             DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss"));
                                Utilitaire.WritePrivateProfileString(sTitreErreur, "ErreurServiceSmsGalatee", sMessageErreur,
                                                                     m_PathSuiviServiceSms);
                            }
                            continue;
                        }
                        else
                        {
                            mSms.STATUTENVOI  = (int)StatutEnvoiSms.Envoye;
                            mSms.NOMBREENVOI  = mSms.NOMBREENVOI == null ? 0 : 1;
                            mSms.DATEEMISSION = DateTime.Now;
                            if (!DBEservice.Update(mSms))
                            {
                                //Ecrire erreur dans table ou fichier
                                sMessageErreur = String.Format("Message Numéro {0} non enregistré. \nCause: {1} ",
                                                               mSms.SMSID, erreur.MessageErreur);

                                sTitreErreur = String.Format("{0} {1}", cstTitreErreurEnvoie,
                                                             DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss"));
                                Utilitaire.WritePrivateProfileString(sTitreErreur, "ErreurServiceSmsGalatee", sMessageErreur,
                                                                     m_PathSuiviServiceSms);
                            }
                            continue;
                        }
                    }
                }
                return;
            }
            catch (Exception ex)
            {
                erreur.Set(eCodeErreur.ERROR, ex.Message);
                //Ecrire erreur dans table ou fichier
                sTitreErreur = String.Format("{0} {1}", cstTitreErreurEnvoie,
                                             DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss"));
                Utilitaire.WritePrivateProfileString(sTitreErreur, "ErreurServiceSmsGalatee", ex.Message, m_PathSuiviServiceSms);

                return;
            }
            finally
            {
                bServiceSendInProcess = false;
                timer.Interval        = 1000;
            }
        }