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