コード例 #1
0
        public async Task ImportFrom(string sourcePageUrl)
        {
            var importedPlayers = (await _playersProvider.GetPlayersAsync(sourcePageUrl))
                                  .ToList();

            var existedPlayers = (await _playersRepository.GetAllAsync())
                                 .ToDictionary(p => p.MergedExternalId, p => p);

            foreach (var importedPlayer in importedPlayers)
            {
                if (existedPlayers.ContainsKey(importedPlayer.MergedExternalId))
                {
                    var existed = existedPlayers[importedPlayer.MergedExternalId];
                    importedPlayer.UpdateFrom(existed);
                }
            }

            await _playersRepository.InsertOrMergeAsync(importedPlayers);

            await _playersIntegration.SchedulePlayerProfilesUpdateAsync(importedPlayers);
        }