public void Fly(char direction) { Coordinates newPosition; switch (direction) { case '^': newPosition = GetCurrentPosition().GetAfterAdjustment(0, 1); break; case 'v': newPosition = GetCurrentPosition().GetAfterAdjustment(0, -1); break; case '>': newPosition = GetCurrentPosition().GetAfterAdjustment(1, 0); break; case '<': newPosition = GetCurrentPosition().GetAfterAdjustment(-1, 0); break; default: newPosition = GetCurrentPosition().GetAfterAdjustment(0, 0); return; } FlightHistory.Add(newPosition); }
public ActionResult <FlightHistory> GetFlightHistoryByOriginalId(long id) { LoginToken <AirlineCompany> airline_token = DesirializeToken(); FlightHistory flightHistory = null; try { flightHistory = _loggedInAirlineFacade.GetFlightHistoryByOriginalId(airline_token, id); if (flightHistory == null) { return(NotFound()); } if (flightHistory.AirlineCompanyId != airline_token.User.Id) { return(Forbid()); } } catch (NotAllowedAirlineActionException) { return(Forbid()); } return(Ok(flightHistory)); }
/// <summary> /// Close an existing flight history row in DB when flight moved out of a station. /// </summary> /// <param name="flight">Flight that has moved.</param> /// <param name="from">Station the flight moved from.</param> private static void CloseFlighHistoryRow(Flight flight, Station from) { FlightHistory flightHistory = flight.History.FirstOrDefault(fh => fh.StationId == from.Id && !fh.LeaveStationTime.HasValue); if (flightHistory is not null) { flightHistory.LeaveStationTime = DateTime.Now; } }
/// <summary> /// Open a new flight history row in DB when flight moved in to new station. /// </summary> /// <param name="flight">Flight that has moved.</param> /// <param name="to">Station the flight moved to.</param> private static void OpenFlightHistoryRow(Flight flight, Station to) { FlightHistory flightHistory = new FlightHistory { StationId = to.Id, EnterStationTime = DateTime.Now }; if (flight.History is null) { flight.History = new List <FlightHistory>(); } flight.History.Add(flightHistory); }
public void Remove_Flight_With_Ticket() { Execute_Test(() => { Flight demi_flight = TestData.Get_Flights_Data()[3]; demi_flight.AirlineCompany = airline_token.User; demi_flight.Id = 1; airline_facade.CancelFlight(airline_token, demi_flight); Assert.AreEqual(airline_facade.GetAllFlights(airline_token).Count, 1); FlightHistory flightHistory = airline_facade.GetFlightHistoryByOriginalId(airline_token, demi_flight.Id); Assert.AreEqual(airline_facade.GetAllTicketsByFlight(airline_token, demi_flight).Count, 0); Assert.AreEqual(airline_facade.GetFlightHistoryByOriginalId(airline_token, demi_flight.Id).Id, 1); }); }
public FlightHistory GetFlightHistoryByOriginalId(LoginToken <AirlineCompany> token, long original_id) { FlightHistory result = null; result = Execute(() => { result = _flightsTicketsHistoryDAO.GetFlightHistory(original_id); if (result != null && token.User.Id != result.AirlineCompanyId) { throw new NotAllowedAirlineActionException($"{token.User.Name} company not allowed to view the details of {result.AirlineCompanyName}'s cancelled flight id: {result.OriginalId}"); } return(result); }, new { Token = token, OriginalId = original_id }, _logger); return(result); }
public FlightHistory GetFlightHistory(long original_flight_id) { NpgsqlConnection conn = null; FlightHistory flightHistory = null; try { conn = DbConnectionPool.Instance.GetConnection(); string procedure = "sp_get_flight_history_by_original_id"; NpgsqlCommand command = new NpgsqlCommand(procedure, conn); command.Parameters.Add(new NpgsqlParameter("_original_id", original_flight_id)); command.CommandType = System.Data.CommandType.StoredProcedure; var reader = command.ExecuteReader(); if (reader.Read()) { flightHistory = new FlightHistory { Id = (long)reader["id"], OriginalId = (long)reader["flight_original_id"], AirlineCompanyId = (long)reader["airline_company_id"], AirlineCompanyName = (string)reader["airline_company_name"], OriginCountryId = (int)reader["origin_country_id"], DestinationCountryId = (int)reader["destination_country_id"], DepartureTime = (DateTime)reader["departure_time"], LandingTime = (DateTime)reader["landing_time"], RemainingTickets = (int)reader["remaining_tickets"], FlightStatus = (FlightStatus)reader["flight_status"] }; } return(flightHistory); } catch (Exception ex) { throw ex; } finally { DbConnectionPool.Instance.ReturnConnection(conn); } }
public void Remove_Flight() { Execute_Test(() => { Flight demi_flight = TestData.Get_Flights_Data()[0]; long flight_id = airline_facade.CreateFlight(airline_token, demi_flight); demi_flight.Id = flight_id; airline_facade.CancelFlight(airline_token, demi_flight); Assert.AreEqual(airline_facade.GetAllFlights(airline_token).Count, 2); FlightHistory flightHistory = airline_facade.GetFlightHistoryByOriginalId(airline_token, flight_id); Assert.AreEqual(flightHistory.Id, 1); Assert.AreEqual(flightHistory.AirlineCompanyId, demi_flight.AirlineCompany.Id); Assert.AreEqual(flightHistory.AirlineCompanyName, demi_flight.AirlineCompany.Name); TestData.CompareDates(flightHistory.DepartureTime, demi_flight.DepartureTime); TestData.CompareDates(flightHistory.LandingTime, demi_flight.LandingTime); Assert.AreEqual(flightHistory.OriginCountryId, demi_flight.OriginCountryId); Assert.AreEqual(flightHistory.DestinationCountryId, demi_flight.DestinationCountryId); Assert.AreEqual(flightHistory.RemainingTickets, demi_flight.RemainingTickets); Assert.AreEqual(flightHistory.FlightStatus, FlightStatus.Cancelled_By_Company); }); }