Пример #1
0
        public IHttpActionResult CancelTicket([FromUri] int id)
        {
            GetLoginToken();
            if (CustomerToken != null)
            {
                Ticket T = F.GetAllMyTickets(CustomerToken).ToList().Find(c => c.ID == id);
                F.CancelTicket(CustomerToken, T);
                return(Ok($"{CustomerToken.User.LastName} {CustomerToken.User.FirstName} canceled ticket No':{T.ID}"));
            }

            return(NotFound());
        }
        public void Remove_Customer_With_Ticket()
        {
            Execute_Test(() =>
            {
                int country_id  = administrator_facade.CreateNewCountry(administrator_token, TestData.Get_Countries_Data()[0]);
                int country_id2 = administrator_facade.CreateNewCountry(administrator_token, TestData.Get_Countries_Data()[1]);
                int country_id3 = administrator_facade.CreateNewCountry(administrator_token, TestData.Get_Countries_Data()[2]);

                AirlineCompany demi_airlineCompany = TestData.Get_AirlineCompanies_Data()[0];
                demi_airlineCompany.CountryId      = country_id;
                long airline_company_id            = administrator_facade.CreateNewAirlineCompany(administrator_token, demi_airlineCompany);
                demi_airlineCompany.Id             = airline_company_id;

                system.TryLogin(demi_airlineCompany.User.UserName, demi_airlineCompany.User.Password, out ILoginToken token, out FacadeBase facade);
                LoggedInAirlineFacade airline_facade      = facade as LoggedInAirlineFacade;
                LoginToken <AirlineCompany> airline_token = token as LoginToken <AirlineCompany>;

                Flight demi_flight = TestData.Get_Flights_Data()[0];
                long flight_id     = airline_facade.CreateFlight(airline_token, demi_flight);
                demi_flight.Id     = flight_id;

                Customer demi_customer = TestData.Get_Customers_Data()[0];
                long customer_id       = administrator_facade.CreateNewCustomer(administrator_token, demi_customer);
                demi_customer.Id       = customer_id;

                system.TryLogin(demi_customer.User.UserName, demi_customer.User.Password, out ILoginToken token2, out FacadeBase facade2);
                LoggedInCustomerFacade customer_facade = facade2 as LoggedInCustomerFacade;
                LoginToken <Customer> customer_token   = token2 as LoginToken <Customer>;

                Ticket ticket = customer_facade.PurchaseTicket(customer_token, demi_flight);
                Assert.AreEqual(customer_facade.GetAllMyTickets(customer_token).Count, 1);


                administrator_facade.RemoveCustomer(administrator_token, demi_customer);

                Assert.AreEqual(administrator_facade.GetAllCustomers(administrator_token).Count, 0);
                Assert.AreEqual(customer_facade.GetAllMyTickets(customer_token).Count, 0);
                Assert.AreEqual(customer_facade.GetTicketHistoryByOriginalId(customer_token, ticket.Id).Id, 1);
            });
        }
        public void Purchase_And_Get_Two_Tickets_And_Two_Flights()
        {
            Execute_Test(() =>
            {
                Flight flight  = customer_facade.GetFlightById(1);
                Flight flight2 = customer_facade.GetFlightById(2);
                Ticket ticket  = customer_facade.PurchaseTicket(customer_token, flight);
                Ticket ticket2 = customer_facade.PurchaseTicket(customer_token, flight2);
                Assert.AreEqual(ticket.Id, 2);
                Assert.AreEqual(ticket2.Id, 3);
                IList <Ticket> my_tickets = customer_facade.GetAllMyTickets(customer_token);
                Assert.AreEqual(my_tickets.Count, 2);

                TestData.CompareProps(my_tickets[0], ticket);
                TestData.CompareProps(my_tickets[1], ticket2);

                IList <Flight> my_flights = customer_facade.GetAllMyFlights(customer_token);
                Assert.AreEqual(my_flights[0], flight);
                Assert.AreEqual(my_flights[1], flight2);
            });
        }