//Fetch new bookings, gets info from front-end : Seb
        public dynamic fetchData(Dictionary <string, object> details)
        {
            string connectionString          = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=PrimaryDB.mdb",
                   secondaryConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=SecondaryDB.mdb";
            string readCustomerID            = "SELECT @@IDENTITY AS CustomerID FROM Customers";
            var    dbFunc = new DatabaseFunctions();

            // test ID
            //details["FlightNumber"] = 1200;
            //details["HotelID"] = 4510;
            object[] customers = { "@CustomerFirstName", details["CustomerFirstName"], "@CustomerLastName",      details["CustomerLastName"], "@Gender",  details["Gender"],
                                   "@PassportNumber",    details["PassportNumber"],    "@Nationality",           details["Nationality"],      "@Address", details["Address"],"@PostCode",
                                   details["PostCode"],  "@ContactNumber",             details["ContactNumber"], "@EmailAddress",             details["EmailAddress"] };
            details["CustomerID"] = dbFunc.writeIDDatabase(customerWriteDB, readCustomerID, connectionString, customers); // get customerID from insert query
            object[] flights = { "@FlightNumber",       details["FlightNumber"],  "@CustomerID",  details["CustomerID"],  "@HotelID",    details["HotelID"],
                                 "@FlightType",         details["FlightType"],    "@Departure",   details["Departure"],   "@Arrival",    details["Arrival"],
                                 "@DepartureTime",      details["DepartureTime"], "@ArrivalTime", details["ArrivalTime"], "@AdultPrice",
                                 details["AdultPrice"], "@ChildPrice",            details["ChildPrice"] };
            dbFunc.writeDatabase(flightWriteDB, connectionString, flights);
            object[] hotel = { "@HotelID",             details["HotelID"],  "@StarRating",    details["StarRating"],    "@CheckIn", details["CheckIn"],
                               "@CheckOut",            details["CheckOut"], "@PricePerNight", details["PricePerNight"], "@Country", details["Arrival"],"@NumberPlate",
                               details["NumberPlate"], "@FlightNumber",     details["FlightNumber"] };
            dbFunc.writeDatabase(hotelWriteDB, connectionString, hotel);
            object[] cars = { "@CarID",   details["CarID"],   "@NumberPlate", details["NumberPlate"], "@HotelID", details["HotelID"], "@Make",        details["Make"], "@Model", details["Model"],
                              "@CarType", details["CarType"], "@GearBox",     details["GearBox"],     "@Seats",   details["Seats"],   "@PricePerDay", details["PricePerDay"] };
            dbFunc.writeDatabase(carsWriteDB, connectionString, cars);
            return(true);
        }
Example #2
0
        public static void Main(string[] args)
        {
            // Primary Database + queries
            string connectionString          = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=PrimaryDB.mdb",
                   secondaryConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=SecondaryDB.mdb",
                   editDB           = "UPDATE Customers SET [CustomerFirstName] = @CustomerFirstName, [CustomerLastName] = @CustomerLastName WHERE [CustomerID] = @CustomerID",
                   checkDuplicateDB = "SELECT COUNT(*) FROM Customers WHERE [CustomerFirstName] = @CustomerFirstName AND [CustomerLastName] = @CustomerLastName",
                   readDB           = "SELECT * FROM Customers",
                   deleteDB         = "DELETE FROM Customers WHERE CustomerID BETWEEN 3 AND 100",
                   deleteFDB        = "DELETE FROM Flights WHERE ID BETWEEN 3 AND 100",
                   deleteHDB        = "DELETE FROM Hotel WHERE ID BETWEEN 3 AND 100",
                   deleteCDB        = "DELETE FROM Cars WHERE ID BETWEEN 3 AND 100";
            // batch update queries
            string fetchCustomersDB = "INSERT INTO SecondaryDB.mdb.Customers SELECT * FROM Customers",
                   fetchFlightsDB   = "INSERT INTO SecondaryDB.mdb.Flights SELECT * FROM Flights",
                   fetchHotelDB     = "INSERT INTO SecondaryDB.mdb.Hotel SELECT * FROM Hotel",
                   fetchCarsDB      = "INSERT INTO SecondaryDB.mdb.Cars SELECT * FROM Cars";

            string[] dbList    = { fetchCustomersDB, fetchFlightsDB, fetchHotelDB, fetchCarsDB };
            object[] duplicate = { "@CustomerFirstName", "Louis", "@CustomerLastName", "Gaye" };
            object[] edit      = { "@CustomerFirstName", "Lewis", "@CustomerLastName", "Guy", "@CustomerEmail", 1 };
            // Must initalise class before use
            var dbFunc            = new DatabaseFunctions();
            var primaryDatabase   = new PrimaryDatabase();
            var secondaryDatabase = new SecondaryDatabase();
            //bool checkRecovery = SecondaryDatabase.recoveryProgress;
            // tests
            //bool query = primaryDatabase.batchUpdate(dbList, false);
            //bool squery = secondaryDatabase.batchRecovery();
            var details = dbFunc.createDict();
            //primaryDatabase.fetchData(details);
            // Test database

            /*
             * dbFunc.deleteDatabase(deleteDB, connectionString);
             * dbFunc.deleteDatabase(deleteFDB, connectionString);
             * dbFunc.deleteDatabase(deleteHDB, connectionString);
             * dbFunc.deleteDatabase(deleteCDB, connectionString);*/
            //dbFunc.editDatabase(editDB, connectionString, edit);
            //dbFunc.readDatabase(readDB, connectionString);
            //dbFunc.checkDuplicateDatabase(checkDuplicateDB, connectionString, duplicate);
        }