Example #1
0
 static void ProccessMessagesAsync()
 {
     if (taskProccesSMSNotices == null || taskProccesSMSNotices.Status == TaskStatus.Running)
     {
         taskProccesSMSNotices = new Task(() =>
         {
             cancellationTokenProccessSMSNotices = false;
             while (true)
             {
                 if (!SMSNotices.IsEmpty)
                 {
                     foreach (Modem gsmModem in Modems.Where(s => s.IsFree).ToList())
                     {
                         SMSNotice smsNotice;
                         if (SMSNotices.TryDequeue(out smsNotice))
                         {
                             gsmModem.SendMessage(smsNotice);
                         }
                     }
                     Thread.Sleep(1000);
                 }
                 if (cancellationTokenProccessSMSNotices)
                 {
                     break;
                 }
             }
         });
         taskProccesSMSNotices.Start();
     }
 }
Example #2
0
        static void Init()
        {
            //init config
            SendMessageConfig.Init();
            var modems   = AutoMapper.Mapper.Map <IEnumerable <ModemElement>, List <Modem> >(SendMessageConfig.Settings.Modems.Cast <ModemElement>());
            var contacts = AutoMapper.Mapper.Map <IEnumerable <ContactElement>, List <Contact> >(SendMessageConfig.Settings.Contacts.Cast <ContactElement>());

            foreach (Modem modem in modems)
            {
                //add event handler
                modem.OnEvent += OnEvent;
                Modems.Add(modem);
            }
            //add mailboxes
            foreach (Contact contact in contacts)
            {
                Contacts.Add(contact);
            }
        }