public async Task <DepartureTimes> GetDepartureTimesByTime(DateTime time) { return(await _departureTRepository.GetDepartureTimesByTime(time)); }
public async Task <List <Tickets> > GetTicketsByCtry_Time(string origin, string destination, DateTime departureTime) { List <Tickets> lst = new List <Tickets>(); Countries originCtry = await _countriesRepository.GetCountryByName(origin); Countries destinationCtry = await _countriesRepository.GetCountryByName(destination); bool noTime = false; DepartureTimes departureTimes = new DepartureTimes(); List <Guid> lstdepTID = new List <Guid>(); List <DepartureTimes> lstDepTimes = new List <DepartureTimes>(); if (departureTime.Hour == 00) { noTime = true; } else { noTime = false; } if (noTime == true) { for (int i = 4; i <= 22;) { DateTime times = departureTime.AddHours(i); lstDepTimes.Add(await _departureTRepository.GetDepartureTimesByTime(times)); i += 2; } int ix = 0; foreach (var item in lstDepTimes) { departureTimes = await _departureTRepository.GetDepartureTimesByTime(lstDepTimes[ix].Time); ix += 1; lstdepTID.Add(departureTimes.ID); using (SqlConnection con = new SqlConnection(connectionString)) { string sql = "Select * From Tickets Where CountryID = @Origin"; SqlCommand cmd = new SqlCommand(sql, con) { CommandType = System.Data.CommandType.Text, }; cmd.Parameters.AddWithValue("@Origin", originCtry.ID); con.Open(); SqlDataReader reader = await cmd.ExecuteReaderAsync(); lst = await GetDataByDestDepT(reader, destinationCtry.ID, lstdepTID); con.Close(); } } return(lst); } else { DepartureTimes depTime = await _departureTRepository.GetDepartureTimesByTime(departureTime); List <Guid> lstdepTime = new List <Guid> { depTime.ID }; using (SqlConnection con = new SqlConnection(connectionString)) { string sql = "Select * From Tickets Where CountryID = @Origin"; SqlCommand cmd = new SqlCommand(sql, con) { CommandType = System.Data.CommandType.Text, }; cmd.Parameters.AddWithValue("@Origin", originCtry.ID); con.Open(); SqlDataReader reader = await cmd.ExecuteReaderAsync(); lst = await GetDataByDestDepT(reader, destinationCtry.ID, lstdepTime); con.Close(); } return(lst); } }