예제 #1
0
        public TestInfo()
        {
            ClearDB();
            FC     = FlyingCenterSystem.GetInstance();
            adminT = (LoginToken <Administrator>)FC.Login(FlightCenterConfig.ADMIN_NAME, FlightCenterConfig.ADMIN_PASSWORD);
            adminF = (LoggedInAdministratorFacade)FC.GetFacade(adminT);
            Customer customer = CreateNewTestCustomer();

            customerT = (LoginToken <Customer>)FC.Login(customer.UserName, customer.Password);
            customerF = (LoggedInCustomerFacade)FC.GetFacade(customerT);
            AirLineCompany airlineCompany = CreateNewTestAirlineCompany();

            airlineT   = (LoginToken <AirLineCompany>)FC.Login(airlineCompany.UserName, airlineCompany.Password);
            airlineF   = (LoggedInAirlineFacade)FC.GetFacade(airlineT);
            anonymousF = (AnonymousUserFacade)FC.GetFacade(null);
        }
예제 #2
0
        public void FacadeTest()
        {
            FlightCenterConfig.CleanAllDatabase();
            FlyingCenterSystem          flyingCenterSystem = FlyingCenterSystem.GetInstance();
            LoggedInAdministratorFacade loggedIn           = new LoggedInAdministratorFacade();
            LoggedInAdministratorFacade loggedIn2          = new LoggedInAdministratorFacade();

            try
            {
                Assert.AreEqual(loggedIn, loggedIn2);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
        public void UpdateCustomer_CustomerFound()
        {
            LoggedInAdministratorFacade administratorFacade = GetAdministratorFacade("admin", "9999");
            Customer customer = new Customer("foo", "goo", "coo", "555", "ter", 66464, 654321);

            administratorFacade.UpdateCustomerDetails(administratorFacade.LoginToken, customer);
            int facadeIndex = UserLogin("coo", "555");
            LoggedInCustomerFacade customerFacade = (LoggedInCustomerFacade)FlyingCenterSystem.FacadeList[facadeIndex];

            Assert.AreEqual(customer.Address, customerFacade.LoginToken.User.Address);
            Assert.AreEqual(customer.CreditCardNumber, customerFacade.LoginToken.User.CreditCardNumber);
            Assert.AreEqual(customer.FirstName, customerFacade.LoginToken.User.FirstName);
            Assert.AreEqual(customer.LastName, customerFacade.LoginToken.User.LastName);
            Assert.AreEqual(customer.Password, customerFacade.LoginToken.User.Password);
            Assert.AreEqual(customer.PhoneNo, customerFacade.LoginToken.User.PhoneNo);
        }
예제 #4
0
        private void GenerateCostumers(LoggedInAdministratorFacade facade, LoginToken <Administrator> loginToken)
        {
            List <Customer> customers = new List <Customer>();

            Converters.ConvertToCustomer(RandomUsers, customers, CustomersAmount);
            for (int i = 0; i < customers.Count; i++)
            {
                try
                {
                    facade.CreateNewCustomer(loginToken, customers[i]);
                }
                catch (Exception e)
                {
                    MessageBox.Show($"Username {customers[i].Username} already exists", "Generator Error", MessageBoxButton.OK, MessageBoxImage.Error);
                }
            }
        }
        public void UpdateAdmin()
        {
            UserRepository testUr    = new UserRepository("dad", "aes", RolesEnum.admin);
            Admin          testAdmin = new Admin("dav,", "id", 3);

            FlyingCenterSystem.GetInstance().TryLogin(ur.UserName, ur.Password, out ILogin token,
                                                      out FacadeBase facade);
            LoginToken <Admin>          myToken  = token as LoginToken <Admin>;
            LoggedInAdministratorFacade myFacade = facade as LoggedInAdministratorFacade;

            myFacade.CreateNewAdmin(myToken, testUr, testAdmin);
            Admin admin2 = myFacade.GetAdminByid(myToken, testAdmin.ID.ToString());

            testAdmin.FirstName = "tts";
            myFacade.UpdateAdminDetails(myToken, testAdmin);
            Assert.AreNotEqual(admin2.FirstName, testAdmin.FirstName);
        }
        private void Init_Customer_Facade_Data()
        {
            _logger.Debug($"Start Init Customer Tests Data");

            string username = "******";
            string password = "******";

            system.TryLogin(username, password, out ILoginToken admin_token, out FacadeBase admin_facade);
            LoggedInAdministratorFacade loggedInAdministratorFacade = admin_facade as LoggedInAdministratorFacade;
            LoginToken <Administrator>  adminLoginToken             = admin_token as LoginToken <Administrator>;
            int country_id = loggedInAdministratorFacade.CreateNewCountry(adminLoginToken, TestData.Get_Countries_Data()[0]);

            loggedInAdministratorFacade.CreateNewCountry(adminLoginToken, TestData.Get_Countries_Data()[1]);
            loggedInAdministratorFacade.CreateNewCountry(adminLoginToken, TestData.Get_Countries_Data()[2]);
            loggedInAdministratorFacade.CreateNewCustomer(adminLoginToken, TestData.Get_Customers_Data()[0]);
            loggedInAdministratorFacade.CreateNewCustomer(adminLoginToken, TestData.Get_Customers_Data()[1]);

            AirlineCompany airlineCompany = TestData.Get_AirlineCompanies_Data()[0];

            airlineCompany.CountryId = country_id;
            loggedInAdministratorFacade.CreateNewAirlineCompany(adminLoginToken, airlineCompany);
            system.TryLogin(airlineCompany.User.UserName, airlineCompany.User.Password, out ILoginToken airline_token, out FacadeBase airline_facade);
            LoggedInAirlineFacade       loggedInAirlineFacade = airline_facade as LoggedInAirlineFacade;
            LoginToken <AirlineCompany> airlineLoginToken     = airline_token as LoginToken <AirlineCompany>;
            Flight flight  = TestData.Get_Flights_Data()[3];
            Flight flight2 = TestData.Get_Flights_Data()[4];
            Flight flight3 = TestData.Get_Flights_Data()[5];

            long flight_id  = loggedInAirlineFacade.CreateFlight(airlineLoginToken, flight);
            long flight_id2 = loggedInAirlineFacade.CreateFlight(airlineLoginToken, flight2);
            long flight_id3 = loggedInAirlineFacade.CreateFlight(airlineLoginToken, flight3);

            flight.Id  = flight_id;
            flight2.Id = flight_id2;
            flight3.Id = flight_id3;

            system.TryLogin(TestData.Get_Customers_Data()[1].User.UserName, TestData.Get_Customers_Data()[1].User.Password, out ILoginToken token, out FacadeBase facade);
            LoginToken <Customer>  cust_token  = token as LoginToken <Customer>;
            LoggedInCustomerFacade cust_facade = facade as LoggedInCustomerFacade;

            cust_facade.PurchaseTicket(cust_token, flight);

            Login(TestData.Get_Customers_Data()[0].User.UserName, TestData.Get_Customers_Data()[0].User.Password);

            _logger.Debug($"End Init Customer Tests Data");
        }
예제 #7
0
        public void HighesAdminTriesToAddHighestAdminException()
        {
            FlightCenterSystem.Instance.Login(out FacadeBase facadeBase, out ILoginToken loginToken, "danny121121", "fdsaa23");
            LoginToken <Administrator>  token  = (LoginToken <Administrator>)loginToken;
            LoggedInAdministratorFacade facade = (LoggedInAdministratorFacade)facadeBase;

            Administrator administrator = new Administrator
            {
                First_Name = "Shlomi",
                Last_Name  = "Banai",
                Level      = 3,
                User_Id    = 17,
                User       = new User()
            };

            facade.CreateAdmin(token, administrator);
        }
예제 #8
0
        private void Init_Anonymous_Data()
        {
            _logger.Debug($"Start Init Anonymous Tests Data");

            TestsDAOPGSQL.ClearDB();
            string username = "******";
            string password = "******";

            system.TryLogin(username, password, out ILoginToken admin_token, out FacadeBase admin_facade);
            LoggedInAdministratorFacade loggedInAdministratorFacade = admin_facade as LoggedInAdministratorFacade;
            LoginToken <Administrator>  adminLoginToken             = admin_token as LoginToken <Administrator>;
            int country_id = loggedInAdministratorFacade.CreateNewCountry(adminLoginToken, TestData.Get_Countries_Data()[0]);

            loggedInAdministratorFacade.CreateNewCountry(adminLoginToken, TestData.Get_Countries_Data()[1]);
            loggedInAdministratorFacade.CreateNewCountry(adminLoginToken, TestData.Get_Countries_Data()[2]);
            loggedInAdministratorFacade.CreateNewCustomer(adminLoginToken, TestData.Get_Customers_Data()[0]);
            AirlineCompany airlineCompany = TestData.Get_AirlineCompanies_Data()[0];

            airlineCompany.CountryId = country_id;
            loggedInAdministratorFacade.CreateNewAirlineCompany(adminLoginToken, airlineCompany);
            system.TryLogin(TestData.Get_AirlineCompanies_Data()[0].User.UserName, TestData.Get_AirlineCompanies_Data()[0].User.Password, out ILoginToken token, out FacadeBase facade);
            LoginToken <AirlineCompany> airline_token  = token as LoginToken <AirlineCompany>;
            LoggedInAirlineFacade       airline_facade = facade as LoggedInAirlineFacade;
            Flight flight  = TestData.Get_Flights_Data_For_Anonymous_Tests()[0];
            Flight flight2 = TestData.Get_Flights_Data_For_Anonymous_Tests()[1];
            Flight flight3 = TestData.Get_Flights_Data_For_Anonymous_Tests()[2];
            Flight flight4 = TestData.Get_Flights_Data_For_Anonymous_Tests()[3];
            Flight flight5 = TestData.Get_Flights_Data_For_Anonymous_Tests()[4];
            Flight flight6 = TestData.Get_Flights_Data_For_Anonymous_Tests()[5];

            long flight_id  = airline_facade.CreateFlight(airline_token, flight);
            long flight_id2 = airline_facade.CreateFlight(airline_token, flight2);
            long flight_id3 = airline_facade.CreateFlight(airline_token, flight3);
            long flight_id4 = airline_facade.CreateFlight(airline_token, flight4);
            long flight_id5 = airline_facade.CreateFlight(airline_token, flight5);
            long flight_id6 = airline_facade.CreateFlight(airline_token, flight6);

            flight.Id  = flight_id;
            flight2.Id = flight_id2;
            flight3.Id = flight_id3;
            flight4.Id = flight_id4;
            flight5.Id = flight_id5;
            flight6.Id = flight_id6;

            _logger.Debug($"End Init Anonymous Tests Data");
        }
예제 #9
0
        private void AuthenticateAndGetTokenAndGetFacade(out LoginToken <Admin> tokenAdmin,
                                                         out LoggedInAdministratorFacade facadeAdmin)
        {
            // after we learned authentication
            // 1. validate token
            // 2. retrieve LoginToken<Customer>
            // 3. get Customer facade

            tokenAdmin = GetLoginToken();

            // before we learn authentication
            // 1. perform login  -- use real user-name + pwd
            // 2. get the token + facade

            //ILoginService loginService = new LoginService();
            //loginService.TryAdminLogin("manager87", "lF9A7v", out tokenAdmin);
            facadeAdmin = FlightsCenterSystem.GetInstance().GetFacade(tokenAdmin) as LoggedInAdministratorFacade;
        }
        public void AddAnewCountryAndGetIt()
        {
            UserRepository testUr    = new UserRepository("dad", "aes", RolesEnum.admin);
            Admin          testAdmin = new Admin("dav,", "id", 3);

            FlyingCenterSystem.GetInstance().TryLogin(ur.UserName, ur.Password, out ILogin token,
                                                      out FacadeBase facade);
            LoginToken <Admin>          myToken  = token as LoginToken <Admin>;
            LoggedInAdministratorFacade myFacade = facade as LoggedInAdministratorFacade;

            myFacade.CreateNewAdmin(myToken, testUr, testAdmin);
            Country country = new Country("Israel");

            myFacade.CreateNewCountry(myToken, country);
            Country testCounty = myFacade.GetCountryByID(myToken, country.ID.ToString());

            Assert.AreEqual(country.ID, testCounty.ID);
        }
예제 #11
0
        private void GenerateCountries(LoggedInAdministratorFacade facade, LoginToken <Administrator> loginToken)
        {
            List <Country> countries = new List <Country>();

            Converters.ConvertToCountry(RandomCountries, countries, CountriesAmount);
            for (int i = 0; i < CountriesAmount; i++)
            {
                try
                {
                    facade.CreateNewCountry(loginToken, countries[0]);
                    countries.RemoveAt(0);
                }
                catch (Exception e)
                {
                    MessageBox.Show($"Country {countries[i].CountryName} already exists", "Generator Error", MessageBoxButton.OK, MessageBoxImage.Error);
                }
            }
        }
        public void TestForAnonymousController()
        {
            LoggedInAdministratorFacade facade = FlyingCenterSystem.GetInstance().Login(TestResource.adminName, TestResource.adminPassWord, out LoginTokenBase login) as LoggedInAdministratorFacade;
            AirlineCompany company             = new AirlineCompany("sagitair", "999", "888", 1);

            facade.CreateNewAirline(login as LoginToken <Administrator>, company);
            using (HttpClient client = new HttpClient())
            {
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                using (HttpResponseMessage response = client.GetAsync(GetAllCompaniesUrl).Result)
                {
                    using (HttpContent content = response.Content)
                    {
                        content.Headers.Equals(company);
                    }
                }
            }
        }
예제 #13
0
        private void GenerateAirlineCompanies(LoggedInAdministratorFacade facade, LoginToken <Administrator> loginToken)
        {
            List <AirlineCompany> airlineCompanies = new List <AirlineCompany>();
            List <Country>        countries        = (List <Country>)facade.GetAllCountries(loginToken);

            Converters.ConvertToAirlineCompany(RandomUsers, airlineCompanies, countries, AirlineCompaniesAmount);
            for (int i = 0; i < airlineCompanies.Count; i++)
            {
                try
                {
                    facade.CreateNewAirline(loginToken, airlineCompanies[i]);
                }
                catch (Exception e)
                {
                    MessageBox.Show($"Username {airlineCompanies[i].Username} already exists", "Generator Error", MessageBoxButton.OK, MessageBoxImage.Error);
                }
            }
        }
        public IHttpActionResult CreateNewAirlineCompany([FromBody] HTTPAirlineCompany airlineCompany)
        {
            if (airlineCompany.AirlineName == null | airlineCompany.Username == null | airlineCompany.Password == null | airlineCompany.CountryID <= 0)
            {
                return(BadRequest());
            }
            LoginToken <Administrator>  token  = (LoginToken <Administrator>)Request.Properties["User"];
            LoggedInAdministratorFacade facade = (LoggedInAdministratorFacade)(FlyingCenterSystem.GetFlyingCenterSystem().GetFacade(token));

            try
            {
                facade.CreateNewAirline(token, new AirlineCompany(-1, airlineCompany.AirlineName, airlineCompany.Username, airlineCompany.Password, airlineCompany.CountryID));
            }
            catch (UsernameAlreadyExistsException)
            {
                return(StatusCode(HttpStatusCode.Conflict));
            }
            return(Ok());
        }
예제 #15
0
        private void AdministratorDBCreator()
        {
            while (true)
            {
                if (AdministratorDataSet.runThread)
                {
                    List <Administrator> administrators  = new List <Administrator>();
                    RandomGenerator      randomGenerator = new RandomGenerator();

                    if (AdministratorDataSet.listSize > 0)
                    {
                        int ListBoxIndex = GetListBoxIndex($"Creating Administrator Accounts. (0/{AdministratorDataSet.listSize})");
                        for (int index = 1; index <= AdministratorDataSet.listSize; index++)
                        {
                            Administrator administrator = randomGenerator.AdministratorGenerator();
                            if (administrator.UserName == null)
                            {
                                index--;
                                continue;
                            }
                            administrators.Add(administrator);
                            Dispatcher.Invoke(() => LogList[ListBoxIndex] = $"Creating Administrator Accounts. ({index}/{AdministratorDataSet.listSize})");
                            UpdateProgress();
                        }
                    }

                    int facadeIndex = UserLogin("Admin", "9999");
                    LoggedInAdministratorFacade AdminFacade = (LoggedInAdministratorFacade)FlyingCenterSystem.FacadeList[facadeIndex];
                    foreach (Administrator administrator in administrators)
                    {
                        AdminFacade.CreateNewAdministrator(AdminFacade.LoginToken, administrator);
                        UpdateProgress();
                    }
                    GetListBoxIndex($"Administartor Accounts Registered to Database.");
                    AdministratorDataSet.DBCreated.Set();
                    AdministratorDataSet.runThread = false;
                }
                else
                {
                    Thread.Sleep(500);
                }
            }
        }
예제 #16
0
        private void GenerateTickets(LoggedInAdministratorFacade facade, LoginToken <Administrator> loginToken,
                                     FlyingCenterSystem flyingCenterSystem)
        {
            Random          r         = new Random();
            List <Customer> customers = (List <Customer>)facade._customerDAO.GetAll();
            List <Flight>   Flights   = (List <Flight>)facade.GetAllFlights();

            foreach (Customer customer in customers)
            {
                //login as the customer to get access to the PurchaseTicket method
                LoginToken <Customer>  customerLoginToken = flyingCenterSystem.AttemptLoginCustomer(customer.Username, customer.Password);
                LoggedInCustomerFacade customerFacade     = (LoggedInCustomerFacade)FlyingCenterSystem.GetFlyingCenterSystem().GetFacade(customerLoginToken);

                for (int i = 0; i < TicketsPerCustomerAmount; i++)
                {
                    /*in large amounts random might choose many flights that the customer already bought ticket to
                     * therefore i am limiting the amount of times a random chooses this kind of flight to 3 and from there on
                     * im moving to a for loop on all flights*/
                    int isNullCounter = 0;
                    while (isNullCounter < 3)
                    {
                        if (customerFacade.PurchaseTicket(customerLoginToken, Flights[r.Next(0, Flights.Count)]) == null)
                        {
                            isNullCounter++;
                        }
                        else
                        {
                            break;
                        }
                    }
                    if (isNullCounter == 3)
                    {
                        for (int j = 0; j < Flights.Count; i++)
                        {
                            if (customerFacade.PurchaseTicket(customerLoginToken, Flights[r.Next(0, Flights.Count)]) != null)
                            {
                                break;
                            }
                        }
                    }
                }
            }
        }
예제 #17
0
        private void GenerateFlights(LoggedInAdministratorFacade facade, LoginToken <Administrator> loginToken,
                                     FlyingCenterSystem flyingCenterSystem)
        {
            Random r = new Random();
            List <AirlineCompany> airlineCompanies = (List <AirlineCompany>)facade.GetAllAirlineCompanies();
            List <Country>        countries        = (List <Country>)facade.GetAllCountries(loginToken);

            foreach (AirlineCompany airlineCompany in airlineCompanies)
            {
                //login as the airline to get access to the CreateFlight method
                LoginToken <AirlineCompany> AirlineCompanyLoginToken = flyingCenterSystem.AttemptLoginAirlineCompany(airlineCompany.Username, airlineCompany.Password);
                LoggedInAirlineFacade       airlineFacade            = (LoggedInAirlineFacade)FlyingCenterSystem.GetFlyingCenterSystem().GetFacade(AirlineCompanyLoginToken);

                for (int i = 0; i < TicketsPerCustomerAmount; i++)
                {
                    //create departue date
                    DateTime newFlightDeparture = DateTime.Now;
                    newFlightDeparture = newFlightDeparture.AddDays(r.Next(0, 8));
                    newFlightDeparture = newFlightDeparture.AddHours(r.Next(0, 25));
                    newFlightDeparture = newFlightDeparture.AddMinutes(r.Next(0, 61));
                    newFlightDeparture = newFlightDeparture.AddSeconds(r.Next(0, 61));

                    //create landing date
                    DateTime newFlightLanding = newFlightDeparture;
                    newFlightLanding = newFlightLanding.AddHours(r.Next(0, 25));
                    newFlightLanding = newFlightLanding.AddMinutes(r.Next(0, 61));
                    newFlightLanding = newFlightLanding.AddSeconds(r.Next(0, 61));

                    //choose countries for the flight
                    Country country1 = countries[r.Next(0, countries.Count)];
                    Country country2 = null;
                    do
                    {
                        country2 = countries[r.Next(0, countries.Count)];
                    }while (ReferenceEquals(country2, null) || country1.Equals(country2));

                    //create the flight and add it to the DB
                    int    availableTickets = r.Next(30, 61);
                    Flight toAdd            = new Flight(-1, airlineCompany.ID, country1.ID, country2.ID, newFlightDeparture, newFlightLanding, availableTickets, availableTickets);
                    airlineFacade.CreateFlight(AirlineCompanyLoginToken, toAdd);
                }
            }
        }
예제 #18
0
        private void AirlineCompanyDBCreator()
        {
            while (true)
            {
                if (AirlineDataSet.runThread)
                {
                    airlineCompanies = new List <AirlineCompany>();
                    RandomGenerator randomGenerator = new RandomGenerator();

                    int listBoxIndex = GetListBoxIndex($"Creating Airline Company Accounts. (0/{AirlineDataSet.listSize})");
                    for (int index = 1; index <= AirlineDataSet.listSize; index++)
                    {
                        AirlineCompany airlineCompany = randomGenerator.AirlineCompanyGenerator();
                        if (airlineCompany.UserName == null)
                        {
                            index--;
                            continue;
                        }
                        airlineCompany = new AirlineCompany(airlineCompany.AirlineName, airlineCompany.UserName, airlineCompany.Password, Random.Next(1, CountriesDataSet.listSize + 1));
                        airlineCompanies.Add(airlineCompany);
                        Dispatcher.Invoke(() => LogList[listBoxIndex] = $"Creating Airline Company Accounts. ({index}/{AirlineDataSet.listSize})");
                        UpdateProgress();
                    }
                    CountriesDataSet.DBCreated.WaitOne();

                    int facadeIndex = UserLogin("Admin", "9999");
                    LoggedInAdministratorFacade AdminFacade = (LoggedInAdministratorFacade)FlyingCenterSystem.FacadeList[facadeIndex];
                    foreach (AirlineCompany airline in airlineCompanies)
                    {
                        AdminFacade.CreateNewAirline(AdminFacade.LoginToken, airline);
                        UpdateProgress();
                    }
                    GetListBoxIndex($"Airline Company Accounts Registered to Database.");
                    AirlineDataSet.DBCreated.Set();
                    AirlineDataSet.runThread = false;
                }
                else
                {
                    Thread.Sleep(500);
                }
            }
        }
예제 #19
0
        public void getTokenAndGetFacade(out LoginToken <Admin> tokenAdmin, out LoggedInAdministratorFacade facadeAdmin,
                                         out LoginToken <AirlineCompany> tokenAirline, out LoggedsInAirlineFacade fasadeAirline)
        {
            AnonymousUserFacade facade = FlightsCenterSystem.GetInstance().GetFacade <Anonymous>(null) as AnonymousUserFacade;

            ILoginService loginService = new LoginService();

            loginService.TryAdminLogin(FlightCenterConfig.ADMIN_NAME, FlightCenterConfig.ADMIN_PASSWORD, out tokenAdmin);
            facadeAdmin = FlightsCenterSystem.GetInstance().GetFacade(tokenAdmin) as LoggedInAdministratorFacade;

            facadeAdmin.CreateNewAirline(tokenAdmin, CreateAirlineCompanyForTest());

            AirlineCompany airline = airlineCompanyDAOPGSQL.GetAirlineByUserame(TestData.CreateAirlineUser_Username);

            tokenAirline = new LoginToken <AirlineCompany>()
            {
                User = airline
            };
            fasadeAirline = FlightsCenterSystem.GetInstance().GetFacade(tokenAirline) as LoggedsInAirlineFacade;
        }
예제 #20
0
        public void AdminFacade_CreateNewAirline_CompanyFound()
        {
            LoggedInAdministratorFacade facade = FlyingCenterSystem.GetInstance().Login(TestResource.adminName, TestResource.adminPassWord, out LoginTokenBase login) as LoggedInAdministratorFacade;

            AirlineCompany airline = new AirlineCompany("ELAL", "777", "777", 1);

            AirlineCompany company = new AirlineCompany();

            company = facade.CreateNewAirline(login as LoginToken <Administrator>, airline);

            Assert.AreNotEqual(null, company);

            Assert.AreEqual(TestResource.AIRLINE_NAME, company.AirlineName);

            Assert.AreEqual(TestResource.AIRLINE_PASSWORD, company.Password);

            Assert.AreEqual(TestResource.AIRLINE_USERNAME, company.UserName);

            Assert.AreEqual(TestResource.COUNTRY_CODE, company.CountryCode);
        }
예제 #21
0
        public IHttpActionResult CreateNewCustomer([FromBody] Customer customer)
        {
            LoginToken <Administrator>  admintoken  = (LoginToken <Administrator>)Request.Properties["adminToken"];
            LoggedInAdministratorFacade adminFacade = (LoggedInAdministratorFacade)Request.Properties["adminFacade"];

            if (customer == null)
            {
                return(Content(HttpStatusCode.NotAcceptable, $"you didn't fill out the information correctly"));
            }

            try
            {
                adminFacade.CreateNewCustomer(admintoken, customer);
                return(Ok($"customer {customer.USER_NAME} was created"));
            }
            catch (Exception e)
            {
                return(Content(HttpStatusCode.NotFound, e.Message));
            }
        }
예제 #22
0
        public IHttpActionResult CreateNewAirline([FromBody] AirlineCompany airline)
        {
            LoginToken <Administrator>  admintoken  = (LoginToken <Administrator>)Request.Properties["adminToken"];
            LoggedInAdministratorFacade adminFacade = (LoggedInAdministratorFacade)Request.Properties["adminFacade"];

            if (airline == null)
            {
                return(Content(HttpStatusCode.NotAcceptable, "you didn't send an airline to post"));
            }

            try
            {
                adminFacade.CreateNewAirline(admintoken, airline);
                return(Ok($"airline {airline.AIRLINE_NAME} created"));
            }
            catch (Exception e)
            {
                return(Content(HttpStatusCode.NotAcceptable, e.Message));
            }
        }
        public void GetAllMyFlights()
        {
            UserRepository testUr    = new UserRepository("dad", "aes", RolesEnum.admin);
            Admin          testAdmin = new Admin("dav,", "id", 3);

            FlyingCenterSystem.GetInstance().TryLogin(ur.UserName, ur.Password, out ILogin token,
                                                      out FacadeBase facade);
            LoginToken <Admin>          myToken  = token as LoginToken <Admin>;
            LoggedInAdministratorFacade myFacade = facade as LoggedInAdministratorFacade;

            myFacade.CreateNewAdmin(myToken, testUr, testAdmin);
            Country country = new Country("Israel");

            myFacade.CreateNewCountry(myToken, country);
            AirlineCompany airlineCompany = new AirlineCompany("ElALL", 1, country.ID);
            UserRepository airlineTestUr  = new UserRepository("rad", "ass", RolesEnum.airline);

            myFacade.CreateNewAirline(myToken, airlineTestUr, airlineCompany, country);
            Flight flight = new Flight(DateTime.Now, DateTime.Now, 50, airlineCompany.ID, country.ID, country.ID);

            FlyingCenterSystem.GetInstance().TryLogin(airlineTestUr.UserName, airlineTestUr.Password, out ILogin tokenAir,
                                                      out FacadeBase facadeAir);
            LoginToken <AirlineCompany> myTokenair  = tokenAir as LoginToken <AirlineCompany>;
            LoggedInAirlineFacade       myFacadeAir = facadeAir as LoggedInAirlineFacade;

            myFacadeAir.CreateFlight(myTokenair, flight);
            AnonymousUserFacade anonymousUserFacade    = new AnonymousUserFacade();
            Customer            customer               = new Customer("asdjkb", "fgh", "adthv", "0506794532", "123479520589243", 2);
            UserRepository      customerUserRepository = new UserRepository("radp", "ass", RolesEnum.customer);

            anonymousUserFacade.CreateCustomerAndUserRepository(customerUserRepository, customer);
            FlyingCenterSystem.GetInstance().TryLogin(customerUserRepository.UserName, customerUserRepository.Password, out ILogin tokenCustomer,
                                                      out FacadeBase facadeCustomer);
            LoginToken <Customer>  myTokencustomer        = tokenCustomer as LoginToken <Customer>;
            LoggedInCustomerFacade loggedInCustomerFacade = facadeCustomer as LoggedInCustomerFacade;

            loggedInCustomerFacade.PurchaseTicket(myTokencustomer, flight);
            List <Flight> flights = (List <Flight>)loggedInCustomerFacade.GetAllMyFlights(myTokencustomer);

            Assert.IsNotNull(flights);
        }
예제 #24
0
        public async Task <ActionResult <Flight> > GetFlightById(int flight_id)
        {
            FlightsCenterSystem.GetInstance().login(GetLoginToken().Name, GetLoginToken().Password,
                                                    out LoginToken <Object> l, out FacadeBase f);
            facade = f as LoggedInAdministratorFacade;
            Flight result = null;

            try
            {
                result = await Task.Run(() => facade.GetFlightById(flight_id));
            }
            catch (IllegalFlightParameter ex)
            {
                return(StatusCode(400, $"{{ error: \"{ex.Message}\" }}"));
            }
            if (result.Id == 0)
            {
                return(StatusCode(204, $"{{there is no flight with the id \"{result.Id}\"}}"));
            }
            return(Ok(result));
        }
        public void RemoveCustomerAndHisUserRepository()
        {
            UserRepository testUr    = new UserRepository("dad", "aes", RolesEnum.admin);
            Admin          testAdmin = new Admin("dav,", "id", 3);

            FlyingCenterSystem.GetInstance().TryLogin(ur.UserName, ur.Password, out ILogin token,
                                                      out FacadeBase facade);
            LoginToken <Admin>          myToken  = token as LoginToken <Admin>;
            LoggedInAdministratorFacade myFacade = facade as LoggedInAdministratorFacade;

            myFacade.CreateNewAdmin(myToken, testUr, testAdmin);
            Country country = new Country("Israel");

            myFacade.CreateNewCountry(myToken, country);
            UserRepository customerTestUr = new UserRepository("David", "Noho", RolesEnum.customer);
            Customer       customer       = new Customer("David", "Noho", "Tel", "0506794632", "78458956852174587", 2);

            myFacade.CreateCustomerAndUserRepository(customerTestUr, customer);
            myFacade.RemoveCustomer(myToken, customer.User_Repository_ID.ToString());
            myFacade.GetCustomerByid(myToken, customer.ID.ToString());
        }
예제 #26
0
        public IHttpActionResult UpdateCustomerDetails([FromBody] Customer customer, [FromUri] long id)
        {
            LoginToken <Administrator>  admintoken  = (LoginToken <Administrator>)Request.Properties["adminToken"];
            LoggedInAdministratorFacade adminFacade = (LoggedInAdministratorFacade)Request.Properties["adminFacade"];

            customer.ID = id;
            if (customer == null || id <= 0)
            {
                return(Content(HttpStatusCode.NotAcceptable, "you didn't fill out the information correctly"));
            }

            try
            {
                adminFacade.UpdateCustomerDetails(admintoken, customer);
                return(Ok($"customer {customer.USER_NAME} details updated"));
            }
            catch (Exception)
            {
                return(Content(HttpStatusCode.NotFound, $"customer id {id} wasn't found"));
            }
        }
예제 #27
0
        public IHttpActionResult RemoveAirline([FromBody] AirlineCompany airline, [FromUri] long id)
        {
            LoginToken <Administrator>  admintoken  = (LoginToken <Administrator>)Request.Properties["adminToken"];
            LoggedInAdministratorFacade adminFacade = (LoggedInAdministratorFacade)Request.Properties["adminFacade"];

            airline.ID = id;
            if (id <= 0)
            {
                return(Content(HttpStatusCode.NotAcceptable, $"id {id} is not valid"));
            }

            try
            {
                adminFacade.RemoveAirline(admintoken, airline);
                return(Ok($"airline {airline.USER_NAME} removed"));
            }
            catch (Exception)
            {
                return(Content(HttpStatusCode.NotFound, $"airline id {id} wasn't found"));
            }
        }
예제 #28
0
        public IHttpActionResult RemoveCustomer([FromBody] Customer customer, [FromUri] long id)
        {
            LoginToken <Administrator>  admintoken  = (LoginToken <Administrator>)Request.Properties["adminToken"];
            LoggedInAdministratorFacade adminFacade = (LoggedInAdministratorFacade)Request.Properties["adminFacade"];

            customer.ID = id;
            if (id <= 0)
            {
                return(Content(HttpStatusCode.NotAcceptable, $"id {id} is not valid"));
            }

            try
            {
                adminFacade.RemoveCustomer(admintoken, customer);
                return(Ok($"customer {customer.USER_NAME} was removed"));
            }
            catch (Exception)
            {
                return(Content(HttpStatusCode.NotFound, $"customer id {id} wasn't found"));
            }
        }
예제 #29
0
        private void CountryDBCreator()
        {
            while (true)
            {
                if (CountriesDataSet.runThread)
                {
                    List <Country>  countries       = new List <Country>();
                    RandomGenerator randomGenerator = new RandomGenerator();

                    int listBoxIndex = GetListBoxIndex($"Creating Country List. (0/{CountriesDataSet.listSize})");
                    for (int index = 1; index <= CountriesDataSet.listSize; index++)
                    {
                        Country country = randomGenerator.CountryGenerator();
                        if (country.CountryName == null)
                        {
                            index--;
                            continue;
                        }
                        countries.Add(country);
                        Dispatcher.Invoke(() => LogList[listBoxIndex] = $"Creating Country List. ({index}/{CountriesDataSet.listSize})");
                        UpdateProgress();
                    }

                    int facadeIndex = UserLogin("Admin", "9999");
                    LoggedInAdministratorFacade AdminFacade = (LoggedInAdministratorFacade)FlyingCenterSystem.FacadeList[facadeIndex];
                    foreach (Country country in countries)
                    {
                        AdminFacade.CreateCountry(AdminFacade.LoginToken, country);
                        UpdateProgress();
                    }
                    GetListBoxIndex($"Countries Registered to Database.");
                    CountriesDataSet.DBCreated.Set();
                    CountriesDataSet.runThread = false;
                }
                else
                {
                    Thread.Sleep(500);
                }
            }
        }
예제 #30
0
        private void CustomerDBCreator()
        {
            while (true)
            {
                if (CustomerDataSet.runThread)
                {
                    customers = new List <Customer>();
                    RandomGenerator randomGenerator = new RandomGenerator();

                    int listBoxIndex = GetListBoxIndex($"Creating Customer Accounts. (0/{CustomerDataSet.listSize})");
                    for (int index = 1; index <= CustomerDataSet.listSize; index++)
                    {
                        Customer customer = randomGenerator.CustomerGenerator();
                        if (customer.UserName == null)
                        {
                            index--;
                            continue;
                        }
                        customers.Add(customer);
                        Dispatcher.Invoke(() => LogList[listBoxIndex] = $"Creating Customer Accounts. ({index}/{CustomerDataSet.listSize})");
                        UpdateProgress();
                    }

                    int facadeIndex = UserLogin("Admin", "9999");
                    LoggedInAdministratorFacade AdminFacade = (LoggedInAdministratorFacade)FlyingCenterSystem.FacadeList[facadeIndex];
                    foreach (Customer customer in customers)
                    {
                        AdminFacade.CreateNewCustomer(AdminFacade.LoginToken, customer);
                        UpdateProgress();
                    }
                    GetListBoxIndex($"Customer Accounts Registered to Database.");
                    CustomerDataSet.DBCreated.Set();
                    CustomerDataSet.runThread = false;
                }
                else
                {
                    Thread.Sleep(500);
                }
            }
        }