public bool CancelAllFlights(LoginToken <AirlineCompany> token) { if (CheckToken(token)) { List <Flight> allFlights = _flightDAO.GetAll(); _ticketDAO.DeleteAll(); foreach (Flight flight in allFlights) { _flightHistoryDAO.Add(flight.ConvertToHistoryObject <Flight, FlightsHistory>()); HistoryTracking thisFlightTrackingInfo = new HistoryTracking(); thisFlightTrackingInfo.HISTORY_ENTRY_ID = flight.ID; thisFlightTrackingInfo.HISTORY_ENTRY_KIND = flight.GetType().Name; thisFlightTrackingInfo.HISTORY_ENTRY_TIME = DateTime.UtcNow; _historyTrackingDAO.Add(thisFlightTrackingInfo); _flightDAO.Remove(flight); } if (_ticketDAO.GetAll().Count == 0 && _flightDAO.GetAll().Count == 0) { return(true); } } return(false); }
public bool CancelTicket(LoginToken <Customer> token, Ticket ticket) { if (CheckToken(token)) { if (IsSomethingExists(ticket)) { _ticketHistoryDAO.Add(ticket.ConvertToHistoryObject <Ticket, TicketsHistory>()); HistoryTracking thisTicketTrackingInfo = new HistoryTracking(); thisTicketTrackingInfo.HISTORY_ENTRY_ID = ticket.ID; thisTicketTrackingInfo.HISTORY_ENTRY_KIND = ticket.GetType().Name; thisTicketTrackingInfo.HISTORY_ENTRY_TIME = DateTime.UtcNow; _historyTrackingDAO.Add(thisTicketTrackingInfo); _ticketDAO.Remove(ticket); return(true); } } return(false); }
public bool CancelFlight(LoginToken <AirlineCompany> token, Flight flight) { if (CheckToken(token)) { if (IsSomethingExists(flight)) { _flightHistoryDAO.Add(flight.ConvertToHistoryObject <Flight, FlightsHistory>()); HistoryTracking thisFlightTrackingInfo = new HistoryTracking(); thisFlightTrackingInfo.HISTORY_ENTRY_ID = flight.ID; thisFlightTrackingInfo.HISTORY_ENTRY_KIND = flight.GetType().Name; thisFlightTrackingInfo.HISTORY_ENTRY_TIME = DateTime.UtcNow; _historyTrackingDAO.Add(thisFlightTrackingInfo); _flightDAO.Remove(flight); return(true); } } return(false); }
/// <summary> /// Singleton - private constructor, /// acsess the clas by it's name and the method GetInstance instead. /// </summary> private FlyingCenterSystem() { try { _threadTimeDelatyMilliseconds = int.Parse(ConfigurationManager.AppSettings["ThreadDelayTime"]); } catch (ArgumentNullException) { _threadTimeDelatyMilliseconds = 86400000; } _wakeUpAndSing = new Thread(() => { Thread.Sleep(_threadTimeDelatyMilliseconds); var _currentFlightDAO = this.CreateApproptiateDAOInstance <Flight>(); var _currentFlightHistoryDAO = this.CreateApproptiateDAOInstance <FlightsHistory>(); var _currentTicketsDAO = this.CreateApproptiateDAOInstance <Ticket>(); var _currentTicketHistoryDAO = this.CreateApproptiateDAOInstance <TicketsHistory>(); var _currentHistoryTrackingDAO = this.CreateApproptiateDAOInstance <HistoryTracking>(); foreach (var s_Flight in _currentFlightDAO.GetAll()) { if (s_Flight.LANDING_TIME.Hour - DateTime.Now.Hour > 3) { FlightsHistory historyItemFlight = new FlightsHistory(); for (int i = 0; i < s_Flight.GetType().GetProperties().Length; i++) { historyItemFlight.GetType().GetProperties()[i].SetValue(historyItemFlight, s_Flight.GetType().GetProperties()[i].GetValue(s_Flight)); } _currentFlightHistoryDAO.Add(historyItemFlight); HistoryTracking thisFlightTrackingInfo = new HistoryTracking(); thisFlightTrackingInfo.HISTORY_ENTRY_ID = s_Flight.ID; thisFlightTrackingInfo.HISTORY_ENTRY_KIND = s_Flight.GetType().Name; thisFlightTrackingInfo.HISTORY_ENTRY_TIME = DateTime.UtcNow; _currentHistoryTrackingDAO.Add(thisFlightTrackingInfo); _currentFlightDAO.Remove(s_Flight); Ticket ticketFromFlight = _currentTicketsDAO.GetSomethingBySomethingInternal(s_Flight.ID, (int)TicketPropertyNumber.FLIGHT_ID); TicketsHistory historyItemTicket = new TicketsHistory(); for (int i = 0; i < ticketFromFlight.GetType().GetProperties().Length; i++) { historyItemTicket.GetType().GetProperties()[i].SetValue(historyItemTicket, ticketFromFlight.GetType().GetProperties()[i].GetValue(ticketFromFlight)); } _currentTicketHistoryDAO.Add(historyItemTicket); HistoryTracking thisTicketTrackingInfo = new HistoryTracking(); thisTicketTrackingInfo.HISTORY_ENTRY_ID = ticketFromFlight.ID; thisTicketTrackingInfo.HISTORY_ENTRY_KIND = ticketFromFlight.GetType().Name; thisTicketTrackingInfo.HISTORY_ENTRY_TIME = DateTime.UtcNow; _currentHistoryTrackingDAO.Add(thisTicketTrackingInfo); _currentTicketsDAO.Remove(ticketFromFlight); } } }); _wakeUpAndSing.Start(); }