public void cancel(string gate, DailyFlights fligth) { List <FreeTimes> list = FlightsPool.availableTimes[gate]; FreeTimes findItem = null; bool findFlg = false; List <FreeTimes> removedList = new List <FreeTimes>(); foreach (FreeTimes value in list) { if (fligth.ArrivalTime == value.EndTime && findFlg == false) { value.EndTime = fligth.DepartueTime; findFlg = true; findItem = value; } else if (findFlg == true && findItem.EndTime == value.StartTime) { findItem.EndTime = value.EndTime; removedList.Add(value); } } if (findFlg == false) { list.Add(new FreeTimes(fligth.ArrivalTime, fligth.DepartueTime)); } else { FlightsPool.availableTimes[gate] = list.Except(removedList).ToList(); } FlightsPool.todayFlights[gate].Remove(fligth); }
public bool add(String gate, DailyFlights fligth) { List <FreeTimes> list = FlightsPool.availableTimes[gate]; FreeTimes item = null; foreach (FreeTimes value in list) { if (fligth.ArrivalTime >= value.StartTime && fligth.DepartueTime <= value.EndTime) { item = value; break; } } if (item != null) { list.Remove(item); if (fligth.ArrivalTime > item.StartTime) { list.Add(new FreeTimes(item.StartTime, fligth.ArrivalTime)); } if (fligth.DepartueTime < item.EndTime) { list.Add(new FreeTimes(fligth.DepartueTime, item.EndTime)); } FlightsPool.todayFlights[gate].Add(fligth); return(true); } return(false); }