public void FunctionHandler(DynamoDBEvent dynamoEvent, ILambdaContext context)
        {
            context.Logger.LogLine($"Beginning to process {dynamoEvent.Records.Count} records...");

            IServiceProvider          sp          = DI.ServiceProvider;
            IBaseRepository <Message> messageRepo = sp.GetService <IBaseRepository <Message> >();
            ISmsWorker smsWorker = sp.GetService <ISmsWorker>();

            foreach (var record in dynamoEvent.Records)
            {
                //because the stream parser strategy seems an overkill
                //to be introduced of all object
                long Id = Convert.ToInt64(record.Dynamodb.Keys.First().Value.N);
                context.Logger.LogLine($"Requesting record Id  : {Id}");

                Message msg = messageRepo.Get(Id);

                context.Logger.LogLine(JsonConvert.SerializeObject(msg));

                if (msg.Phone != null)
                {
                    SmsResponse smsResponse = smsWorker.SendSMS(msg.Phone, msg.Content);
                    string      log         = smsResponse.success ? $"SMS Message send : {msg.Phone}" : "SMS Message was unable to be sent";
                    context.Logger.LogLine(log);
                }
            }

            context.Logger.LogLine("Stream processing complete.");
        }
Ejemplo n.º 2
0
        public void SmsWorkerWorks()
        {
            IServiceProvider sp        = StartUp.ServiceProvider;
            ISmsWorker       smsWorker = sp.GetService <ISmsWorker>();

            SmsResponse response = smsWorker.SendSMS("4023509079", "test");

            Assert.IsTrue(response.success);
        }