Esempio n. 1
0
        public override IAnswer execute()
        {
            Database.SeatRequest sr = new Database.SeatRequest ();
            Database.FlightRequest fr = new Database.FlightRequest ();

            List<Database.Seat> databaseSeats = new List<Database.Seat> ();

            List<Database.Flight> flights = fr.fetchFlightFromCodeAndStartDate (flight.Template.Code, flight.StartDate);
            if (flights.Count != 1) {
                throw new Exception("No (unique) flight found with code " + flight.Template.Code + " and start date " + flight.StartDate);
            }
            int flightID =  flights[0].ID;

            if (seatClass != null) {
                Database.ClassRequest cr = new Database.ClassRequest ();
                List<Database.Class> classes = cr.fetchClassFromName (seatClass.Name);
                if(classes.Count != 1){
                    throw new Exception("No (unique) class found with name " + seatClass.Name);
                }
                int classID =  classes[0].ID;

                databaseSeats = sr.fetchSeatFromFlighAndClass (flightID, classID);
            } else {
                databaseSeats = sr.fetchSeatFromFlight (flightID);
            }

            List<Seat> seats = new List<Seat>();
            Database.ClassRequest clr = new Database.ClassRequest();
            foreach (Database.Seat s in databaseSeats) {
                SeatClass sc = new SeatClass(clr.fetchFromID(s.class_)[0].name);
                seats.Add(new Seat(sc, s.number));
            }

            return new AnswerGetSeats(seats);
        }
Esempio n. 2
0
        public override IAnswer execute()
        {
            Database.FlightRequest fr = new Database.FlightRequest ();
            Database.PassengerRequest pr = new Database.PassengerRequest ();
            Database.SeatRequest sr = new Database.SeatRequest ();
            Database.ClassRequest cr = new Database.ClassRequest ();
            Database.AirplaneRequest ar = new Database.AirplaneRequest ();

            List<Database.Class> classes = cr.fetchClassFromName (this.Booking.Seat.SeatClass.Name);
            if (classes.Count != 1) {
                return new AnswerAdd ("No (unique) class found with name " + this.Booking.Seat.SeatClass.Name);
            }
            int classID = classes [0].ID;

            List<Database.Flight> flights = fr.fetchFlightFromCodeAndStartDate (code: this.Booking.Flight.Template.Code, startDate: this.Booking.Flight.StartDate);
            if (flights.Count != 1) {
                return new AnswerAdd("No (unique) flight found with code " + this.Booking.Flight.Template.Code + " at " + this.Booking.Flight.StartDate);
            }
            Database.Flight flight = flights[0];
            int flightID = flight.ID;

            List<Database.Airplane> airplanes = ar.fetchFromID (flight.airplane);
            int airplaneID = airplanes[0].ID;

            List<Database.Seat> seats = sr.fetchSeatFromClassNumberAndAirplane (class_: classID, number: this.Booking.Seat.Number, airplane: airplaneID);
            if (seats.Count != 1) {
                return new AnswerAdd ("No (unique) seat found with number " + this.Booking.Seat.Number + " from class " + this.Booking.Seat.SeatClass.Name);
            }
            int seatID = seats [0].ID;

            List<Database.Passenger> passengers = pr.fetchPassengerFromName (this.Booking.Passenger.Name);
            if (passengers.Count != 1) {
                return new AnswerAdd ("No (unique) passenger found with name " + this.Booking.Passenger.Name);
            }
            int passengerID = passengers [0].ID;

            Database.Booking booking = new Database.Booking (flight: flightID, passenger: passengerID, seat: seatID);
            AnswerAdd aa = new AnswerAdd ();

            try {
                booking.insert();
            } catch (Exception e) {
                aa = new AnswerAdd(e.Message);
            }

            return aa;
        }
Esempio n. 3
0
        public override IAnswer execute()
        {
            List<int> seats = new List<int> ();
            Database.SeatRequest sr = new Database.SeatRequest ();
            Database.ClassRequest cr = new Database.ClassRequest ();
            bool newSeats = false;

            if (this.Airplane.Seats == null) {
                return new AnswerAdd("The seats of the airplane aren't set");
            }

            foreach (Seat s in this.Airplane.Seats) {
                List<Database.Class> classes = cr.fetchClassFromName (s.SeatClass.Name);
                if(classes.Count != 1){
                    return new AnswerAdd("No (unique) class found with name " + s.SeatClass.Name);
                }
                int classID =  classes[0].ID;

                List<Database.Seat> databaseSeats = sr.fetchSeatFromClassAndNumber (class_: classID, number: s.Number);
                if(databaseSeats.Count == 0){
                    Database.Seat s_ = new Database.Seat(classID, s.Number, -1);
                    try {
                        s_.insert();
                    } catch (Exception e){
                        return new AnswerAdd(e.Message);
                    }
                    newSeats = true;
                    databaseSeats = sr.fetchSeatFromClassNumberAndAirplane (class_: classID, number: s.Number, airplane: -1);
                }
                int seatID =  databaseSeats[0].ID;
                seats.Add (seatID);
            }

            Database.Airplane airplane = new Database.Airplane (type: this.Airplane.Type, seat: seats, code: this.Airplane.Code);
            AnswerAdd aa = new AnswerAdd ();
            try {
                int airplaneID = airplane.insert();
                if (newSeats){
                    sr.updateSeats(airplaneID);
                }
            } catch (Exception e) {
                aa = new AnswerAdd(e.Message);
            }

            return aa;
        }
Esempio n. 4
0
        private List<Flight> adapt(List<Database.Flight> dfs)
        {
            Database.FlightTemplateRequest ftr = new Database.FlightTemplateRequest();
            Database.AirlineRequest alr = new Database.AirlineRequest();
            Database.AirplaneRequest apr = new Database.AirplaneRequest();
            Database.LocationRequest lr = new Database.LocationRequest();
            Database.SeatRequest sr = new Database.SeatRequest();
            Database.ClassRequest cr = new Database.ClassRequest();
            Database.CountryRequest cor = new Database.CountryRequest();
            Database.CityRequest cir = new Database.CityRequest();
            Database.AirportRequest ar = new Database.AirportRequest();

            List<Flight> fs = new List<Flight>();
            foreach(Database.Flight f in dfs){
                Database.FlightTemplate ft = ftr.fetchFromID(f.template)[0];
                Database.Airline airline_ = alr.fetchFromID(ft.airline)[0];

                Airline airline = new Airline(Name: airline_.name, Code: airline_.code);
                FlightTemplate template = new FlightTemplate(ft.digits, airline);

                Database.Location l = lr.fetchFromID(f.location)[0];
                Database.Airport startAirport_ = ar.fetchFromID(l.start_airport)[0];
                Database.Airport destinationAirport_ = ar.fetchFromID(l.destination_airport)[0];

                Country startCountry = new Country(cor.fetchFromID(startAirport_.country)[0].name);
                Country destinationCountry = new Country(cor.fetchFromID(destinationAirport_.country)[0].name);

                City startCity = new City(cir.fetchFromID(startAirport_.city)[0].name, startCountry);
                City destinationCity = new City(cir.fetchFromID(destinationAirport_.city)[0].name, destinationCountry);

                Airport startAirport = new Airport(startAirport_.name, startAirport_.code, startCity);
                Airport destinationAirport = new Airport(destinationAirport_.name, destinationAirport_.code, destinationCity);

                Database.Airplane airplane_ = apr.fetchFromID(f.airplane)[0];

                List<Seat> seats = new List<Seat>();
                foreach(int s in airplane_.seat){
                    Database.Seat seat_ = sr.fetchFromID(s)[0];
                    Database.Class seatClass_ = cr.fetchFromID(seat_.class_)[0];
                    SeatClass seatClass = new SeatClass(seatClass_.name);
                    seats.Add(new Seat(seatClass, seat_.number));
                }

                Airplane airplane = new Airplane(airplane_.type, seats, airplane_.code);

                fs.Add(new Flight(template, f.start, f.end, startAirport, destinationAirport, airplane));
            }

            return fs;
        }
Esempio n. 5
0
        private int getClassID()
        {
            int classID = -1;
            if (this.SeatClass != null) {
                Database.ClassRequest cr = new Database.ClassRequest();
                List<Database.Class> classes = cr.fetchClassFromName(this.SeatClass.Name);
                if(classes.Count() != 1){
                    throw new Exception("A (unique) class with name " + this.SeatClass.Name + " could not be found.");
                }
                classID = classes[0].ID;
            }

            return classID;
        }