Пример #1
0
        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();
        }
Пример #2
0
        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));
            }
        }
Пример #3
0
        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);
            }
        }
Пример #4
0
        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);
        }