예제 #1
0
        public ActionQueryResult WritePassengerToDatabase(Passenger passenger, out int outputId)
        {
            outputId = -1;

            DatabaseTable passengerTargetTable = new DatabaseTable("passengers");

            passengerTargetTable.AddAttribute("Id");
            passengerTargetTable.AddAttribute("Title");
            passengerTargetTable.AddAttribute("FirstName");
            passengerTargetTable.AddAttribute("LastName");
            passengerTargetTable.AddAttribute("PassportNumber");

            ObjectRelationalMapper <Passenger> passengerMapper = new ObjectRelationalMapper <Passenger>(Config.DB_CONNECTION_STRING, null, passengerTargetTable);

            List <SqlParameter> passengerSqlParams = new List <SqlParameter>();

            passengerSqlParams.Add(new SqlParameter("@Title", passenger.TitleString));
            passengerSqlParams.Add(new SqlParameter("@FirstName", passenger.FirstName));
            passengerSqlParams.Add(new SqlParameter("@LastName", passenger.LastName));

            if (passenger.PassportId != null)
            {
                passengerSqlParams.Add(new SqlParameter("@PassportNumber", passenger.PassportId));
            }

            ActionQueryResult passengerInsertResult = passengerMapper.Insert(passengerSqlParams.ToArray(), "Id", out outputId);

            return(passengerInsertResult);
        }
예제 #2
0
        public FetchResult <Baggage> FetchBaggage(string whereClause = null, SqlParameter[] sqlParams = null)
        {
            DatabaseTable baggageTargetTable = new DatabaseTable("baggage");

            baggageTargetTable.AddAttribute("Id");
            baggageTargetTable.AddAttribute("FlightId");
            baggageTargetTable.AddAttribute("PassengerId");
            baggageTargetTable.AddAttribute("Weight");
            baggageTargetTable.AddAttribute("Fee");

            ObjectRelationalMapper <Baggage> baggageMapper = new ObjectRelationalMapper <Baggage>(Config.DB_CONNECTION_STRING, baggageTargetTable);

            return(baggageMapper.Fetch(attr => new Baggage((int)attr["Id"], (int)attr["FlightId"], (decimal)attr["Weight"], (decimal)attr["Fee"]), whereClause, sqlParams));
        }
예제 #3
0
        public ActionQueryResult WriteRawBookingToDatabase(int passengerId, int flightId, bool isWaiting, out int outputId)
        {
            DatabaseTable bookingTargetTable = new DatabaseTable("bookings");

            bookingTargetTable.AddAttribute("Id");
            bookingTargetTable.AddAttribute("PassengerId");
            bookingTargetTable.AddAttribute("FlightId");
            bookingTargetTable.AddAttribute("IsWaiting");

            ObjectRelationalMapper <Booking> bookingMapper = new ObjectRelationalMapper <Booking>(Config.DB_CONNECTION_STRING, null, bookingTargetTable);

            SqlParameter[] sqlParams = new SqlParameter[] {
                new SqlParameter("@PassengerId", passengerId),
                new SqlParameter("@FlightId", flightId),
                new SqlParameter("@IsWaiting", isWaiting)
            };

            ActionQueryResult bookingQueryResult = bookingMapper.Insert(sqlParams, "Id", out outputId);

            return(bookingQueryResult);
        }
예제 #4
0
        public ActionQueryResult WriteSeatToDatabase(SeatNumber seat, int passengerId, int flightId)
        {
            DatabaseTable seatsTable = new DatabaseTable("seats");

            seatsTable.AddAttribute("PosX");
            seatsTable.AddAttribute("PosY");
            seatsTable.AddAttribute("Id");
            seatsTable.AddAttribute("FlightId");
            seatsTable.AddAttribute("PassengerId");

            ObjectRelationalMapper <Passenger> seatMapper = new ObjectRelationalMapper <Passenger>(Config.DB_CONNECTION_STRING, null, seatsTable);

            ActionQueryResult seatQueryResult = seatMapper.Insert(new SqlParameter[] {
                new SqlParameter("@PosX", seat.X),
                new SqlParameter("@PosY", seat.Y),
                new SqlParameter("@FlightId", flightId),
                new SqlParameter("@PassengerId", passengerId)
            });

            return(seatQueryResult);
        }
예제 #5
0
        public IEnumerable <SeatNumber> FetchTakenSeats(int flightId)
        {
            DatabaseTable seatsTable = new DatabaseTable("seats");

            seatsTable.AddAttribute("PosX");
            seatsTable.AddAttribute("PosY");
            seatsTable.AddAttribute("Id");
            seatsTable.AddAttribute("FlightId");
            seatsTable.AddAttribute("PassengerId");

            ObjectRelationalMapper <SeatNumber> seatNumberMapper = new ObjectRelationalMapper <SeatNumber>(Config.DB_CONNECTION_STRING, seatsTable);

            string whereClause = "FlightId = " + flightId;
            FetchResult <SeatNumber> fetchResultSeatNumbers = seatNumberMapper.Fetch(attr => new SeatNumber((int)attr["PosX"], (int)attr["PosY"]), whereClause);

            if (fetchResultSeatNumbers.HasError)
            {
                return(new SeatNumber[0]);
            }

            return(fetchResultSeatNumbers.RetrievedItems);
        }
예제 #6
0
        public BaggageWindow(Baggage baggage = null)
        {
            InitializeComponent();

            PreviewBaggage = new Baggage();

            PreviewBaggage.PropertyChanged += (sender, e) => btnOkay.IsEnabled = HasValidInput;

            if (baggage != null)
            {
                Baggage = baggage;

                PreviewBaggage.Weight              = baggage.Weight;
                PreviewBaggage.WeightLimit         = baggage.WeightLimit;
                PreviewBaggage.FeePerExtraKilogram = baggage.FeePerExtraKilogram;

                Title = "Gepäckstück bearbeiten";
            }
            else
            {
                Baggage = PreviewBaggage;

                Title = "Gepäckstück hinzufügen";
            }

            DataContext = PreviewBaggage;

            _baggageFeeMapper = new ObjectRelationalMapper <BaggageFeeInfo>(Config.DB_CONNECTION_STRING);

            DatabaseTable baggageFeeTable = new DatabaseTable("baggagefees");

            baggageFeeTable.AddAttribute("Limit");
            baggageFeeTable.AddAttribute("FeePerKilogram");

            _baggageFeeMapper.SourceTable = baggageFeeTable;

            //btnOkay.IsEnabled = HasValidInput;
        }
예제 #7
0
        public ActionQueryResult WriteBaggageToDatabase(Baggage baggage, int passengerId)
        {
            DatabaseTable baggageTargetTable = new DatabaseTable("baggage");

            baggageTargetTable.AddAttribute("Id");
            baggageTargetTable.AddAttribute("FlightId");
            baggageTargetTable.AddAttribute("PassengerId");
            baggageTargetTable.AddAttribute("Weight");
            baggageTargetTable.AddAttribute("Fee");

            ObjectRelationalMapper <Baggage> baggageMapper = new ObjectRelationalMapper <Baggage>(Config.DB_CONNECTION_STRING, null, baggageTargetTable);

            SqlParameter[] sqlParams = new SqlParameter[] {
                new SqlParameter("@FlightId", baggage.FlightId), // TODO: FlightId fehlt! Muss vor Übergabe zugewiesen werden!
                new SqlParameter("@PassengerId", passengerId),
                new SqlParameter("@Weight", baggage.Weight),
                new SqlParameter("@Fee", baggage.Fee)
            };

            ActionQueryResult baggageQueryResult = baggageMapper.Insert(sqlParams);

            return(baggageQueryResult);
        }