Example #1
0
        private void ModemHandleElapsed(object sender, ElapsedEventArgs e, GsmModem modem)
        {
            int sync = Interlocked.CompareExchange(ref modem.processing, 1, 0);
            if (sync == 0)
            {
                SetChekedMessages(modem);
                ShortMessageCollection messages = modem.ReadSMS();
                if (messages != null && messages.Count > 0)
                    messages.Concat(notProcessingSMS[modem.ServicePhone.PhoneNumber]);
                else messages = notProcessingSMS[modem.ServicePhone.PhoneNumber];

                if (messages != null)
                {
                    if (messages.Count > 0)
                    {
                        messages = ProcessingNewIncomeSMSMessages(messages, modem);
                        foreach (ShortMessage message in messages)
                            message.IsRead = false;
                        notProcessingSMS[modem.ServicePhone.PhoneNumber] = messages;
                    }
                    ProcessingCheckedMessages(modem);
                    ProcessingNewIncomeClientWebMessages(modem);
                    ProcessingNotSentIncomeClientEmail(modem);
                    messages.Clear();
                    modem.processing = 0;
                }
            }
        }