public async Task <IList <ImportResult> > ImportByDateAsync(PerformContext context, string requestId, DateTime rangeStartDate, DateTime rangeEndDate) { _logger.LogInformation(context, requestId, "Request to import by Date started"); _logger.LogInformation(context, requestId, $"Importing notifications in range from {rangeStartDate.Date} to {rangeEndDate.Date}"); var notificationsGroupsToImport = await _notificationMapper.GetNotificationsGroupedByPatient(context, requestId, rangeStartDate, rangeEndDate); var importResults = await ImportNotificationGroupsAsync(context, requestId, notificationsGroupsToImport); _logger.LogInformation(context, requestId, "Request to import by Date finished"); return(importResults); }
public async Task ImportOrUpdateLegacyUser(string legacyCaseManagerUsername, PerformContext context, int runId) { if (legacyCaseManagerUsername == null) { return; } var legacyCaseManager = await _migrationRepository.GetLegacyUserByUsername(legacyCaseManagerUsername); var existingCaseManager = await _userRepository.GetUserByUsername(legacyCaseManagerUsername); var ntbsCaseManager = existingCaseManager ?? new User { IsActive = false, IsCaseManager = false, Username = legacyCaseManager.Username, CaseManagerTbServices = new List <CaseManagerTbService>() }; if (!ntbsCaseManager.IsActive) { ntbsCaseManager.GivenName = legacyCaseManager.GivenName; ntbsCaseManager.FamilyName = legacyCaseManager.FamilyName; ntbsCaseManager.DisplayName = $"{legacyCaseManager.GivenName} {legacyCaseManager.FamilyName}"; } ntbsCaseManager.IsCaseManager = true; await _userRepository.AddOrUpdateUser(ntbsCaseManager, ntbsCaseManager.CaseManagerTbServices.Select(cmtb => cmtb.TbService)); _logger.LogInformation(context, runId, "Added/Updated the case manager assigned to the notification."); }
private async Task <IEnumerable <IList <Notification> > > GetGroupedResultsAsNotificationAsync(IEnumerable <IGrouping <string, string> > groupedIds, PerformContext context, string requestId) { var resultList = new List <IList <Notification> >(); foreach (var group in groupedIds) { var legacyIds = group.ToList(); _logger.LogInformation(context, requestId, $"Fetching data for legacy notifications {string.Join(", ", legacyIds)}"); var legacyNotifications = _migrationRepository.GetNotificationsById(legacyIds); var sitesOfDisease = _migrationRepository.GetNotificationSites(legacyIds); var manualTestResults = _migrationRepository.GetManualTestResults(legacyIds); var socialContextVenues = _migrationRepository.GetSocialContextVenues(legacyIds); var socialContextAddresses = _migrationRepository.GetSocialContextAddresses(legacyIds); var transferEvents = _migrationRepository.GetTransferEvents(legacyIds); var outcomeEvents = _migrationRepository.GetOutcomeEvents(legacyIds); var mbovisAnimalExposure = _migrationRepository.GetMigrationMBovisAnimalExposure(legacyIds); var mbovisExposureToKnownCase = _migrationRepository.GetMigrationMBovisExposureToKnownCase(legacyIds); var mbovisOccupationExposures = _migrationRepository.GetMigrationMBovisOccupationExposures(legacyIds); var mbovisUnpasteurisedMilkConsumption = _migrationRepository.GetMigrationMBovisUnpasteurisedMilkConsumption(legacyIds); var notificationsForGroup = await CombineDataForGroup( legacyIds, (await legacyNotifications).ToList(), (await sitesOfDisease).ToList(), (await manualTestResults).ToList(), (await socialContextVenues).ToList(), (await socialContextAddresses).ToList(), (await transferEvents).ToList(), (await outcomeEvents).ToList(), (await mbovisAnimalExposure).ToList(), (await mbovisExposureToKnownCase).ToList(), (await mbovisOccupationExposures).ToList(), (await mbovisUnpasteurisedMilkConsumption).ToList() ); resultList.Add(notificationsForGroup); } return(resultList); }