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."); }
public void SmsWorkerWorks() { IServiceProvider sp = StartUp.ServiceProvider; ISmsWorker smsWorker = sp.GetService <ISmsWorker>(); SmsResponse response = smsWorker.SendSMS("4023509079", "test"); Assert.IsTrue(response.success); }