상속: MonoBehaviour
예제 #1
0
        public IActionResult Put(int id, [FromBody] TrechoDto trechoRequest)
        {
            var origem = localRepository.Obter(trechoRequest.IdOrigem);

            if (origem == null)
            {
                return(NotFound());
            }
            var destino = localRepository.Obter(trechoRequest.IdDestino);

            if (destino == null)
            {
                return(NotFound());
            }
            var distancia = CalcularDistancia(origem, destino);
            var trecho    = new Trecho(origem, destino, distancia);
            var mensagens = trechoService.Validar(trecho);

            if (mensagens.Count() > 0)
            {
                return(BadRequest(mensagens));
            }
            trechoRepository.AtualizarTrecho(id, trecho);
            contexto.SaveChanges();
            return(Ok());
        }
예제 #2
0
    public void recuar(int posicao = 0)
    {
        var pais = historia.paisDoTrecho(trechoAtual);

        trechoAtual = pais[posicao];
        renderizaTrechoAtual();
    }
예제 #3
0
        public string Buscar(string encomenda, List <Trecho> trechosCadastrados)
        {
            string[] informacoesEncomenda = encomenda.Split(Constantes.CaracterDelimitador);

            ECidade cidadeOrigem  = (ECidade)Enum.Parse(typeof(ECidade), informacoesEncomenda[0], true);
            ECidade cidadeDestino = (ECidade)Enum.Parse(typeof(ECidade), informacoesEncomenda[1], true);

            Trecho trechoDireto = trechosCadastrados.FirstOrDefault(t => t.CidadeOrigem == cidadeOrigem && t.CidadeDestino == cidadeDestino);

            if (trechoDireto != null)
            {
                return($"{trechoDireto.CidadeOrigem.ToString()} {trechoDireto.CidadeDestino.ToString()} {trechoDireto.QuantidadeDias}");
            }

            List <Trecho> trechosParaDestino = trechosCadastrados.Where(t => t.CidadeOrigem == cidadeOrigem).ToList();

            int           maximoRotas      = 8;
            List <Trecho> rotasEncontradas = BuscarProximaRota(cidadeOrigem, cidadeDestino, trechosParaDestino, trechosCadastrados, maximoRotas);

            if (rotasEncontradas != null)
            {
                Trecho ultimoRotaEncontrada = rotasEncontradas.Last();

                Trecho proximaRota = trechosParaDestino.FirstOrDefault(t => t.CidadeDestino == ultimoRotaEncontrada.CidadeOrigem);
                rotasEncontradas.Add(proximaRota);

                rotasEncontradas.Reverse();

                int totalDias = rotasEncontradas.Sum(t => t.QuantidadeDias);

                return($"{String.Join(" ", rotasEncontradas.Select(x => String.Join(" ", x.CidadeOrigem.ToString())))} {cidadeDestino.ToString()} {totalDias}");
            }

            return($"{cidadeOrigem.ToString()} {cidadeDestino.ToString()} N/D");
        }
예제 #4
0
    public void avancar(int posicao = 0)
    {
        var filhos = historia.filhosDoTrecho(trechoAtual);

        trechoAtual = filhos[posicao];
        renderizaTrechoAtual();
    }
예제 #5
0
    public void avancar(Trecho trecho)
    {
        var filhos = historia.filhosDoTrecho(trechoAtual);
        int i      = filhos.IndexOf(trecho);

        avancar(i);
    }
예제 #6
0
        private void AdicionaTrecho(Voo voo, UberAir air = null, Planes plane = null)
        {
            if (plane != null)
            {
                var trecho = new Trecho();
                trecho.Origem    = plane.Origem;
                trecho.Destino   = plane.Destino;
                trecho.Saida     = plane.Data_Saida.AddHours(plane.Saida.Hour).AddMinutes(plane.Saida.Minute);
                trecho.Chegada   = plane.Data_Saida.AddHours(plane.Chegada.Hour).AddMinutes(plane.Chegada.Minute);
                trecho.Operadora = "99Planes";
                trecho.Preco     = plane.Valor;
                voo.Trechos.Add(trecho);
            }

            if (air != null)
            {
                var trecho = new Trecho();
                trecho.Origem    = air.AeroportoOrigem;
                trecho.Destino   = air.AeroportoDestino;
                trecho.Saida     = air.Data.AddHours(air.HorarioSaida.Hour).AddMinutes(air.HorarioSaida.Minute);
                trecho.Chegada   = air.Data.AddHours(air.HorarioChegada.Hour).AddMinutes(air.HorarioChegada.Minute);
                trecho.Operadora = "UberAir";
                trecho.Preco     = air.Preco;
                voo.Trechos.Add(trecho);
            }
        }
        private Trecho MapearTrechoDtoParaTrecho(TrechoRequestDto trechoDto)
        {
            var origem  = localRepository.ObterLocal(trechoDto.IdOrigem);
            var destino = localRepository.ObterLocal(trechoDto.IdDestino);

            var trecho = new Trecho(origem, destino);

            return(trecho);
        }
예제 #8
0
 public ReservaResponseDto(int id, ClasseDeVoo classeDeVoo, Trecho trecho, double valorTotal, int idUsuario)
 {
     this.ClasseDeVoo = classeDeVoo;
     this.Trecho      = trecho;
     this.ValorTotal  = valorTotal;
     this.Id          = id;
     this.Opcionais   = new List <Opcional>();
     this.IdUsuario   = idUsuario;
 }
예제 #9
0
        private Tuple <string, string> GerarEncomendaFormatada(List <Trecho> trechos)
        {
            Trecho trecho = trechos.First();

            string encomenda = $"{trecho.CidadeOrigem.ToString()};{trecho.CidadeDestino.ToString()}";
            string rota      = $"{trecho.CidadeOrigem.ToString()} {trecho.CidadeDestino.ToString()} {trecho.QuantidadeDias}";

            return(new Tuple <string, string>(encomenda, rota));
        }
예제 #10
0
 /// <summary>
 /// Start is called on the frame when a script is enabled just before
 /// any of the Update methods is called the first time.
 /// </summary>
 void Start()
 {
     historia    = ComposicaoHistoria.historia;
     trechoAtual = historia.getInicio();
     renderizaTrechoAtual();
     proximoTrecho.GetComponent <Button>().onClick.AddListener(delegate
     {
         avancar(0);
     });
 }
예제 #11
0
        public void Deve_Ter_O_Mesmo_Hashcode_Se_Comparado_A_Outro_Igual()
        {
            var primeiro = Trecho.Novo().ComDestinoA("juazeiro")
                           .ComOrigemEm("fortaleza");

            var segundo = Trecho.Novo().ComDestinoA("juazeiro")
                          .ComOrigemEm("fortaleza");

            Assert.AreEqual(primeiro.GetHashCode(), segundo.GetHashCode());
        }
예제 #12
0
        public void Sao_Iguais_Se_Origem_E_Destino_Forem_Iguais()
        {
            var primeiro = Trecho.Novo().ComDestinoA("juazeiro")
                           .ComOrigemEm("fortaleza");

            var segundo = Trecho.Novo().ComDestinoA("juazeiro")
                          .ComOrigemEm("fortaleza");

            Assert.True(primeiro.Equals(segundo));
        }
        public void DeveConverterTrechoInformado()
        {
            Trecho        expected = NovoTrechoValido();
            List <string> trecho   = GerarTrechoValidoEFormatado();

            List <Trecho> result = _converterTrecho.Converter(trecho);

            Assert.Contains(result,
                            e => e.CidadeOrigem == expected.CidadeOrigem && e.CidadeDestino == expected.CidadeDestino && e.QuantidadeDias == expected.QuantidadeDias);
        }
예제 #14
0
        public Trecho AtualizarTrecho(int id, Trecho trecho)
        {
            var trechoCadastrado = contexto.Trechos.FirstOrDefault(p => p.Id == id);

            if (trechoCadastrado != null)
            {
                trechoCadastrado.Atualizar(trechoCadastrado);
            }
            return(trechoCadastrado);
        }
예제 #15
0
        //TRECHOS
        public List <Trecho> TodosTrechos(List <Barra> listabarras, Barra barra)
        {
            List <Trecho> lista  = new List <Trecho>();
            Trecho        trecho = null;
            Barra         barra1 = null;
            Barra         barra2 = null;

            int LineCount = DSSLines.First;

            for (int i = 0; i < this.DSSLines.Count; i++)
            {
                trecho = new Trecho();

                DSSLines = DSSCircuit.Lines;

                trecho.CodTrecho = DSSLines.Name;

                DSSCircuit.SetActiveElement(trecho.CodTrecho);
                DSSLineCodes.Name = DSSLines.LineCode;

                trecho.INom        = DSSLineCodes.NormAmps;
                trecho.IAtual      = DSSCktElement.CurrentsMagAng[0];
                trecho.Comprimento = DSSLines.Length;


                barra1        = new Barra();
                trecho.barra1 = this.getBarra(DSSLines.Bus1.Split('.')[0].ToString(), listabarras);


                barra2           = new Barra();
                trecho.barra2    = this.getBarra(DSSLines.Bus2.Split('.')[0].ToString(), listabarras);
                trecho.Parametro = DSSLines.LineCode;

                if (trecho.barra1 != null)
                {
                    if (this.getBarra(trecho.barra1.CodBarra, listabarras).Rede == barra.Rede)
                    {
                        lista.Add(trecho);
                    }
                }

                else if (trecho.barra2 != null)
                {
                    if (this.getBarra(trecho.barra2.CodBarra, listabarras).Rede == barra.Rede)
                    {
                        lista.Add(trecho);
                    }
                }


                LineCount = DSSLines.Next;
            }

            return(lista);
        }
        public void TestandoCalculoDeDistancia()
        {
            var origem  = new Local("New York", "Ta no meio de Manhattan", 40.76, -73.984);
            var destino = new Local("Roma", "Ta no coliseu de Roma", 41.89, 12.492);
            var trecho  = new Trecho(origem, destino);

            double esperado  = Math.Floor(4279.9454);
            double resultado = trecho.DistanciaTotal;

            Assert.AreEqual(esperado, resultado);
        }
        public Trecho AtualizarTrecho(int id, Trecho trecho)
        {
            var classeDeVooCadastrada = contexto.Trechos.Include(a => a.LocalOrigem).Include(a => a.LocalDestino).FirstOrDefault(a => a.Id == id);

            if (classeDeVooCadastrada != null)
            {
                classeDeVooCadastrada.Atualizar(trecho);
            }

            return(classeDeVooCadastrada);
        }
예제 #18
0
    public Historia historiaDeExemplo()
    {
        var historia = new Historia();

        historia.nome      = "Pânico na estrada";
        historia.descricao = "Uma família viajando a noite em uma estrada no meio da floresta, encontra um estranho";
        historia.autor     = "rafante2";
        historia.thumbnail = "estrada_floresta_noite";

        var texto = "";

        texto = "Onde estou? Quanto sangue! Meu Deus! Lora! Dane! Cadê vocês!?";
        var inicio = new Trecho(TipoTrecho.NORMAL, 0, texto);

        texto = "Elas não estão no carro. Me lembro de ter desviado de um homem na pista.";
        var t1 = new Trecho(TipoTrecho.NORMAL, 1, texto);

        texto = "Acho que o carro acabou saindo da estrada e batido nessa árvore";
        var t2 = new Trecho(TipoTrecho.NORMAL, 2, texto);

        texto = "Onde elas podem estar? Não sei se procuro na floresta ou na estrada";
        var t3 = new Trecho(TipoTrecho.NORMAL, 3, texto);

        texto = "Esta floresta é muito densa, não tem como elas terem vindo por aqui. Preciso voltar";
        var t4 = new Trecho(TipoTrecho.NORMAL, 4, texto);

        t4.textoCondicao = "Ir pela floresta";

        texto = "Uma hora andando nesta estrada e até agora nem uma viva alma";
        var t5 = new Trecho(TipoTrecho.NORMAL, 5, texto);

        t5.textoCondicao = "Ir pela estrada";

        t1.setPai(inicio);
        t2.setPai(t1);
        t3.setPai(t2);
        t4.setPai(t3);
        t5.setPai(t3);

        var trechos = new Trecho[6];

        trechos[0] = inicio;
        trechos[1] = t1;
        trechos[2] = t2;
        trechos[3] = t3;
        trechos[4] = t4;
        trechos[5] = t5;

        historia.trechos = trechos;
        Sincronizador.salvarHistoria(historia, true);
        return(historia);
    }
예제 #19
0
        public void Posso_Cadastralo()
        {
            var quantidadeEsperada = 1;
            var todosOsTrechos     = new CadastroDeTrechos();

            var trecho = Trecho.Novo()
                         .ComOrigemEm("fortaleza")
                         .ComDestinoA("juazeiro do norte")
                         .ComPreco(70m);

            todosOsTrechos.adiciona(trecho);

            Assert.AreEqual(quantidadeEsperada, todosOsTrechos.Total);
        }
        public void TestandoDadosDeDestinoFaltando()
        {
            var erros = new List <string>();

            erros.Add("Campo Destino é obrigatorio");

            var origem = new Local("New York", "Ta no meio de Manhattan", 40.76, -73.984);

            var trecho = new Trecho(origem, null);

            var trechoService = new TrechoService();

            var resultado = trechoService.Validar(trecho);

            CollectionAssert.AreEqual(erros, resultado);
        }
        public void TestandoDadosDeOrigemFaltando()
        {
            var erros = new List <string>();

            erros.Add("Campo Origem é obrigatorio");

            var destino = new Local("Roma", "Ta no coliseu de Roma", 41.89, 12.492);

            var trecho = new Trecho(null, destino);

            var trechoService = new TrechoService();

            var resultado = trechoService.Validar(trecho);

            CollectionAssert.AreEqual(erros, resultado);
        }
예제 #22
0
        public IActionResult Post([FromBody] TrechoDto trechoRequest)
        {
            var origem    = localRepository.Obter(trechoRequest.IdOrigem);
            var destino   = localRepository.Obter(trechoRequest.IdDestino);
            var distancia = CalcularDistancia(origem, destino);
            var trecho    = new Trecho(origem, destino, distancia);
            var mensagens = trechoService.Validar(trecho);

            if (mensagens.Count() > 0)
            {
                return(NotFound());
            }
            trechoRepository.SalvarTrecho(trecho);
            contexto.SaveChanges();
            return(CreatedAtRoute("GetTrecho", new { id = trecho.Id }, trecho));
        }
예제 #23
0
        public List <string> Validar(Trecho trecho)
        {
            List <string> mensagens = new List <string>();

            if (trecho.Origem == null)
            {
                mensagens.Add("É necessário informar a Origem");
            }

            if (trecho.Destino == null)
            {
                mensagens.Add("É necessário informar o Destino");
            }

            return(mensagens);
        }
예제 #24
0
 private void BtnAddTrecho_Click(object sender, RoutedEventArgs e)
 {
     if (!String.IsNullOrEmpty(txtTrecho.Text) && !String.IsNullOrEmpty(txtTrecho.Text) && !String.IsNullOrEmpty(txtTrecho.Text))
     {
         Trecho tr = new Trecho {
             NomeTrecho = txtTrecho.Text, PontoInicial = txtPontoIni.Text, PontoFinal = txtPontoFin.Text
         };
         listaDeTrechos.Add(tr);
         txtPontoIni.Text = txtPontoFin.Text;
         txtPontoFin.Text = "";
         txtTrecho.Text   = "";
     }
     else
     {
         MessageBox.Show("Informação faltante no trecho, é necessário inserir todas as informações!");
     }
 }
예제 #25
0
        public void Posso_Cadastrar_Viagem()
        {
            var qtdEsperada       = 1;
            var cadastroDeViagens = new CadastroDeViagens();

            var trecho = Trecho.Novo()
                         .ComOrigemEm("fortaleza")
                         .ComDestinoA("juazeiro do norte");

            var viagem = Viagem.Nova(trecho)
                         .SaindoAs(new DateTime(2011, 05, 08, 09, 00, 00))
                         .ChegandoAs(new DateTime(2011, 05, 08, 18, 00, 00));

            cadastroDeViagens.adiciona(viagem);

            Assert.AreEqual(qtdEsperada, cadastroDeViagens.Total);
        }
예제 #26
0
        public List <Barra> GetBus(int hora)
        {
            List <Barra> buses  = new List <Barra>();
            Trecho       trecho = new Trecho();
            Barra        barra1 = null;
            Barra        barra2 = null;

            bool verificararquivoderede = this.RunFile();
            bool solve     = this.SolveH(hora);
            int  LineCount = DSSLines.First;

            for (int i = 0; i < this.DSSLines.Count; i++)
            {
                trecho = new Trecho();

                if (DSSCktElement.CurrentsMagAng[0] > 0.1)
                {
                    barra1 = new Barra
                    {
                        CodBarra = DSSLines.Bus1.Split('.')[0],
                    };

                    trecho.barra1 = barra1;


                    barra2 = new Barra
                    {
                        CodBarra = DSSLines.Bus2.Split('.')[0],
                    };
                }

                if (!buses.Contains(barra1))
                {
                    buses.Add(barra1);
                }

                if (!buses.Contains(barra2))
                {
                    buses.Add(barra2);
                }

                LineCount = DSSLines.Next;
            }
            return(buses);
        }
        public void TestaServiceCalculoValorTotal()
        {
            var usuario   = new Usuario("Pedroka", "Silva", "12345678910", DateTime.Today, "*****@*****.**", "opa");
            var classeVoo = new ClasseDeVoo("top", 500, 25);

            var origem  = new Local("New York", "Ta no meio de Manhattan", 40.76, -73.984);
            var destino = new Local("Roma", "Ta no coliseu de Roma", 41.89, 12.492);//4279

            var trecho = new Trecho(origem, destino);

            var reserva = new Reserva(classeVoo, trecho, usuario);

            var valorTotalResultado = reserva.ValorTotal;

            var valorEsperado = 107475;

            Assert.AreEqual(valorEsperado, valorTotalResultado);
        }
예제 #28
0
        public void Posso_Pesquisar_Viagens()
        {
            var cidadeOrigem  = "fortaleza";
            var cidadeDestino = "juazeiro do norte";
            var partindoEm    = new DateTime(2011, 05, 07);

            var trecho = Trecho.Novo()
                         .ComOrigemEm(cidadeOrigem)
                         .ComDestinoA(cidadeDestino);

            var juazeiroFortaleza = Viagem.Nova(trecho)
                                    .SaindoAs(new DateTime(2011, 05, 08, 09, 00, 00))
                                    .ChegandoAs(new DateTime(2011, 05, 08, 18, 00, 00));

            var viagensDisponiveis = cadastroDeViagens.pesquisa(cidadeOrigem, cidadeDestino, partindoEm);

            Assert.True(viagensDisponiveis.Select(a => a.Trecho).Contains(trecho));
        }
예제 #29
0
        public static List <string> Validar(Trecho trecho)
        {
            List <string> inconsistencias = new List <string>();

            if (string.IsNullOrEmpty(trecho.Nome?.Trim()))
            {
                inconsistencias.Add($"O campo {nameof(trecho.Nome)} não pode ser nulo.");
            }

            if (GeoCalculator.GetDistance(
                    trecho.LocalA.LatitudeLocal, trecho.LocalA.LongitudeLocal,
                    trecho.LocalB.LatitudeLocal, trecho.LocalB.LongitudeLocal,
                    1) == 0)
            {
                inconsistencias.Add($"Os campos {nameof(trecho.LocalA)} e {nameof(trecho.LocalB)} não podem ser o mesmo.");
            }

            return(inconsistencias);
        }
예제 #30
0
        public List <string> Validar(Trecho trecho)
        {
            List <string> mensagens = new List <string>();

            if (trecho.Origem == null)
            {
                mensagens.Add("Campo Origem é obrigatorio");
            }
            if (trecho.Destino == null)
            {
                mensagens.Add("Campo Destino é obrigatorio");
            }
            if (trecho.Origem == trecho.Destino)
            {
                mensagens.Add("Origem e destino precisam ser diferentes");
            }

            return(mensagens);
        }
예제 #31
0
 public bool TrechoEhValido(Trecho trecho)
 {
     return !(trecho.KmFinal <= trecho.kmInicial);
 }