public Send ( |
||
outgoingMessage | ||
Результат | void |
public void Send(OutgoingMessage outgoingMessage)
{
var client = new RestClient(TwilioBaseUrl);
client.Authenticator = new HttpBasicAuthenticator(AccountSid, AuthToken);
const string sendResource = "/SMS/Messages.json";
var request = new RestRequest(sendResource, Method.POST);
request.AddParameter("From", From);
request.AddParameter("To", outgoingMessage.To);
request.AddParameter("Body", outgoingMessage.Body);
var response = client.Post<TwilioResponse>(request);
if (response.ErrorException != null)
{
throw response.ErrorException;
}
if(response.Data.Status!="queued")
{
throw new Exception(response.Data.Message);
}
_repository.Create(new LoggedOutgoingMessage
{
Body = outgoingMessage.Body,
Sent = SystemDateTime.Now(),
ToNumber = outgoingMessage.To
});
}
static void Main(string[] args) { MsSqlConfiguration databaseConfiguration = MsSqlConfiguration.MsSql2008.ShowSql(). ConnectionString(x => x.FromConnectionStringWithKey("AutomatedCaseWorker")); ISessionFactory sessionFactory = new SessionFactoryBuilder(new MappingScheme(), databaseConfiguration).Build(); ISession session = sessionFactory.OpenSession(); _caseRepository = new CaseRepository(session); _cases = _caseRepository.GetAllActive().ToList(); _repository = new Repository(session); _twilioMessageSender = new TwilioMessageSender(_repository); foreach (var @case in _cases) { TimeSpan ts = DateTime.Now.Subtract(@case.LastActivity); if(ts.TotalMinutes>=15) { _twilioMessageSender.Send(new OutgoingMessage(@case.CellPhoneNumber, String.Format("Su número de caso es {0}", @case.CaseNumber()))); _caseRepository.MarkCaseAsInactive(@case); } } session.Close(); sessionFactory.Close(); }