Example #1
0
        public OperadoraControllerTest()
        {
            var options = new DbContextOptionsBuilder <PlanoDBContext>()
                          .UseInMemoryDatabase(databaseName: "OperadoraTeste").Options;

            var context = new PlanoDBContext(options);

            if (!context.Operadoras.Any())
            {
                context.Operadoras.Add(new Operadora {
                    Nome = "Vivo"
                });
                context.Operadoras.Add(new Operadora {
                    Nome = "Tim"
                });
                context.Operadoras.Add(new Operadora {
                    Nome = "Claro"
                });
                context.SaveChanges();
            }

            _contextTest = context;
            var _repo = new OperadoraRepository(context);

            _controller = new OperadoraController(_repo);
        }
Example #2
0
        /// <summary>
        /// Retorna os dados de todos os voos e suas escalas
        /// </summary>
        /// <param name="origem">Origem do vôo</param>
        /// <param name="destino">Destino do vôo</param>
        /// <param name="data">Data de partida do vôo</param>
        /// <returns></returns>
        public static Voo GetFlyWithScale(string origem, string destino, DateTime data)
        {
            // obtem apenas as horas da data.
            string hora = data.ToString("HH:mm:ss");

            // separa pelo caracter, e obtem o array de horario.
            string[] horas = hora.Split(':');

            // cria o horas minutos
            TimeSpan horasMinutos = new TimeSpan(Convert.ToInt32(horas[0]), Convert.ToInt32(hora[1]), Convert.ToInt32(hora[2]));

            // adiciona 12 horas.
            TimeSpan proximasHoras = horasMinutos.Add(new TimeSpan(12, 0, 0));

            // formata a data para o padrao.
            string diaSaida = data.ToString("yyyy-MM-dd");

            // busca todos os voos
            List <Voo> ListaVoos = OperadoraRepository.GetFlyData();

            // busca os voo com mesma origem de saida, no mesmo dia, nas proximas 12horas
            List <Voo> OrigemSimilar = ListaVoos.Where(v => v.Origem == origem && v.DataSaida.ToString("yyyy-MM-dd") == diaSaida && v.Saida <= proximasHoras).ToList();

            // lista de escalas.
            List <Voo> escalas = new List <Voo>();

            // objeto de ultima escala.
            Voo UltimaEscala;

            foreach (Voo voo in OrigemSimilar)
            {
                // caso na lista de voos, haja alguem que saia do seu destino, e o destino seja o destino final, encontrou a 2 e ultima escala.
                UltimaEscala = ListaVoos.Where(v => v.Origem == voo.Destino && v.Destino == destino)?.FirstOrDefault();

                // se encontrou a ultima escala, termina o loop, limitando os Voo a apenas 2 escalas.
                if (UltimaEscala != null)
                {
                    // salva a primeira escala
                    escalas.Add(voo);

                    // salva a ultima escala
                    escalas.Add(UltimaEscala);
                    break;
                }
            }

            // ternario para setar nome das operadoras aereas.
            escalas.Select(c => c.Operadora = c.idOperadora == 1? "99planes" : "UberAir").ToList();

            Voo retorno = new Voo {
                Origem    = origem,
                Destino   = destino,
                DataSaida = Convert.ToDateTime(diaSaida),
                Saida     = escalas.First().Saida,
                Chegada   = escalas.Last().Chegada,
                trechos   = escalas
            };

            return(retorno);
        }
Example #3
0
        public string DataValidate(int idOperadora, int idTipoPlano, List <string> listDDD)
        {
            string error_message = string.Empty;
            IOperadoraRepository _operadoraRepo = new OperadoraRepository(_context);
            ITipoPlanoRepository _tipoplanoRepo = new TipoPlanoRepository(_context);
            IDDDRepository       _dddRepo       = new DDDRepository(_context);

            // Todos os dados já devem existir na base de dados
            if (_operadoraRepo.Find(idOperadora) == null)
            {
                error_message = "Operadora não encontrada. ";
            }
            if (_tipoplanoRepo.Find(idTipoPlano) == null)
            {
                error_message += "Tipo de Plano não encontrado. ";
            }

            bool tem_ddd_duplicado = listDDD.GroupBy(n => n).Any(c => c.Count() > 1);

            if (tem_ddd_duplicado)
            {
                error_message += "DDD não encontrado. ";
            }
            foreach (string itemDDD in listDDD)
            {
                if (_dddRepo.Find(itemDDD) == null)
                {
                    error_message += "DDD não encontrado. ";
                }
            }
            _operadoraRepo = null;
            _tipoplanoRepo = null;
            _dddRepo       = null;
            return(error_message);
        }
Example #4
0
 /// <summary>
 /// Retorna os dados de todos os aeroportos
 /// </summary>
 /// <returns></returns>
 public static IEnumerable <Aeroporto> GetAllAirports() => OperadoraRepository.GetAirportData();