Exemple #1
0
        public void ProcessingNewIncomeClientWebMessages(GsmModem modem)
        {
            List<IncomeClientWeb> webMessages;

            using (SMSContext context = new SMSContext())
            {
                webMessages = context.IncomeClientWeb.Where(x => x.Client.ClientPhone.Select(y => y.ServicePhone.ServicePhoneId).Contains(modem.ServicePhone.ServicePhoneId) && x.IsSent != true && x.Client.IsBlocked != true).ToList();

            }

            foreach (IncomeClientWeb incomeClientWeb in webMessages)
            {
                IncomeSMS incomeSMS;

                using (SMSContext context = new SMSContext())
                {
                    incomeSMS = context.IncomeSMS.FirstOrDefault(x => x.MessageId == incomeClientWeb.MessageId);

                    if (incomeSMS != null)
                    {
                        if (incomeSMS.MessageType == IncomeSMS.Type.Email)
                        {
                            if (!String.IsNullOrEmpty(incomeSMS.SenderAddress))
                                emailBox.SendEmail(incomeClientWeb.Text, "Re:" + incomeSMS.ShortKey, incomeSMS.SenderAddress, SendIncomeClientWebAnswerSetResult, incomeClientWeb);

                        }
                        else
                            if (!String.IsNullOrEmpty(incomeSMS.SenderNumber))
                                if (modem.SendSMS(incomeSMS.SenderNumber, incomeClientWeb.Text))
                                    SaveIncomeClientWebSendResult(incomeClientWeb, context);
                    }
                }
            }
        }
Exemple #2
0
 public void ProcessingNotSentIncomeClientEmail(GsmModem modem)
 {
     using (SMSContext context = new SMSContext())
     {
         List<IncomeClientEmail> messages = GetNotSendIncomeClientEmail(modem, context);
         foreach (IncomeClientEmail message in messages)
         {
             if (message.Client != null && ClientIsNotBlocked(message.Client))
             {
                 IncomeSMS incomeSMS = GetIncomeSMS(message.SecretKey, message.Client.ClientId, context);
                 if (incomeSMS != null)
                 {
                     message.IsSent = modem.SendSMS(incomeSMS.SenderNumber, message.Text);
                     SaveIncomeClientEmail(message, context);
                 }
             }
         }
     }
 }
Exemple #3
0
        public void ProcessingCheckedMessages(GsmModem modem)
        {
            IncomeSMSSaveMutex.WaitOne();
            try
            {
                using (SMSContext context = new SMSContext())
                {
                    IList<IncomeSMS> IncomeSmsList = GetNotSendIncomeSMS(modem, context);

                    foreach (IncomeSMS incomeSMS in IncomeSmsList)
                    {
                        bool SMSresult = false;
                        if (incomeSMS.Client != null && incomeSMS.SMSIsSend != true)
                        {
                            SMSresult = modem.SendSMS(incomeSMS.Client.PhoneNumber, incomeSMS.SecretKey + " " + incomeSMS.Text);
                            incomeSMS.SMSIsSend = SMSresult;
                        }
                        else
                        {
                            incomeSMS.SMSIsSend = true;
                        }

                        if (incomeSMS.EmailIsSend != true) emailBox.SendEmail(incomeSMS.Text, "Сообщение №" + incomeSMS.SecretKey, incomeSMS.Client.Email, SendEmailSetResult, incomeSMS);

                        if (SMSresult && incomeSMS.EmailIsSend == true)

                            ChangeIncomeSMSStatus(incomeSMS, IncomeSMS.IncomeSMSStatus.Sent, context);
                        else
                            ChangeIncomeSMS(incomeSMS, context);
                    }

                    List<IncomeClientSMS> IncomeClientSmsList = GetIncomeSMSClient(modem, IncomeClientSMS.IncomeClientSMSStatus.Checked, context);

                    foreach (IncomeClientSMS IncomeClientSms in IncomeClientSmsList)
                    {
                        bool result;
                        if (IncomeClientSms.IncomeSMS.MessageType == IncomeSMS.Type.Email)
                            emailBox.SendEmail(IncomeClientSms.Text, "Re: " + IncomeClientSms.IncomeSMS.ShortKey, IncomeClientSms.IncomeSMS.SenderAddress, SendIncomeClientSMSSetResult, IncomeClientSms);
                        else
                        {
                            result = modem.SendSMS(IncomeClientSms.IncomeSMS.SenderNumber, IncomeClientSms.Text);
                            if (result)
                                ChangeIncomeClientSMSStatus(IncomeClientSms, IncomeClientSMS.IncomeClientSMSStatus.Sent, context);
                        }
                    }
                }
            }
            catch (Exception e)
            {
                throw e;
            }
            finally
            {
                IncomeSMSSaveMutex.ReleaseMutex();
            }
        }