Exemple #1
0
 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);
            }
        }