static void Main(string[] args) { using (var dataContext = new DataContext()) { var t = dataContext.EvidenceLogs .Include(f => f.InfringementEvidences) .ToList(); //dataContext.Database.Log = (s) => System.Diagnostics.Debug.WriteLine(s); Company company = dataContext.Companies.Find(1); User user = dataContext.Users.Find(2); //var targetMobileNumber = "095 080 5791"; //var targetMobileNumber = "096 213 8481"; var targetMobileNumber = "0845766144"; var isValid = Msisdn.IsValid(targetMobileNumber, Country); var msisdn = new Msisdn(targetMobileNumber, Country); Router router = new Router() { Source = "IMS", Target = msisdn.ToString(Msisdn.Format.International) }; SmsPayload payload = new SmsPayload("FirtNotice", "CM", "Traffic Offence. Download at http://www.ims.africa/Notification/Verify?refNo=123456789"); Item.Initiate(dataContext, "internal reference", company, user, router, payload, false); } System.Console.ReadKey(); }
public IHttpActionResult SendNoticeSms(IList <string> referenceNumbers) { using (var dataContext = new DataContext()) { var response = new List <SendResponseModel>(); var company = dataContext.Companies.FirstOrDefault(f => f.Name == "Intelligent Mobility Solutions"); var corresponedenceTemplate = dataContext.CorrespondenceTemplates .AsNoTracking() .FirstOrDefault(f => f.Key == "FirstNotice" && f.CorrespondenceType == Core.Data.Enums.CorrespondenceType.Sms); foreach (var referenceNumber in referenceNumbers) { var register = dataContext.Registers .Include(f => f.Person) .FirstOrDefault(f => f.ReferenceNumber == referenceNumber); var person = register.Person; if (person == null) { response.Add(new SendResponseModel { ReferenceNumber = referenceNumber, IsError = true, Error = "No person associated with the offence." }); continue; } var isValid = Msisdn.IsValid(person.MobileNumber, Country); if (!isValid) { // TODO: feedback that Msisdn is invalid and cannot be trusted response.Add(new SendResponseModel { ReferenceNumber = referenceNumber, IsError = true, Error = "Invalid Msisdn." }); continue; } var message = corresponedenceTemplate.Generate(new Dictionary <string, string> { { "referenceNumber", referenceNumber } }); Router router = new Router() { Source = "IMS", Target = new Msisdn(person.MobileNumber, Country).ToString(Msisdn.Format.International) }; SmsPayload payload = new SmsPayload("FirstNoticeSms", "CM", message); Item.Initiate(dataContext, referenceNumber, company, person, router, payload, false); dataContext.SaveChanges(); response.Add(new SendResponseModel { ReferenceNumber = referenceNumber, IsError = false }); } return(Ok(response)); } }
public static void Send(DataContext dbContext, string context, string subContext, Router router, Company company, User user, string smsTemplatePath, string templateName, IDictionary <string, string> personalizations) { //Read template file from the App_Data folder using (var sr = new StreamReader(Path.Combine(smsTemplatePath, templateName))) { string body = sr.ReadToEnd(); foreach (var personalization in personalizations) { body = body.Replace(string.Format("@{0}", personalization.Key), personalization.Value); } var payload = new SmsPayload(context, subContext, body); Item.Initiate(dbContext, Guid.NewGuid().ToString(), company, user, router, payload, true); } }
static void TestSmsService(string accessToken) { L("SMS Service Testing"); GlobeLabs api = new GlobeLabs(accessToken); var numbers = new List <string>(); numbers.Add("9171234567"); // and add more numbers ... //numbers.Add("917XXXXXXX"); var payload = new SmsPayload { Message = "Testing multiple recipients. Sms Service for Globe.", Numbers = numbers }; var data = api.PushSms("SHORT_CODE - ex: 21589999", payload); L("Data: " + data); }