Пример #1
0
        private void BtnIssue_Click(object sender, RoutedEventArgs e)
        {
            var    db      = new Session3Entities();
            string bookRef = "";

            while (true)
            {
                bookRef = createBookRef();
                var data = db.Tickets.Where(p => p.BookingReference == bookRef).ToList();
                if (data.Count == 0)
                {
                    break;
                }
            }

            var      listPass = win1.dgvPassList.Items.OfType <ItemTable2>().ToList();
            var      x        = (ItemTable1)mainWin.dgvOutbound.SelectedItem;
            var      x1       = (ItemTable1)mainWin.dgvReturn.SelectedItem;
            DateTime dt       = DateTime.ParseExact(x.Col3, "MM/dd/yyyy", null);

            string[] xx  = x.Col5.Split('-');
            string[] xx1 = x1.Col5.Split('-');
            foreach (var xi in xx)
            {
                insertTicket(bookRef, listPass, dt, xi);
            }
            foreach (var xi in xx1)
            {
                insertTicket(bookRef, listPass, dt, xi);
            }
            db.SaveChangesAsync();
            MessageBox.Show("Bạn đã đặt vé thành công", "Thông báo");
        }
Пример #2
0
 public void loadCombobox()
 {
     using (var db = new Session3Entities())
     {
         var select = db.Countries.Select(p => p.Name);
         foreach (var i in select)
         {
             cbbPassCT.Items.Add(i);
         }
     }
 }
Пример #3
0
 // get infor path to tho datagrid
 public int getIdRouter(int x, int y)
 {
     using (var db = new Session3Entities())
     {
         var listIdRou = db.Routes.Where(p => p.DepartureAirportID == x && p.ArrivalAirportID == y).Select(p => p.ID).ToList();
         for (int i = 0; i < listIdRou.Count; i++)
         {
             int ii = listIdRou[i];
             if (db.Schedules.Any(p => p.RouteID == ii))
             {
                 return(listIdRou[i]);
             }
         }
         return(0);
     }
 }
Пример #4
0
        public void loadCbbWindow()
        {
            using (var db = new Session3Entities())
            {
                var select = from s in db.CabinTypes select s;
                foreach (var data in select)
                {
                    cbbCabinType.Items.Add(data.Name);
                }

                var select1 = from s in db.Airports select s;
                foreach (var data in select1)
                {
                    cbbFrom.Items.Add(data.IATACode);
                    cbbTo.Items.Add(data.IATACode);
                }
            }
        }
Пример #5
0
        public void pushPathToDg(DataGrid dg, string date, ComboBox cb1, ComboBox cb2, int chose)
        {
            int posBegin = 0, posEnd = 0;

            using (var db = new Session3Entities())
            {
                posBegin = db.Airports.Where(p => p.IATACode == cb1.Text).Select(p => p.ID).FirstOrDefault();
                posEnd   = db.Airports.Where(p => p.IATACode == cb2.Text).Select(p => p.ID).FirstOrDefault();
            }
            listPath.Clear();
            onePath.Clear();
            onePath.Add(posBegin);
            dfs(posBegin, posEnd);
            dg.Items.Clear();
            foreach (var path in listPath)
            {
                getPath(path, date, dg, cb1, cb2, chose);
            }
        }
Пример #6
0
        private ItemTable1 get1Path(List <int> path, int id, ComboBox cb1, ComboBox cb2)
        {
            var        db   = new Session3Entities();
            var        row  = db.Schedules.Where(p => p.ID == id);
            double     cost = 0;
            ItemTable1 x    = new ItemTable1();

            x.Col1 = cb1.Text;
            x.Col2 = cb2.Text;
            x.Col3 = row.Select(p => p.Date).FirstOrDefault().ToString("MM/dd/yyyy");
            DateTime dt = new DateTime();

            dt      = DateTime.ParseExact(x.Col3, "MM/dd/yyyy", null);
            x.Col4  = row.Select(p => p.Time).FirstOrDefault().ToString();
            x.Col5 += row.Select(p => p.FlightNumber).FirstOrDefault().ToString();
            cost   += double.Parse(row.Select(p => p.EconomyPrice).FirstOrDefault().ToString());
            for (int i = 1; i < path.Count - 1; i++)
            {
                int idRoute = getIdRouter(path[i], path[i + 1]);
                id = db.Schedules.Where(p => (p.Date >= dt && p.RouteID == idRoute)).Select(p => p.ID).FirstOrDefault();
                if (id == 0)
                {
                    return(null);
                }
                dt      = db.Schedules.Where(p => p.ID == id).Select(p => p.Date).FirstOrDefault();
                x.Col5 += "-" + db.Schedules.Where(p => p.ID == id).Select(p => p.FlightNumber).FirstOrDefault();
                cost   += double.Parse(db.Schedules.Where(p => p.ID == id).Select(p => p.EconomyPrice).FirstOrDefault().ToString());
            }
            int idCabinType = db.CabinTypes.Where(p => p.Name == cbbCabinType.Text).Select(p => p.ID).FirstOrDefault();

            if (idCabinType == 2)
            {
                cost = cost + (cost * 0.35);
            }
            else if (idCabinType == 3)
            {
                cost = cost + (cost + (cost * 0.35)) * 0.3;
            }
            x.Col6 = Convert.ToDecimal(cost).ToString("C0");
            x.Col7 = x.Col5.Count(p => p == '-').ToString();
            return(x);
        }
Пример #7
0
        // booking

        public bool checkPassNum()
        {
            if (txtPassenger.Text == "")
            {
                return(false);
            }
            var isNumberic = int.TryParse(txtPassenger.Text, out _);

            if (!isNumberic)
            {
                return(false);
            }
            var    db        = new Session3Entities();
            int    passNum   = int.Parse(txtPassenger.Text);
            string CabinType = cbbCabinType.Text;

            var seatNum1 = db.Aircrafts.Where(p => p.ID == 1);
            var seatNum2 = db.Aircrafts.Where(p => p.ID == 1);

            int seatNum11 = 0;
            int seatNum21 = 0;

            if (CabinType == "Economy")
            {
                seatNum11 = seatNum1.Select(p => p.EconomySeats).FirstOrDefault();
                seatNum21 = seatNum2.Select(p => p.EconomySeats).FirstOrDefault();
            }
            else if (CabinType == "Business")
            {
                seatNum11 = seatNum1.Select(p => p.BusinessSeats).FirstOrDefault();
                seatNum21 = seatNum2.Select(p => p.BusinessSeats).FirstOrDefault();
            }
            else
            {
                seatNum11 = seatNum1.Select(p => p.TotalSeats - p.EconomySeats - p.BusinessSeats).FirstOrDefault();
                seatNum21 = seatNum2.Select(p => p.TotalSeats - p.EconomySeats - p.BusinessSeats).FirstOrDefault();
            }
            return(passNum <= Math.Min(seatNum11, seatNum21) && 0 < passNum);
        }
Пример #8
0
 //add data from sql to graph
 public void buildGraph()
 {
     using (var db = new Session3Entities())
     {
         int n = db.Airports.Max(p => p.ID) + 1;
         graph = new List <int> [n];
         for (int i = 0; i < n; i++)
         {
             graph[i] = new List <int>();
         }
         var select = from s in db.Routes select s;
         foreach (var data in select)
         {
             int index = data.DepartureAirportID;
             int val   = data.ArrivalAirportID;
             graph[index].Add(val);
         }
         for (int i = 0; i < n; i++)
         {
             graph[i] = new HashSet <int>(graph[i]).ToList <int>();
         }
     }
 }
Пример #9
0
        private void insertTicket(string bookRef, List <ItemTable2> listPass, DateTime dt, string flightNum)
        {
            var    db   = new Session3Entities();
            Ticket tIns = new Ticket();

            tIns.UserID           = 1;
            tIns.ScheduleID       = db.Schedules.Where(p => p.Date >= dt && p.FlightNumber == flightNum).Select(p => p.ID).FirstOrDefault();
            tIns.CabinTypeID      = db.CabinTypes.Where(p => p.Name == mainWin.cbbCabinType.Text).Select(p => p.ID).FirstOrDefault();
            tIns.BookingReference = bookRef;
            tIns.Email            = null;
            for (int i = 0; i < listPass.Count; i++)
            {
                tIns.Firstname = listPass[i].Col1;
                tIns.Lastname  = listPass[i].Col2;
                string tmp1 = listPass[i].Col5;
                tIns.PassportCountryID = db.Countries.Where(p => p.Name == tmp1).Select(p => p.ID).FirstOrDefault();
                tIns.Phone             = listPass[i].Col6;
                tIns.PassportNumber    = listPass[i].Col4;
                tIns.Confirmed         = true;
                db.Tickets.Add(tIns);
                db.SaveChanges();
                cnt++;
            }
        }
Пример #10
0
        public void loadDataDefaul()
        {
            dgvOutbound.Items.Clear();
            dgvReturn.Items.Clear();

            using (var db = new Session3Entities())
            {
                var data = db.Schedules;
                foreach (var i in data)
                {
                    ItemTable1 tb     = new ItemTable1();
                    int        rID    = i.RouteID;
                    int        airID1 = db.Routes.Where(p => p.ID == rID).Select(p => p.DepartureAirportID).FirstOrDefault();
                    tb.Col1 = db.Airports.Where(p => p.ID == airID1).Select(p => p.IATACode).FirstOrDefault();
                    int airID2 = db.Routes.Where(p => p.ID == rID).Select(p => p.ArrivalAirportID).FirstOrDefault();
                    tb.Col2 = db.Airports.Where(p => p.ID == airID2).Select(p => p.IATACode).FirstOrDefault();
                    tb.Col3 = i.Date.ToString("MM/dd/yyyy");
                    tb.Col4 = i.Time.ToString();
                    tb.Col5 = i.FlightNumber;
                    int    idCabinType = db.CabinTypes.Where(p => p.Name == cbbCabinType.Text).Select(p => p.ID).FirstOrDefault();
                    double cost        = double.Parse(i.EconomyPrice.ToString());
                    if (idCabinType == 2)
                    {
                        cost = cost + (cost * 0.35);
                    }
                    else if (idCabinType == 3)
                    {
                        cost = cost + (cost + (cost * 0.35)) * 0.3;
                    }
                    tb.Col6 = Convert.ToDecimal(cost).ToString("C0");
                    tb.Col7 = "0";
                    dgvOutbound.Items.Add(tb);
                    dgvReturn.Items.Add(tb);
                }
            }
        }
Пример #11
0
        public void getPath(List <int> path, string dt, DataGrid dg, ComboBox cb1, ComboBox cb2, int chose)
        {
            var        db              = new Session3Entities();
            DateTime   cmp             = DateTime.ParseExact(dt, "MM/dd/yyyy", null);
            int        idrou           = getIdRouter(path[0], path[1]);
            List <int> listIdSchedules = new List <int>();

            if (chose == 1)
            {
                listIdSchedules = db.Schedules.Where(p => p.Date >= cmp && p.RouteID == idrou).Select(p => p.ID).ToList();
            }
            else
            {
                listIdSchedules = db.Schedules.Where(p => p.Date == cmp && p.RouteID == idrou).Select(p => p.ID).ToList();
            }
            foreach (int id in listIdSchedules)
            {
                ItemTable1 newItem = get1Path(path, id, cb1, cb2);
                if (newItem != null)
                {
                    dg.Items.Add(newItem);
                }
            }
        }