Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 3
0
        /// <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;
            }
        }
Exemplo n.º 4
0
        /// <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);
        }
Exemplo n.º 5
0
        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);
            });
        }
Exemplo n.º 6
0
        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);
            }
        }
Exemplo n.º 8
0
        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);
            });
        }