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); }
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); }