예제 #1
0
        public async Task <DTOs.MemberRound> Score(DTOs.ScoreRound request)
        {
            var round = await roundRepository.Get(request.Round.Id);

            if (round == null)
            {
                throw new NotFoundException("Round", request.Round.Id);
            }

            var member = round.Members.FirstOrDefault(m => m.Member.Bandit.Id == request.Member.Id);

            if (member == null)
            {
                throw new NotFoundException("Bandit", request.Member.Id);
            }

            member.ScoreRound(request.Score.ToModel());

            await roundRepository.UpdateScoring(member);

            if (round.AllScored())
            {
                await roundRepository.UpdateScoring(round.Sheriff);
            }

            return(member.ToDtoMember());
        }