コード例 #1
0
        public EnumSituacaoJogo ChecarTeoria(TeoriaRequest request)
        {
            var errors = new List <EnumSituacaoJogo>();

            if (SuspeitoId != request.Suspeito)
            {
                errors.Add(EnumSituacaoJogo.SuspeitoIncorreto);
            }

            if (LocalId != request.Local)
            {
                errors.Add(EnumSituacaoJogo.LocalIncorreto);
            }

            if (ArmaId != request.Arma)
            {
                errors.Add(EnumSituacaoJogo.ArmaIncorreta);
            }

            if (!errors.Any())
            {
                return(EnumSituacaoJogo.TeoriaCorreta);
            }

            return((errors.Count == 1) ? errors.First() : errors[new Random().Next(errors.Count)]);
        }
コード例 #2
0
        public void TestRespostaErradaArmaDoJogo()
        {
            var teoriaRequest = new TeoriaRequest(arma: 2, local: 1, suspeito: 1);

            var jogo = CreateJogo();

            Assert.AreEqual(EnumSituacaoJogo.ArmaIncorreta, jogo.ChecarTeoria(teoriaRequest));
        }
コード例 #3
0
        public void TestRespostaErradaMaisDeUmDoJogo()
        {
            var teoriaRequest = new TeoriaRequest(arma: 2, local: 2, suspeito: 1);

            var jogo = CreateJogo();

            Assert.AreNotEqual(EnumSituacaoJogo.SuspeitoIncorreto, jogo.ChecarTeoria(teoriaRequest));
            Assert.AreNotEqual(EnumSituacaoJogo.TeoriaCorreta, jogo.ChecarTeoria(teoriaRequest));
        }
コード例 #4
0
        public async Task <HttpResponseMessage> Check(Guid id, int suspeito, int local, int arma)
        {
            try
            {
                _serviceCrime.RemoveExpirad();
                var crime          = (Crime)_serviceCrime.ObterPorId(id);
                var requestTeoria  = new TeoriaRequest(suspeito, local, arma);
                var responseTeoria = new TeoriaResponse(crime.ChecarTeoria(requestTeoria));

                return(await ResponseAsync(responseTeoria, _serviceCrime));
            }
            catch (Exception ex)
            {
                return(await ResponseExceptionAsync(ex));
            }
        }