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