public Batalha IniciarBatalha(int id) { var usuario = Utils.Utils.ObterUsuarioLogado(db); var batalha = db.Batalhas .Include(b => b.ExercitoPreto) .Include(b => b.ExercitoBranco) .Include(b => b.Tabuleiro) .Include(b => b.Turno) .Include(b => b.Turno.Usuario) .Where(b => (b.ExercitoBranco.Usuario.Email == usuario.Email || b.ExercitoPreto.Usuario.Email == usuario.Email) && (b.ExercitoBranco != null && b.ExercitoPreto != null) && b.Id == id).FirstOrDefault(); if (batalha == null) { var resp = new HttpResponseMessage(HttpStatusCode.NotFound) { Content = new StringContent(String.Format("Não foi possível carregar a Batalha.")), ReasonPhrase = "Não foi possível carregar a batalha." }; throw new HttpResponseException(resp); } if (batalha.Tabuleiro == null) { batalha.Tabuleiro = new Tabuleiro { Altura = 8, Largura = 8 }; } if (batalha.Estado == Batalha.EstadoBatalhaEnum.NaoIniciado) { batalha.Tabuleiro.IniciarJogo(batalha.ExercitoBranco, batalha.ExercitoPreto); Random r = new Random(); batalha.Turno = r.Next(100) < 50 ? batalha.ExercitoPreto : batalha.ExercitoBranco; batalha.Estado = Batalha.EstadoBatalhaEnum.Iniciado; db.SaveChanges(); var firebaseTabuleiro = new FirebaseTabuleiro(batalha.Tabuleiro, batalha.TurnoId); firebase.Add(firebaseTabuleiro, firebaseTabuleiro.Id); } return(batalha); }
public ActionResult Create([Bind(Include = "Id,TabuleiroId,ExercitoBrancoId,ExercitoPretoId,VencedorId,TurnoId,Estado")] Batalha batalha) { if (ModelState.IsValid) { db.Batalhas.Add(batalha); db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.ExercitoBrancoId = new SelectList(db.Exercitos, "Id", "Id", batalha.ExercitoBrancoId); ViewBag.ExercitoPretoId = new SelectList(db.Exercitos, "Id", "Id", batalha.ExercitoPretoId); ViewBag.TabuleiroId = new SelectList(db.Tabuleiros, "Id", "Id", batalha.TabuleiroId); ViewBag.TurnoId = new SelectList(db.Exercitos, "Id", "Id", batalha.TurnoId); ViewBag.VencedorId = new SelectList(db.Exercitos, "Id", "Id", batalha.VencedorId); return(View(batalha)); }
public async Task <IActionResult> IniciarBatalha(int id) { var usuario = _usuarioService.ObterUsuarioEmail(this.User); //Get batalha var batalha = _context.Batalhas .Include(b => b.ExercitoPreto) .Include(b => b.ExercitoBranco) .Include(b => b.Tabuleiro) .Include(b => b.Turno) .Include(b => b.Turno.Usuario) .Where(b => (b.ExercitoBranco.Usuario.Id == usuario.Id || b.ExercitoPreto.Usuario.Id == usuario.Id) && (b.ExercitoBranco != null && b.ExercitoPreto != null) && b.Id == id).FirstOrDefault(); if (batalha == null) { return(NotFound()); } if (batalha.Tabuleiro == null) { batalha.Tabuleiro = new Tabuleiro(); batalha.Tabuleiro.Altura = 8; batalha.Tabuleiro.Largura = 8; } try { if (batalha.Estado == Batalha.EstadoBatalhaEnum.NaoIniciado) { batalha.Tabuleiro.IniciarJogo(batalha.ExercitoBranco, batalha.ExercitoPreto); Random r = new Random(); batalha.Turno = r.Next(100) < 50 ? batalha.ExercitoPreto : batalha.ExercitoBranco; batalha.Estado = Batalha.EstadoBatalhaEnum.Iniciado; } }catch (ArgumentException arg) { BadRequest("Não foi escolhido uma nação."); } _context.SaveChanges(); return(Ok(batalha)); }
public Batalha EstadoBatalha(Batalha batalha) { try { if (batalha.Estado == Batalha.EstadoBatalhaEnum.NaoIniciado) { batalha.Tabuleiro.IniciarJogo(batalha.ExercitoBranco, batalha.ExercitoPreto); Random r = new Random(); batalha.Turno = r.Next(100) < 50 ? batalha.ExercitoPreto : batalha.ExercitoBranco; batalha.Estado = Batalha.EstadoBatalhaEnum.Iniciado; } _context.SaveChanges(); return(batalha); } catch (ArgumentException arg) { return(null); } }
public Usuario ObterUsuarioEmail(ClaimsPrincipal user) { var userName = _userManager.GetUserName(user); var usuario = _context.Usuarios.Where(u => u.Username == userName).FirstOrDefault(); if (usuario == null) { usuario = new Usuario() { Username = userName }; _context.Usuarios.Add(usuario); _context.SaveChanges(); } return(usuario); }
public void AlterarDados() { _context.SaveChanges(); }