public static async Task <IEnumerable <Message> > ProcessManifestActivity( [ActivityTrigger] UploadCompleted uploadCompleted, [Blob(BlobNames.UploadDirectory + "/{uploadCompleted.SessionId}/" + CommunicationManifest.FileName)] CloudBlockBlob manifest, [Table(TableNames.CommMessage)] CloudTable messageTable, [Inject] IMessageIdGenerator idGenerator, [Inject] App app, ILogger log) { var communicationManifest = await manifest.DownloadTextAsAsync <CommunicationManifest>(); var results = await communicationManifest.PrepareCommMessage(uploadCompleted.SessionId, idGenerator, app.DateTimeNow) .CreateIn(messageTable); log.Log(LogLevel.Information, communicationManifest.ToJson(Formatting.Indented)); return(results.GetResult <Message>()); }