コード例 #1
0
        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.");
        }