public async Task <Unit> Handle(SetDefaultSkillCommand command, CancellationToken cancellationToken) { var playerId = command.PlayerId; var mySkillId = command.MySkillId; var player = await _playerDomainService.Get(playerId); if (player == null) { return(Unit.Value); } var playerSkills = await _playerSkillDomainService.GetAll(player.Id); if (playerSkills.Count(x => x.Id == mySkillId && !x.IsDefault) == 0) { return(Unit.Value); } int defaultSkillId = 0; foreach (var playerSkill in playerSkills) { if (playerSkill.IsDefault) { defaultSkillId = playerSkill.Id; playerSkill.IsDefault = false; await _playerSkillDomainService.Update(playerSkill); } if (playerSkill.Id == mySkillId) { playerSkill.IsDefault = true; await _playerSkillDomainService.Update(playerSkill); } } await _mudProvider.SetDefaultSkill(playerId, mySkillId); return(Unit.Value); }