public List <Local> Listar()
        {
            var locais = _localRepository.Listar();

            locais.ForEach(local => local.Portas = _portaLocalBusiness.Listar(local.Id));

            return(locais);
        }
        private Operacao ValidarMovimento(int?idLocal, int coordenadaOrigemLinha, int coordenadaOrigemColuna, int coordenadaDestinoLinha, int coordenadaDestinoColuna)
        {
            if (!idLocal.HasValue)
            {
                var local = _localBusiness.Obter(coordenadaDestinoLinha, coordenadaDestinoColuna);
                if (local != default && !local.DentroLocal(coordenadaOrigemLinha, coordenadaOrigemColuna) && local.DentroLocal(coordenadaDestinoLinha, coordenadaDestinoColuna) &&
                    !local.PortaLocal(coordenadaOrigemLinha, coordenadaOrigemColuna, coordenadaDestinoLinha, coordenadaDestinoColuna))
                {
                    return(new Operacao("Não é possível entrar no local por esse quadrado.", false));
                }

                return(new Operacao("Operação válida."));
            }
            else
            {
                var portas = _portaLocalBusiness.Listar(idLocal.Value);
                if (portas == null || !portas.Any())
                {
                    return(new Operacao("Portas da sala não cadastradas.", false));
                }

                if (portas.Any(p => p.ValidarMovimento(coordenadaDestinoLinha, coordenadaDestinoColuna)))
                {
                    return(new Operacao("Operação válida."));
                }

                return(new Operacao("Não é possível sair do local por essa direção.", false));
            }
        }
        /// <summary>
        /// Obtem a posição atual de cada jogador da sala
        /// </summary>
        /// <returns> Retorna uma lista com ID-JOGADOR_SALA e a sua posição atual. </returns>
        public string GetPosicaoAtual(/*int idSala*/)
        {
            int idSala        = 1007;
            var jogadoresSala = _jogadorSalaBusiness.Listar(idSala);

            if (jogadoresSala == null || !jogadoresSala.Any())
            {
                return(String.Empty);
            }

            var portasLocais       = _portaLocalBusiness.Listar();
            var jogadoresViewModel = Mapper.Map <List <JogadorSala>, List <JogadorSalaViewModel> >(jogadoresSala);

            jogadoresViewModel = CarregarLocaisJogadoresViewModel(jogadoresViewModel, portasLocais);

            return(JsonConvert.SerializeObject(jogadoresViewModel));
        }