Example #1
0
        /// <summary>
        /// Traite les accusés de réception des messages non accusés
        /// </summary>
        public void getDeliveryReport()
        {
            //on selectionne les messages dont la reception de l'accuse reception est a verifier
            try
            {
                MessageEnvoi[] lesSMSAVerifier = (from msg in dbContext.MessageEnvoi
                                                  where msg.Statut.libelleStatut == "Envoye" &&
                                                  msg.Message.accuseReception == 1
                                                  select msg).ToArray();
                String[][] accuses = null;

                if (lesSMSAVerifier.Count() > 0)
                {
                    //connexion modem
                    modem.connectToModem();

                    //on recupere les accuses du modem

                    /**
                     * Retourne un tableau avec les informations de l'accuse reception
                     * pour le message i
                     * [i]0 - Reference
                     * [i]1 - Destinataire
                     * [i]2 - Date d'envoi SMS
                     * [i]3 - Date Reception
                     * [i]4 - Heure de reception
                     * */
                    accuses = modem.readDeliveryReport();
                }

                //pour chaque message
                foreach (MessageEnvoi sms in lesSMSAVerifier)
                {
                    //Console.WriteLine("=== Verif SMS ===");
                    //si on a recu l'accuse
                    if (verifierAccusePresentDansModem(sms, accuses))
                    {
                        //Console.WriteLine("===  SMS  OK  ===");
                        //on change le statut
                        sms.Statut = (from stat in dbContext.Statut where stat.libelleStatut == "Accuse" select stat).First();
                        sms.accuseReceptionRecu = 1;
                    }
                }

                //on submit les changement
                dbContext.SubmitChanges();

                if (lesSMSAVerifier.Count() > 0)
                {
                    modem.disconnectToModem();
                }
            }
            catch (SqlException sqle)
            {
                Console.WriteLine(sqle.Message);
                modem.disconnectToModem();
                Thread.Sleep(2000);
                getDeliveryReport();
            }
        }
Example #2
0
        /// <summary>
        /// Point d'entrée principal de l'application.
        /// </summary>
        static void Main(string[] args)
        {
            //si mode debug on passe un argument a l'application
#if DEBUG
            args = new string[1] {
                "/cons"
            };
#endif
            if (args.Length > 0) //si un argument est passé à l'application
            {
                //on lance l'application en mode console
                ServiceManager serverSync = new ServiceManager();
                serverSync.Start();


                //boucle qui permet de passer des commandes a l'application pendant l'execution
                #region Attend une saisie de la commande 'quit' pour sortir
                string quit = string.Empty;
                Console.Title = "Service SMS";

                while (string.IsNullOrEmpty(quit) || !quit.Equals("quit"))
                {
                    Console.WriteLine("///////////////////////////////");
                    Console.WriteLine("taper la commande 'quit' pour quitter l'application\r\n");
                    quit = Console.ReadLine();
                    switch (quit.ToLower())
                    {
                    case "clr":
                    case "clear":
                        Console.Clear();
                        break;

                    case "test":

                        modemSMS modSMS = new modemSMS("COM11");
                        modSMS.connectToModem();
                        //modSMS.sendTramePDU("0001000b913376650111F800f6002930000000000066010b000001001b04343731314e85b65950683b590831323334353637380000126701");
                        modSMS.sendTramePDU("0021000A816057161081000015F4F29C0E0A8FC7F57919242F8FCB707AFAED06");
                        modSMS.readDeliveryReport();
                        modSMS.disconnectToModem();
                        break;

                    case "read":
                        modemSMS modSMSRead = new modemSMS("COM11");
                        modSMSRead.connectToModem();
                        modSMSRead.readPDUMessage();
                        modSMSRead.disconnectToModem();
                        break;


                    case "test vp":
                        modemSMS modSMSVP = new modemSMS("COM11");

                        TimeSpan tim = new TimeSpan(1, 0, 0, 0);

                        int intValue = modSMSVP.calculValidityPeriod(tim);
                        Console.WriteLine("INT VALUE : " + intValue);

                        TimeSpan tim2 = modSMSVP.decoderValidityPeriod(intValue);

                        Console.WriteLine("Redecodage : " + tim2.Days + ", " + tim2.Hours + ", " + tim2.Minutes);

                        break;
                    }
                    Console.WriteLine(string.Empty);
                }
                #endregion

                serverSync.Stop();
                serverSync.Dispose();
            }
            else //on lance l'application en tant que service windows
            {
                //on instancie le service
                ServiceBase[] ServicesToRun;
                ServicesToRun = new ServiceBase[]
                {
                    new ServiceSMS()
                };

                //on lance le service
                ServiceBase.Run(ServicesToRun);
            }
        }
Example #3
0
        /// <summary>
        /// Point d'entrée principal de l'application.
        /// </summary>
        static void Main(string[] args)
        {
            //si mode debug on passe un argument a l'application
            #if DEBUG
            args = new string[1] { "/cons" };
            #endif
            if (args.Length > 0) //si un argument est passé à l'application
            {
                //on lance l'application en mode console
                ServiceManager serverSync = new ServiceManager();
                serverSync.Start();

                //boucle qui permet de passer des commandes a l'application pendant l'execution
                #region Attend une saisie de la commande 'quit' pour sortir
                string quit = string.Empty;
                Console.Title = "Service SMS";

                while (string.IsNullOrEmpty(quit) || !quit.Equals("quit"))
                {
                    Console.WriteLine("///////////////////////////////");
                    Console.WriteLine("taper la commande 'quit' pour quitter l'application\r\n");
                    quit = Console.ReadLine();
                    switch (quit.ToLower())
                    {
                        case "clr":
                        case "clear":
                            Console.Clear();
                            break;

                        case "test":

                            modemSMS modSMS = new modemSMS("COM11");
                            modSMS.connectToModem();
                            //modSMS.sendTramePDU("0001000b913376650111F800f6002930000000000066010b000001001b04343731314e85b65950683b590831323334353637380000126701");
                            modSMS.sendTramePDU("0021000A816057161081000015F4F29C0E0A8FC7F57919242F8FCB707AFAED06");
                            modSMS.readDeliveryReport();
                            modSMS.disconnectToModem();
                            break;

                        case "read":
                            modemSMS modSMSRead = new modemSMS("COM11");
                            modSMSRead.connectToModem();
                            modSMSRead.readPDUMessage();
                            modSMSRead.disconnectToModem();
                            break;

                        case "test vp":
                            modemSMS modSMSVP = new modemSMS("COM11");

                            TimeSpan tim = new TimeSpan(1, 0, 0, 0);

                            int intValue = modSMSVP.calculValidityPeriod(tim);
                            Console.WriteLine("INT VALUE : " + intValue);

                            TimeSpan tim2 = modSMSVP.decoderValidityPeriod(intValue);

                            Console.WriteLine("Redecodage : " + tim2.Days + ", " + tim2.Hours + ", " + tim2.Minutes);

                            break;
                    }
                    Console.WriteLine(string.Empty);
                }
                #endregion

                serverSync.Stop();
                serverSync.Dispose();
            }
            else //on lance l'application en tant que service windows
            {
                //on instancie le service
                ServiceBase[] ServicesToRun;
                ServicesToRun = new ServiceBase[]
                {
                            new ServiceSMS()
                };

                //on lance le service
                ServiceBase.Run(ServicesToRun);
            }
        }