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