public async Task Run( [ServiceBusTrigger( ExportQueue.QueueName, Connection = ExportQueue.ServiceBusConnectionConfigurationKey)] string myQueueItem, [DurableClient] IDurableOrchestrationClient starter) { var messageContent = JsonConvert.DeserializeObject <ExportMessageQueueContent>(myQueueItem); var notificationId = messageContent.NotificationId; var sentNotificationDataEntity = await this.notificationDataRepository.GetAsync( partitionKey : NotificationDataTableNames.SentNotificationsPartition, rowKey : notificationId); var exportDataEntity = await this.exportDataRepository.GetAsync(messageContent.UserId, notificationId); exportDataEntity.FileName = this.GetFileName(); var requirement = new ExportDataRequirement(sentNotificationDataEntity, exportDataEntity, messageContent.UserId); if (requirement.IsValid()) { string instanceId = await starter.StartNewAsync( nameof(ExportOrchestration.ExportOrchestrationAsync), requirement); } }
public async Task Run( [ServiceBusTrigger( ExportQueue.QueueName, Connection = ExportQueue.ServiceBusConnectionConfigurationKey)] string myQueueItem, [DurableClient] IDurableOrchestrationClient starter) { if (myQueueItem == null) { throw new ArgumentNullException(nameof(myQueueItem)); } if (starter == null) { throw new ArgumentNullException(nameof(starter)); } var messageContent = JsonConvert.DeserializeObject <ExportMessageQueueContent>(myQueueItem); var notificationId = messageContent.NotificationId; var sentNotificationDataEntity = await this.notificationDataRepository.GetAsync( partitionKey : NotificationDataTableNames.SentNotificationsPartition, rowKey : notificationId); var exportDataEntity = await this.exportDataRepository.GetAsync(messageContent.UserId, notificationId); if (exportDataEntity.ExportType == "ExportAllNotifications") { //exportDataEntity.FileName = this.GetFileName("FileName_ExportDetails"); var fileName = this.localizer.GetString("FileName_ExportDetails") + "_" + exportDataEntity.RowKey + ".zip"; exportDataEntity.FileName = fileName; var userId = exportDataEntity.PartitionKey; var requestedTeamId = exportDataEntity.RequestedTeamId; var user = await this.userDataRepository.GetAsync(UserDataTableNames.AuthorDataPartition, userId); if (user == null) { await this.SyncAuthorAsync(requestedTeamId, userId); } } else { exportDataEntity.FileName = this.GetFileName("FileName_ExportData"); } var requirement = new ExportDataRequirement(sentNotificationDataEntity, exportDataEntity, messageContent.UserId); if (exportDataEntity.ExportType == "ExportAllNotifications") { string instanceId = await starter.StartNewAsync(nameof(ExportOrchestration.ExportOrchestrationAsync), requirement); } else if (requirement.IsValid()) { string instanceId = await starter.StartNewAsync(nameof(ExportOrchestration.ExportOrchestrationAsync), requirement); } }
public async Task Run( [ServiceBusTrigger(ExportQueue.QueueName, Connection = ExportQueue.ServiceBusConnectionConfigurationKey)] string myQueueItem, [DurableClient] IDurableOrchestrationClient starter, ILogger log) { if (myQueueItem == null) { throw new ArgumentNullException(nameof(myQueueItem)); } if (starter == null) { throw new ArgumentNullException(nameof(starter)); } var messageContent = JsonConvert.DeserializeObject <ExportMessageQueueContent>(myQueueItem); var notificationId = messageContent.NotificationId; var sentNotificationDataEntity = await this.notificationDataRepository.GetAsync( partitionKey : NotificationDataTableNames.SentNotificationsPartition, rowKey : notificationId); var exportDataEntity = await this.exportDataRepository.GetAsync(messageContent.UserId, notificationId); exportDataEntity.FileName = this.GetFileName(); var requirement = new ExportDataRequirement(sentNotificationDataEntity, exportDataEntity, messageContent.UserId); if (!requirement.IsValid()) { log.LogError("Export data requirement is not valid."); return; } string instanceId = await starter.StartNewAsync( FunctionNames.ExportOrchestration, requirement); log.LogInformation($"Started orchestration with ID = '{instanceId}'."); }