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); }
/// <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); }
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); }
/// <summary> /// Retorna os dados de todos os aeroportos /// </summary> /// <returns></returns> public static IEnumerable <Aeroporto> GetAllAirports() => OperadoraRepository.GetAirportData();