Example #1
0
        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>());
        }