Exemple #1
0
        public async Task ProcessStudentEventsXmlFiles(int jobHistoryID)
        {
            var fileNames = await GetBlobFileNamesFromAzureStorage();

            var messageTypes = await _activityStreamRepository.GetMessageTypes();

            foreach (var fileName in fileNames)
            {
                var studentEvents = new List <StudentEvent>();

                try
                {
                    var blob = await _filesBlobContainerClient.GetBlobClient(fileName).DownloadAsync();

                    studentEvents = await _xmlFileProcessor.GetStudentEventsFromXmlStream(fileName, blob.Value.Content);
                    await PublishStudentEvents(studentEvents, messageTypes, jobHistoryID);
                    await MoveFileToProcessed(fileName);
                }
                catch (System.Exception ex)
                {
                    ex.Data.Add("FileName", fileName);
                    throw;
                }
            }
        }