예제 #1
0
        /// <summary>
        /// Remove o usuário da mesa e excluir seu estado atual
        /// </summary>
        /// <param name="usuarioId"></param>
        /// <param name="mesaId"></param>
        public void SairMesa(int usuarioId, int mesaId)
        {
            MesaUsuario mu = _context.MesasUsuarios
                             .Include(mu1 => mu1.Mesa)
                             .ThenInclude(m => m.MesasUsuarios)
                             .Where(mu1 => mu1.UsuarioId == usuarioId && mu1.MesaId == mesaId).FirstOrDefault();

            if (mu != null)
            {
                if (mu.Mesa.MesasUsuarios.Count < 2)
                {
                    // se só tem este jogador na mesa, então exclui a mesa
                    _context.Mesas.Remove(mu.Mesa);
                }
                else
                {
                    // caso contrário, zera o estado da mesa
                    mu.Mesa.Historico    = "";
                    mu.Mesa.Estado       = "";
                    mu.Mesa.Configuracao = "";
                }
                _context.MesasUsuarios.Remove(mu);
                _context.SaveChanges();
                return;
            }
            else
            {
                throw new UsuarioNaoEstaNaMesa();
            }
        }
예제 #2
0
        public void EntrarMesa(int usuarioId, int mesaId)
        {
            int count = _context.MesasUsuarios
                        .Where(m1 => m1.UsuarioId == usuarioId &&
                               m1.MesaId == mesaId).Count();

            if (count > 0)
            {
                throw new JaEstaNaMesaException();
            }

            count = _context.MesasUsuarios
                    .Where(m1 => m1.UsuarioId == usuarioId &&
                           m1.MesaId == mesaId).Count();
            if (count >= 2)
            {
                throw new MesaCheiaException();
            }

            MesaUsuario mu = new MesaUsuario
            {
                MesaId    = mesaId,
                UsuarioId = usuarioId
            };

            _context.MesasUsuarios.Add(mu);
            _context.SaveChanges();
        }
예제 #3
0
        public void MontarMesa(string nome, int usuarioId)
        {
            Mesa mesa = new Mesa {
                Nome = nome
            };
            MesaUsuario mesaUsuario = new MesaUsuario
            {
                UsuarioId = usuarioId,
                Mesa      = mesa
            };

            _context.MesasUsuarios.Add(mesaUsuario);
            _context.SaveChanges();
        }