public void bookFlight(Flight flight, string type)
        {
            var flightOrder = new FlightOrder();

            flightOrder.arrPlace     = flight.arrPlace;
            flightOrder.arrTime      = flight.arrTime;
            flightOrder.depPlace     = flight.depPlace;
            flightOrder.depTime      = flight.depTime;
            flightOrder.date         = flight.date;
            flightOrder.flightNumber = flight.flightNumber;

            switch (type)
            {
            case "business":
                flightOrder.price = flight.businessPrice;
                break;

            default:
                flightOrder.price = flight.economyPrice;
                break;
            }
            flightOrder.user = Session.currentUser;
            Database.add(flightOrder);
            getFlightOrdersAsync();
        }
Exemple #2
0
        public bool AddFlightOrder(FlightOrder flightOrder)
        {
            int rowsEffected = -1;

            using (var context = new DataContext(DataContext.ops.dbOptions))
            {
                User          user          = context.User.Where(theUser => theUser.UserId == flightOrder.User.UserId).SingleOrDefault();
                Flight        flight        = context.Flight.Where(theFlight => theFlight.FlightId == flightOrder.Flight.FlightId).SingleOrDefault();
                FlightLuggage flightLuggage = context.FlightLuggage.Where(theFlightLuggage => theFlightLuggage.FlightLuggageId == flightOrder.FlightLuggage.FlightLuggageId).SingleOrDefault();
                Seat          seat          = context.Seat.Where(theSeat => theSeat.SeatId == flightOrder.Seat.SeatId).SingleOrDefault();
                FlightTicket  flightTicket  = context.FlightTicket.Where(theFlightTicket => theFlightTicket.FlightTicketId == flightOrder.FlightTicket.FlightTicketId).SingleOrDefault();

                flightOrder.User          = user;
                flightOrder.Flight        = flight;
                flightOrder.FlightLuggage = flightLuggage;
                flightOrder.Seat          = seat;
                flightOrder.FlightTicket  = flightTicket;



                context.FlightOrder.Add(flightOrder);

                rowsEffected = context.SaveChanges();

                if (rowsEffected > 0)
                {
                    return(true);
                }
            }

            return(false);
        }
Exemple #3
0
        public Holder <FlightOrder> OrderFlight(FlightOrder flightOrder)
        {
            flightOrder.FlightLuggage = _airlineDatabase.GetFlightLuggage(flightOrder.FlightLuggage.FlightLuggageId);

            /*_airlineDatabase.AddTicket(flightOrder.FlightTicket);
             *
             * if (ticket != null) { }
             *
             * else
             *  return CheckFlightOrder(null, 400, "Unable to add ticket to database");
             */

            flightOrder.Seat = _airlineDatabase.EditSeat(flightOrder.Seat);

            if (!_airlineDatabase.AddFlightOrder(flightOrder))
            {
                return(CheckFlightOrder(null, 400, "Unable to add flight order"));
            }

            if (_airlineDatabase.EditSeat(flightOrder.Seat) == null)
            {
                return(CheckFlightOrder(null, 400, "Unable to add edit seat"));
            }

            return(CheckFlightOrder(flightOrder, 200, ""));
        }
        public static ViewFlightOrderVM returnFlight(Order order)
        {
            ViewFlightOrderVM ovm = new ViewFlightOrderVM();

            DataLayer dl = new DataLayer();

            ovm.invoice = order.InvoiceNumber;

            ovm.creditCardNumber = order.CreditCard;

            FlightOrder flightorder = (from x in dl.flightOrders
                                       where x.InvoiceID == ovm.invoice
                                       select x).ToList <FlightOrder>().FirstOrDefault();

            ovm.ArrivalLocation = flightorder.ArrivalLocation;

            ovm.DetartureLocation = flightorder.DepartureLocation;

            ovm.DetartureDate = flightorder.DepartureDate;

            ovm.ReturnDate = flightorder.ReturnDate;

            ovm.orderDate = order.OrderDate;

            ovm.status = order.Status;

            ovm.email = order.CustomerEmail;

            ovm.outbound = flightorder.Outbound_FlightNumber;

            ovm.inbound = flightorder.Inbound_FlightNumber;

            Customer cust = (from x in dl.customers
                             where x.Email == ovm.email
                             select x).ToList <Customer>().FirstOrDefault();

            ovm.customerName = cust.FullName;

            ovm.customerId = cust.ID;

            ovm.totalPrice = order.TotalPayment;

            ovm.NumBabies    = flightorder.NumberOfBabies;
            ovm.NumChild     = flightorder.NumberOfChildren;
            ovm.NumYoung     = flightorder.NumberOfYoungsters;
            ovm.NumAdult     = flightorder.NumberOfAdults;
            ovm.NumPensioner = flightorder.NumberOfPensioners;

            ovm.PriceBabies    = flightorder.PricePerBaby;
            ovm.PriceChild     = flightorder.PricePerChild;
            ovm.PriceYoung     = flightorder.PricePerYoungster;
            ovm.PriceAdult     = flightorder.PricePerAdult;
            ovm.PricePensioner = flightorder.PricePerPensioner;

            ovm.Airline = flightorder.Airline;


            return(ovm);
        }
Exemple #5
0
        public Holder <FlightOrder> DeleteFlightOrder(FlightOrder flightOrder)
        {
            if (!_airlineDatabase.FreeSeat(flightOrder.Seat))
            {
                return(CheckFlightOrder(flightOrder, 400, "Server error while trying to free the seat"));
            }

            return(_airlineDatabase.DeleteFlightOrder(flightOrder) ? CheckFlightOrder(flightOrder, 200, "") :
                   CheckFlightOrder(flightOrder, 400, "Server error while trying to delete flightOrder"));
        }
Exemple #6
0
        public bool DeleteFlightOrder(FlightOrder flightOrder)
        {
            int rowsEffected = -1;

            using (var context = new DataContext(DataContext.ops.dbOptions))
            {
                flightOrder = context.FlightOrder.Where(theFlightOrder =>
                                                        theFlightOrder.FlightOrderId == flightOrder.FlightOrderId).FirstOrDefault();
                context.FlightOrder.Remove(flightOrder);
                rowsEffected = context.SaveChanges();
            }

            return(rowsEffected > 0 ? true : false);
        }
Exemple #7
0
        public bool ConfirmFlight(FlightOrder flightOrder)
        {
            int rowsEffected = -1;

            using (var context = new DataContext(DataContext.ops.dbOptions))
            {
                flightOrder           = context.FlightOrder.Where(theFlightOrder => theFlightOrder.FlightOrderId == flightOrder.FlightOrderId).SingleOrDefault();
                flightOrder.Confirmed = true;

                context.Update(flightOrder);
                rowsEffected = context.SaveChanges();
            }

            return(rowsEffected > 0 ? true : false);
        }
Exemple #8
0
        public async Task <IActionResult> Order(int[] flight_id, int[] quantity, string[] dest_details, string[] departure)
        {
            var tupleList = new List <Tuple <string, string, int> > {
            };

            for (int i = 0; i < flight_id.Length; i++)
            {
                if (!FlightExists(flight_id[i]))
                {
                    ViewData["Message"] = tupleList;
                    return(View());
                }
            }

            var user      = _Userscontext.Users.FirstOrDefault(obj => obj.UserName == User.Identity.Name);
            var passanger = _context.Passengers.FirstOrDefault(obj => obj.ApplicationUserID == user.Id);

            for (int i = 0; i < flight_id.Length; i++)
            {
                if (quantity[i] <= 0)
                {
                    continue;
                }

                FlightOrder fo = new FlightOrder
                {
                    FlightID    = flight_id[i],
                    PassengerID = passanger.ID,
                    Quantity    = quantity[i]
                };

                _context.FlightOrders.Add(fo);

                tupleList.Add(Tuple.Create(dest_details[i], departure[i], quantity[i]));
            }

            await _context.SaveChangesAsync();

            ViewData["Message"] = tupleList;
            return(View());
        }
Exemple #9
0
    private static void Main()
    {
        var output             = new StringBuilder();
        int remainingTestCases = FastIO.ReadNonNegativeInt();

        while (remainingTestCases-- > 0)
        {
            int orderCount = FastIO.ReadNonNegativeInt();
            var orders     = new FlightOrder[orderCount];
            for (int o = 0; o < orderCount; ++o)
            {
                orders[o] = new FlightOrder(
                    startTime: FastIO.ReadNonNegativeInt(),
                    duration: FastIO.ReadNonNegativeInt(),
                    profit: FastIO.ReadNonNegativeInt());
            }

            output.Append(
                RENT.Solve(orderCount, orders));
            output.AppendLine();
        }

        Console.Write(output);
    }
Exemple #10
0
        public Holder <FlightOrder> DeleteFlightOrder([FromBody] FlightOrder flightOrder)
        {
            Holder <FlightOrder> retVal = _airlineBusiness.DeleteFlightOrder(flightOrder);

            return(retVal);
        }
Exemple #11
0
        public Holder <FlightOrder> OrderFlight([FromBody] FlightOrder flightOrder)
        {
            Holder <FlightOrder> retVal = _airlineBusiness.OrderFlight(flightOrder);

            return(retVal);
        }
Exemple #12
0
        public ActionResult SubmitOrder(FlightCheckoutVM obj)
        {
            DataLayer dl = new DataLayer();

            DateTime today        = DateTime.Today;
            string   date         = today.ToString("dd/MM/yyyy").Replace("/", ".");
            double   totalFee     = Convert.ToDouble(obj.totalFee.Replace("$", ""));
            bool     sameCustomer = false;

            // first check if customer already exists in table
            List <Customer> customerFromDB = (from u in dl.customers
                                              where u.Email.ToLower() == obj.email.ToLower()
                                              select u).ToList <Customer>();

            if (customerFromDB.Count != 0) // if customer already exists
            {
                // check if the input is the same as the customer data
                if (customerFromDB[0].FullName != obj.customerName || customerFromDB[0].ID != obj.id)
                {
                    TempData["error"] = "This email address already exist in our records with different name and/or different id!";
                    return(View("FlightCheckout", obj));
                }
                else if (customerFromDB[0].Location != obj.address || customerFromDB[0].PhoneNumber != obj.phone)
                {
                    // update: delete this row and later add new customer row
                    dl.customers.Remove(customerFromDB[0]);
                    dl.SaveChanges();
                }
                // else: same row - no need to update
                else
                {
                    sameCustomer = true;
                }
            }

            // --------------------- create object and save to table 1: Order
            Order order = new Order()
            {
                CreditCard       = obj.creditCard,
                CustomerEmail    = obj.email,
                OrderDate        = date,
                Status           = 0,
                TotalPayment     = totalFee,
                Type             = "Flight",
                OrderDestination = obj.destCountry,
            };

            dl.orders.Add(order); // adding in memory and not to DB //
            dl.SaveChanges();
            int INVOICE = order.InvoiceNumber;

            // --------------------- create object and save to table 2: FlightOrder
            FlightOrder flightOrder = new FlightOrder()
            {
                InvoiceID             = INVOICE,
                DepartureLocation     = obj.departureLocation,
                ArrivalLocation       = obj.returnLocation,
                DepartureDate         = obj.departureDate,
                ReturnDate            = obj.returnDate,
                Outbound_FlightNumber = int.Parse(obj.departureFlightNumber),
                Inbound_FlightNumber  = int.Parse(obj.returnFlightNumber),
                Airline            = obj.airline,
                NumberOfBabies     = obj.babies,
                NumberOfChildren   = obj.children,
                NumberOfYoungsters = obj.youngsters,
                NumberOfAdults     = obj.adults,
                NumberOfPensioners = obj.pensioners,
                PricePerBaby       = double.Parse(obj.price_babies),
                PricePerChild      = double.Parse(obj.price_children),
                PricePerYoungster  = double.Parse(obj.price_youngsters),
                PricePerAdult      = double.Parse(obj.price_adults),
                PricePerPensioner  = double.Parse(obj.price_pensioners),
            };

            dl.flightOrders.Add(flightOrder); // adding in memory and not to DB //

            // --------------------- create object and save to table 3: Customer
            if (!sameCustomer)
            {
                Customer customer = new Customer()
                {
                    Email       = obj.email,
                    FullName    = obj.customerName,
                    Location    = obj.location,
                    ID          = obj.id,
                    PhoneNumber = obj.phone
                };

                dl.customers.Add(customer); // adding in memory and not to DB //
            }

            dl.SaveChanges();

            // go to recipt
            return(RedirectToAction("ViewOrderReceipt", "Support", new { invoice = INVOICE }));
        }
 public void cancelFlight(FlightOrder flightOrder)
 {
     Database.remove(flightOrder, flightOrdersSession);
     getFlightOrdersAsync();
 }
Exemple #14
0
 Holder <FlightOrder> CheckFlightOrder(FlightOrder flightOrder, int errorCode, string description) =>
 errorCode == 200 ? Holder <FlightOrder> .Success(flightOrder) : Holder <FlightOrder> .Fail(errorCode, description);
Exemple #15
0
 public Holder <FlightOrder> ConfirmFlight(FlightOrder flightOrder)
 {
     return(_airlineDatabase.ConfirmFlight(flightOrder) ? CheckFlightOrder(flightOrder, 200, "") :
            CheckFlightOrder(flightOrder, 400, "Error while trying to confirm flight"));
 }