Exemplo n.º 1
0
        public IList <Temporada> ListarTemporadas([FromBody] ApostasUsuarioTemporadaViewModel apostasUsuarioTemporadaViewModel)
        {
            var temporadas = _temporadaRepositorio.Listar();
            var retorno    = new List <Temporada>();
            var ondeAposta = "{" + String.Format("_id : ObjectId('{0}')", apostasUsuarioTemporadaViewModel.IdUsuario) + "}";
            var usuario    = _usuarioRepositorio.Encontrar(ondeAposta);

            foreach (var item in temporadas)
            {
                var apostasTemporada = usuario.Apostas.Where(x => x.CodigoTemporada == item._id.ToString()).ToList();
                if (apostasTemporada.Where(x => x.Jogo.Fase == (int)Fase.Final).Count() == 0)
                {
                    if (apostasTemporada.Count > 0)
                    {
                        item.FaseInicial = apostasTemporada.Select(x => x.Jogo.Fase).Max() + 1;
                    }
                    retorno.Add(item);
                }
            }
            return(retorno);
        }
Exemplo n.º 2
0
        public void Apostar([FromBody] ApostasUsuarioTemporadaViewModel apostaViewModel)
        {
            var ondeAposta = "{" + String.Format("_id : ObjectId('{0}')", apostaViewModel.IdUsuario) + "}";
            var usuario    = _usuarioRepositorio.Encontrar(ondeAposta);

            var onde        = "{" + String.Format("_id : ObjectId('{0}')", apostaViewModel.IdTemporada) + "}";
            var temporadaBd = _temporadaRepositorio.Encontrar(onde);

            foreach (var item in apostaViewModel.Apostas)
            {
                var aposta = new Aposta
                {
                    CodigoTemporada = apostaViewModel.IdTemporada,
                    Pontos          = item.Pontos,
                    Jogo            = temporadaBd.Jogos.Where(x => x._id.ToString() == item.CodigoJogo).FirstOrDefault(),
                    _id             = ObjectId.GenerateNewId()
                };
                usuario.Pontuacao += item.Pontos > 0 ? item.Pontos : 0;
                usuario.Apostas.Add(aposta);
            }
            _usuarioRepositorio.Update(ondeAposta, usuario);
        }