コード例 #1
0
        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));
        }
コード例 #3
0
        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));
        }
コード例 #4
0
 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);
     }
 }
コード例 #5
0
        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);
        }
コード例 #6
0
 public void AlterarDados()
 {
     _context.SaveChanges();
 }