public IActionResult ChangeMyPassword(ChangePasswordRequest request)
        {
            if (request.OldPassword == request.NewPassword)
            {
                return(BadRequest());
            }

            IUserDAO userDAOPGSQL = new UserDAOPGSQL();

            string username = User.Claims.Where(c => c.Type == ClaimTypes.Name).FirstOrDefault().Value;

            User user = userDAOPGSQL.GetUserByUserName(username);

            if (user == null)
            {
                return(NotFound());
            }

            if (user.Password != request.OldPassword)
            {
                return(BadRequest());
            }

            user.Password = request.NewPassword;
            userDAOPGSQL.Update(user);

            return(NoContent());
        }
        public async Task <ActionResult> CancleTicket(int ticket_id)
        {
            FlightsCenterSystem.GetInstance().login(GetLoginToken().Name, GetLoginToken().Password,
                                                    out LoginToken <Object> l, out FacadeBase f);
            facade         = f as LoggedInCustomerFacade;
            token_customer = GetLoginToken();
            User u = new UserDAOPGSQL().GetAll().FirstOrDefault(_ => _.Password == token_customer.Password && _.Username == token_customer.Name);

            token_customer.User = new CustomerDAOPGSQL().GetAll().FirstOrDefault(_ => _.User_id == u.Id);
            await Task.Run(() => facade.CancelTicket(token_customer, new TicketDAOPGSQL().Get(ticket_id)));

            return(Ok());
        }
예제 #3
0
        public async Task <ActionResult <AirlineAuth> > AcceptAirline([FromBody] AirlineAuth airline)
        {
            long id = 0;
            await Task.Run(() => new UserDAOPGSQL().Add(new User(airline.UserName, airline.Password,
                                                                 airline.Email, 2)));

            await Task.Run(() => id = new UserDAOPGSQL().GetAll().FirstOrDefault(_ => _.Password ==
                                                                                 airline.Password && _.Username == airline.UserName).Id);

            await Task.Run(() => new AirlineDAOPGSQL().Add(new AirlineCompany(airline.Name, airline.CountryID, id)));

            return(StatusCode(200, airline));
        }
예제 #4
0
        public async Task <ActionResult <Customer> > CreateFlight([FromBody] Flight flight)
        {
            FlightsCenterSystem.GetInstance().login(GetLoginToken().Name, GetLoginToken().Password,
                                                    out LoginToken <Object> l, out FacadeBase f);
            facade        = f as LoggedInAirlineFacade;
            token_airline = GetLoginToken();
            User u = new UserDAOPGSQL().GetAll().FirstOrDefault(_ => _.Password == token_airline.Password && _.Username == token_airline.Name);

            token_airline.User = new AirlineDAOPGSQL().GetAll().FirstOrDefault(_ => _.UserId == u.Id);
            await Task.Run(() => facade.CreateFlight(token_airline, flight));

            return(StatusCode(200, flight));
        }
예제 #5
0
        public async Task <ActionResult> CancleTicket(int flight_id)
        {
            FlightsCenterSystem.GetInstance().login(GetLoginToken().Name, GetLoginToken().Password,
                                                    out LoginToken <Object> l, out FacadeBase f);
            facade        = f as LoggedInAirlineFacade;
            token_airline = GetLoginToken();
            User u = new UserDAOPGSQL().GetAll().FirstOrDefault(_ => _.Password == token_airline.Password && _.Username == token_airline.Name);

            token_airline.User = new AirlineDAOPGSQL().GetAll().FirstOrDefault(_ => _.UserId == u.Id);
            await Task.Run(() => facade.CancelFlight(token_airline, new FlightDAOPGSQL().Get(flight_id)));

            return(Ok());
        }
        public async Task <ActionResult <List <Flight> > > GetAllMyFlights()
        {
            FlightsCenterSystem.GetInstance().login(GetLoginToken().Name, GetLoginToken().Password,
                                                    out LoginToken <Object> l, out FacadeBase f);
            facade         = f as LoggedInCustomerFacade;
            token_customer = GetLoginToken();
            User u = new UserDAOPGSQL().GetAll().FirstOrDefault(_ => _.Password == token_customer.Password && _.Username == token_customer.Name);

            token_customer.User = new CustomerDAOPGSQL().GetAll().FirstOrDefault(_ => _.User_id == u.Id);
            var result = await Task.Run(() => facade.GetAllMyFlights(token_customer));

            return(StatusCode(200, result));
        }
예제 #7
0
        public async Task <ActionResult> MofidyAirlineDetails([FromBody] AirlineCompany airline)
        {
            FlightsCenterSystem.GetInstance().login(GetLoginToken().Name, GetLoginToken().Password,
                                                    out LoginToken <Object> l, out FacadeBase f);
            facade        = f as LoggedInAirlineFacade;
            token_airline = GetLoginToken();
            User u = new UserDAOPGSQL().GetAll().FirstOrDefault(_ => _.Password == token_airline.Password && _.Username == token_airline.Name);

            token_airline.User = new AirlineDAOPGSQL().GetAll().FirstOrDefault(_ => _.UserId == u.Id);
            await Task.Run(() => facade.MofidyAirlineDetails(token_airline, airline));

            return(StatusCode(200));
        }
        public async Task <ActionResult <List <Ticket> > > GetMyTicketByFlight(int flight_id)
        {
            FlightsCenterSystem.GetInstance().login(GetLoginToken().Name, GetLoginToken().Password,
                                                    out LoginToken <Object> l, out FacadeBase f);
            facade         = f as LoggedInCustomerFacade;
            token_customer = GetLoginToken();
            User u = new UserDAOPGSQL().GetAll().FirstOrDefault(_ => _.Password == token_customer.Password && _.Username == token_customer.Name);

            token_customer.User = new CustomerDAOPGSQL().GetAll().FirstOrDefault(_ => _.User_id == u.Id);
            var result = await Task.Run(() => new TicketDAOPGSQL().GetAll().FirstOrDefault(ticket => ticket.FlightID == flight_id && ticket.CustimerID == token_customer.User.Id));

            return(StatusCode(200, result));
        }
예제 #9
0
        public async Task <ActionResult <Customer> > RemoveAdmin([FromBody] Administrator admin)
        {
            FlightsCenterSystem.GetInstance().login(GetLoginToken().Name, GetLoginToken().Password,
                                                    out LoginToken <Object> l, out FacadeBase f);
            facade      = f as LoggedInAdministratorFacade;
            token_admin = GetLoginToken();
            User u = new UserDAOPGSQL().GetAll().FirstOrDefault(_ => _.Password == token_admin.Password && _.Username == token_admin.Name);

            token_admin.User = new AdministratorDAOPGSQL().GetAll().FirstOrDefault(_ => _.User_id == u.Id);
            await Task.Run(() => facade.RemoveAdmin(token_admin, admin));

            return(StatusCode(200, admin));
        }
예제 #10
0
        public async Task <ActionResult <List <AirlineAuth> > > GetRequests()
        {
            FlightsCenterSystem.GetInstance().login(GetLoginToken().Name, GetLoginToken().Password,
                                                    out LoginToken <Object> l, out FacadeBase f);
            facade      = f as LoggedInAdministratorFacade;
            token_admin = GetLoginToken();
            User u = new UserDAOPGSQL().GetAll().FirstOrDefault(_ => _.Password == token_admin.Password && _.Username == token_admin.Name);

            token_admin.User = new AdministratorDAOPGSQL().GetAll().FirstOrDefault(_ => _.User_id == u.Id);
            var result = await Task.Run(() => facade.GetRequests(token_admin));

            return(StatusCode(200, result));
        }
예제 #11
0
        public async Task <ActionResult <Customer> > UpdateMyDetails([FromBody] AllAirlineDetails details)
        {
            FlightsCenterSystem.GetInstance().login(GetLoginToken().Name, GetLoginToken().Password,
                                                    out LoginToken <Object> l, out FacadeBase f);
            facade        = f as LoggedInAirlineFacade;
            token_airline = GetLoginToken();
            User u = new UserDAOPGSQL().GetAll().FirstOrDefault(_ => _.Password == token_airline.Password && _.Username == token_airline.Name);

            token_airline.User = new AirlineDAOPGSQL().GetAll().FirstOrDefault(_ => _.UserId == u.Id);
            await Task.Run(() => new UserDAOPGSQL().Update(new User(u.Id, details.Username, details.Password, details.Email, 2)));

            await Task.Run(() => new AirlineDAOPGSQL().Update(new AirlineCompany(token_airline.User.Id, details.Name, details.CountryId, details.UserId)));

            return(StatusCode(200, details));
        }
예제 #12
0
        public void WrongDetailsToNewUserException()
        {
            IUserDAO            _userDAO  = new UserDAOPGSQL();
            AnonymousUserFacade anonymous = new AnonymousUserFacade();
            User user = new User
            {
                User_Name = "Moshe87",
                Password  = "******",
                Email     = "*****@*****.**",
                User_Role = 3
            };
            Customer customer = new Customer();

            customer.User = user;
            anonymous.AddNewCustomer(customer);
        }
        public async Task <ActionResult <Customer> > UpdateMyDetails([FromBody] AllCustomerDetails details)
        {
            FlightsCenterSystem.GetInstance().login(GetLoginToken().Name, GetLoginToken().Password,
                                                    out LoginToken <Object> l, out FacadeBase f);
            facade         = f as LoggedInCustomerFacade;
            token_customer = GetLoginToken();
            User u = new UserDAOPGSQL().GetAll().FirstOrDefault(_ => _.Password == token_customer.Password && _.Username == token_customer.Name);

            token_customer.User = new CustomerDAOPGSQL().GetAll().FirstOrDefault(_ => _.User_id == u.Id);
            await Task.Run(() => new UserDAOPGSQL().Update(new User(u.Id, details.Username, details.Password, details.Email, 3)));

            await Task.Run(() => new CustomerDAOPGSQL().Update(new Customer(token_customer.User.Id, details.FisrtName,
                                                                            details.LastName, details.Adress, details.PhoneNumber, details.CreditCardNumber, u.Id)));

            return(StatusCode(200, details));
        }
        public async Task <ActionResult> PurchaseTicket(int flight_id)
        {
            FlightsCenterSystem.GetInstance().login(GetLoginToken().Name, GetLoginToken().Password,
                                                    out LoginToken <Object> l, out FacadeBase f);
            facade         = f as LoggedInCustomerFacade;
            token_customer = GetLoginToken();
            User u = new UserDAOPGSQL().GetAll().FirstOrDefault(_ => _.Password == token_customer.Password && _.Username == token_customer.Name);

            token_customer.User = new CustomerDAOPGSQL().GetAll().FirstOrDefault(_ => _.User_id == u.Id);
            var result = await Task.Run(() => facade.PurchaseTicket(token_customer, new FlightDAOPGSQL().Get(flight_id)));

            if (result is null)
            {
                return(StatusCode(204, $"{{there are no tickets left for the flight \"{flight_id}\"}}"));
            }
            return(Ok(result));
        }
        public async Task <ActionResult <Customer> > GetMyDetails()
        {
            AllCustomerDetails details = new AllCustomerDetails();
            User     myUser            = new User();
            Customer myCustomer        = new Customer();

            FlightsCenterSystem.GetInstance().login(GetLoginToken().Name, GetLoginToken().Password,
                                                    out LoginToken <Object> l, out FacadeBase f);
            facade         = f as LoggedInCustomerFacade;
            token_customer = GetLoginToken();
            User u = new UserDAOPGSQL().GetAll().FirstOrDefault(_ => _.Password == token_customer.Password && _.Username == token_customer.Name);

            token_customer.User = new CustomerDAOPGSQL().GetAll().FirstOrDefault(_ => _.User_id == u.Id);
            await Task.Run(() => myUser = new UserDAOPGSQL().Get(u.Id));

            await Task.Run(() => myCustomer = new CustomerDAOPGSQL().Get(token_customer.User.Id));

            details = new AllCustomerDetails(myUser.Username, myUser.Password, myCustomer.First_name,
                                             myCustomer.Last_name, myUser.Email, myCustomer.Phone, myCustomer.Adress, myCustomer.Credit_card_no);
            return(StatusCode(200, details));
        }
예제 #16
0
        public async Task <ActionResult <Customer> > GetMyDetails()
        {
            AllAirlineDetails details = new AllAirlineDetails();
            User           myUser     = new User();
            AirlineCompany myAirline  = new AirlineCompany();

            FlightsCenterSystem.GetInstance().login(GetLoginToken().Name, GetLoginToken().Password,
                                                    out LoginToken <Object> l, out FacadeBase f);
            facade        = f as LoggedInAirlineFacade;
            token_airline = GetLoginToken();
            User u = new UserDAOPGSQL().GetAll().FirstOrDefault(_ => _.Password == token_airline.Password && _.Username == token_airline.Name);

            token_airline.User = new AirlineDAOPGSQL().GetAll().FirstOrDefault(_ => _.UserId == u.Id);
            await Task.Run(() => myUser = new UserDAOPGSQL().Get(u.Id));

            await Task.Run(() => myAirline = new AirlineDAOPGSQL().Get(token_airline.User.Id));

            details = new AllAirlineDetails(myUser.Username, myUser.Password, myUser.Email, myAirline.Name,
                                            myAirline.CountryID, myAirline.UserId);
            return(StatusCode(200, details));
        }
예제 #17
0
        public void AddNewUser_Test()
        {
            IUserDAO            _userDAO  = new UserDAOPGSQL();
            AnonymousUserFacade anonymous = new AnonymousUserFacade();
            User user = new User
            {
                User_Name = "Moshe817",
                Password  = "******",
                Email     = "*****@*****.**",
                User_Role = 3
            };
            Customer customer = new Customer
            {
                First_Name     = "Moshe",
                Last_Name      = "yakov",
                Address        = "king5",
                Phone_No       = "050-1351151",
                Credit_Card_No = "1212123545",
                User           = user
            };

            anonymous.AddNewCustomer(customer);
            Assert.AreEqual(_customerDAO.GetAll().Count, 3);
        }
예제 #18
0
        static void Main(string[] args)
        {
            TestDbConnection();
            //CountryDAOPGSQL countryDAOPGSQL = new CountryDAOPGSQL();

            //Country countryDominicana = new Country
            //{
            //    Name = "Dominicana"
            //};

            //countryDAOPGSQL.Add(countryDominicana);



            ////var countries = countryDAOPGSQL.GetAll();

            ////foreach (var c in countries)
            ////{
            ////    var id = ((dynamic)c).Id;
            ////    var name = ((dynamic)c).Name;

            ////    Console.WriteLine($"{id} {name}");
            ////}

            //Console.WriteLine(countryDAOPGSQL.Get(6));

            //countryDAOPGSQL.Remove(countryDominicana);

            ////countryDAOPGSQL.Update(countryDominicana);

            //var countries = countryDAOPGSQL.GetAll();

            //foreach (var c in countries)
            //{

            //admin.Add(admin1);       //    var id = ((dynamic)c).Id;
            //    var name = ((dynamic)c).Name;

            //    Console.WriteLine($"{id} {name}");
            //}



            //UserDAOPGSQL user = new UserDAOPGSQL();
            //AdminDAOPGSQL admin = new AdminDAOPGSQL();
            //DeleteAllData();
            //User manager2 = new User
            //{
            //    Username = "******",
            //    Password = "******",
            //    Email = "*****@*****.**",
            //    User_Role = 3
            //};
            //user.Add(manager2);



            //var u = user.GetByUserName("manager2");

            //long id = u.Id;

            //Console.WriteLine(id);

            //Admin admin1 = new Admin("Mary", "Mill", 1, id);


            UserDAOPGSQL user = new UserDAOPGSQL();
            //AdminDAOPGSQL admin = new AdminDAOPGSQL();
            CustomerDAOPGSQL       customerDAOPGSQL       = new CustomerDAOPGSQL();
            FlightDAOPGSQL         flightDAOPGSQL         = new FlightDAOPGSQL();
            AirlineCompanyDAOPGSQL airlineCompanyDAOPGSQL = new AirlineCompanyDAOPGSQL();
            CountryDAOPGSQL        countryDAOPGSQL        = new CountryDAOPGSQL();

            AnonymousUserFacade facade = FlightsCenterSystem.GetInstance().GetFacade <Anonymous>(null) as AnonymousUserFacade;
            //DeleteAllData();


            //LoginToken<Admin> token = new LoginToken<Admin>(


            //    );
            //token.User.UserName = FlightCenterConfig.ADMIN_NAME;
            //token.User.Password = FlightCenterConfig.ADMIN_PASSWORD;

            //User user0 = new User
            //{
            //    Username = "******",
            //    Password = "******",
            //    Email = "*****@*****.**",
            //    User_Role = 1
            //};
            //user.Add(user0);

            //var uA = user.GetByUserName("Airline");
            //long idA = uA.Id;


            //AirlineCompany airline = new AirlineCompany
            //{
            //    Name = "AirlineCompany1",
            //    Country_Id = 1,
            //    User_Id = (int)idA
            //};
            //airlineCompanyDAOPGSQL.Add(airline);

            //var a = airlineCompanyDAOPGSQL.GetAirlineByUserame("Airline");
            //Console.WriteLine("aurline: " + a);
            //long a_id = a.Id;

            //Flight flight = new Flight
            //{
            //    Airline_Company_Id = (long)a_id,
            //    Origin_Country_Id = 1,
            //    Destination_Country_Id = 2,
            //    Departure_Time = new DateTime(2021, 05, 09, 12, 00, 00),
            //    Landing_Time = new DateTime(2021, 05, 09, 18, 00, 00),
            //    Tickets_Remaining = 100
            //};
            //flightDAOPGSQL.Add(flight);

            //User user1 = new User
            //{
            //    Username = "******",
            //    Password = "******",
            //    Email = "*****@*****.**",
            //    User_Role = 1
            //};
            //user.Add(user1);

            //var u = user.GetByUserName("Customer");
            //long id = u.Id;

            //Customer customer = new Customer()
            //{
            //    First_Name = "name",
            //    Last_Name = "lNAme",
            //    Address = "Adress",
            //    Phone_No = "Phone",
            //    Credit_Card_No = "Card",
            //    User_Id = id
            //};

            //loginService.TryAdminLogin(FlightCenterConfig.ADMIN_NAME, FlightCenterConfig.ADMIN_PASSWORD, out LoginToken<Admin> tokenAdmin);
            //LoggedInAdministratorFacade facadeAdmin = FlightsCenterSystem.GetInstance().GetFacade<Admin>(tokenAdmin) as LoggedInAdministratorFacade;

            //facadeAdmin.CreateNewCustomer(tokenAdmin, customer);
            //Customer c = facadeAdmin.GetAllCustomers(tokenAdmin)[0];
            //// facadeAdmin.CreateNewCustomer(tokenAdmin, customer);


            //LoginToken<Customer> tokenCustomer = new LoginToken<Customer>()
            //{
            //    User = c
            //};
            //loginService.TryCustomerLogin("Customer", "c112", out tokenCustomer);
            //Customer customer1 = customerDAOPGSQL.GetCustomerByUserName("Customer");
            // loginService.TryCustomerLogin ("Customer", "c112", out tokenCustomer);


            //LoggedInCustomerFacade fasadeCustomer = FlightsCenterSystem.GetInstance().GetFacade(tokenCustomer) as LoggedInCustomerFacade;
            //var myFlight = flightDAOPGSQL.GetAll()[0];
            //Ticket t = fasadeCustomer.PurchaseTicket(tokenCustomer, myFlight);
            // Console.WriteLine(tokenCustomer);
            // Console.WriteLine(customer1.Password);
            // Console.WriteLine(c.U);


            // User manager2 = new User
            // {
            //     Username = "******",
            //     Password = "******",
            //     Email = "*****@*****.**",
            //     User_Role = 3
            // };


            // //User manager3 = new User
            // //{
            // //    Username = "******",
            // //    Password = "******",
            // //    Email = "*****@*****.**",
            // //    User_Role = 3
            // //};

            // user.Add(manager2);
            // //user.Add(manager3);


            // var u = user.GetByUserName("manager2");

            //// var u3 = user.GetByUserName("manager3");

            // long id = u.Id;
            // Admin admin1 = new Admin
            // {
            //     First_Name = "Mary",
            //     Last_Name = "Mill",
            //     Level = 3,
            //     User_id = id
            // };



            // //long id3 = u3.Id;
            // //Admin adminLevel1 = new Admin
            // //{
            // //    First_Name = "Parry",
            // //    Last_Name = "Mill",
            // //    Level = 1,
            // //    User_id = id3
            // //};



            //  admin.Add(admin1);


            //var list = admin.GetAll();
            //list.RemoveAt(0);
            //facadeAdminLevel3.RemoveAdmin(tokenAdminLevel3, list[0]);
            //list = admin.GetAll();

            //list.Remove(admin1);
            //list = admin.GetAll();
            //Console.WriteLine(list.Count);

            // Console.WriteLine(token.User.UserName);


            //customerDAOPGSQL.Add(customer);
            //facadeAdmin.CreateNewCustomer(token, customer);
            //var list = facadeAdmin.GetAllCustomers(token);

            //Console.WriteLine(list.Count);



            // var l_cust = facadeAdmin.GetAllCustomers(token);

            //Console.WriteLine(l_cust[1]);

            //AirlineCompany airline = new AirlineCompany
            //{
            //    Name = "AirlineCompany1",
            //    Country_Id = 1,
            //    User_Id = (int)id
            //};
            //airlineCompanyDAOPGSQL.Add(airline);

            //var a = airlineCompanyDAOPGSQL.GetAirlineByUserame("airline1");
            //Console.WriteLine("aurline: " + a);
            //long a_id = a.Id;

            //Flight flight = new Flight
            //{
            //    Airline_Company_Id = (long)a_id,
            //    Origin_Country_Id = 1,
            //    Destination_Country_Id = 2,
            //    Departure_Time = new DateTime(2021, 05, 09, 12, 00, 00),
            //    Landing_Time = new DateTime(2021, 05, 09, 18, 00, 00),
            //    Tickets_Remaining = 100
            //};
            //flightDAOPGSQL.Add(flight);

            //var f_list = flightDAOPGSQL.GetAll();
            //var f = facade.GetFlightsByDestinationCountry(2);

            //Console.WriteLine(f[0].Id);
            //Console.WriteLine(f[0].Landing_Time);
            //Console.WriteLine(f[0].NameOfOriginCountry);
        }