public ActionResult ReturnToShowLuggages()
        {
            string cur_state = Request.Params["s"];

            cur_state = cur_state.Trim();

            if (cur_state == "已登机")
            {
                MessageBox.Show("该行李已经登机啦!");
            }
            else
            {
                int    Luggage_ID = int.Parse(Request.Params["l_id"]);
                string Flight_ID  = Request.Params["ff_id"];
                Flight_ID = Flight_ID.Trim();
                int           w = int.Parse(Request.Params["w"]);
                StringBuilder s = new StringBuilder();
                s.Append("已登机");

                LUGGAGE objlug = new LUGGAGE()
                {
                    F_ID = Flight_ID, L_ID = Luggage_ID, WEGHT = Convert.ToInt16(w), STATE = s.ToString()
                };
                db.Updateable(objlug).ExecuteCommand();
            }
            List <Luggage> Luggages = new List <Luggage>();
            List <object>  list     = new List <object>(); //对象
            List <string>  value    = new List <string>(); //值
            Luggage        obj      = new Luggage();
            SelectReturn   sr       = DataBaseAccess.GetAllTInfo(obj);

            list  = sr.list;
            value = sr.value;
            //obj转Luggage
            int flag = 0;

            foreach (object j in list)
            {
                Luggage luggage = new Luggage();//current
                //手动赋值,暂时没有找到映射的方法
                luggage.F_ID  = value[flag++];
                luggage.L_ID  = int.Parse(value[flag++]);
                luggage.Weght = int.Parse(value[flag++]);
                luggage.State = value[flag++];
                Luggages.Add(luggage);
            }
            //
            return(View("ShowLuggages", Luggages));
        }
예제 #2
0
 public void InsertLuggage(LUGGAGE luggage)
 {
     db.Insertable(luggage).ExecuteCommand();
 }
예제 #3
0
        public void customerActions()
        {
            Actions a = new Actions();
            //办理登机牌

            var systime      = a.SystemTime;
            var preCardtime  = systime.AddHours(3);    //3小时前办理登机牌
            var preBoardtime = systime.AddMinutes(30); //30分钟前登机
            List <FLIGHTIME> preCardFlightimeList = a.searchPreCardFlights(preCardtime);

            foreach (var preCardFlightime in preCardFlightimeList) //办理登机的飞机
            {
                short count           = 0;
                var   preCardSeatList = a.searchPreCardSeats(preCardFlightime.F_ID);

                foreach (SEAT preCardSeat in preCardSeatList)
                {
                    bool find = false;
                    do
                    {
                        Random ran     = new Random(DateTime.Now.Millisecond);
                        int    RandKey = ran.Next(14) + 1;

                        //**********此处有问题 SEAT_NUMBER是string类型***********

                        //找座位是否被占用
                        bool found = a.judgeFoundSeat(preCardSeat.F_ID, RandKey.ToString());
                        if (!found)
                        {
                            preCardSeat.STATE       = "已办理";
                            preCardSeat.SEAT_NUMBER = RandKey.ToString();
                            try
                            {
                                a.BeginTran();
                                a.updateSeat(preCardSeat);
                                string c_name = a.getCustomer(preCardSeat.C_ID).NAME;
                                textBox1.Text += (preCardSeat.F_ID + " " + c_name + " 已办理\r\n");
                                a.CommitTran();
                            }
                            catch
                            {
                                a.RollbackTran();
                                Console.WriteLine("updateSeat");
                            }


                            CUSTOMER customer = a.getCustomer(preCardSeat.C_ID);
                            if (customer.LUG_WEIGHT != null)
                            {     //这个顾客有行李
                                LUGGAGE luggage = new LUGGAGE();
                                luggage.F_ID  = preCardSeat.F_ID;
                                luggage.L_ID  = preCardSeat.C_ID;
                                luggage.STATE = "已办理";
                                luggage.WEGHT = (short)customer.LUG_WEIGHT;
                                a.InsertLuggage(luggage);
                                string c_name = a.getCustomer(luggage.L_ID).NAME;
                                textBox1.Text += (c_name + " 行李已办理\r\n");
                            }
                            else    //没有行李,不用处理
                            {
                            }

                            find = true;
                        }
                        else
                        {
                        }       //座位已被占
                    } while (find != true);
                    count++;
                }           //修改飞机已办理信息
                var preCardFlight = a.getFlight(preCardFlightime.F_ID);
                preCardFlight.CHECKED += count;
                try
                {
                    a.BeginTran();
                    a.updateFlight(preCardFlight);
                    textBox1.Text += (preCardFlight.F_ID + " 信息已更新\r\n");
                    a.CommitTran();
                }
                catch
                {
                    a.RollbackTran();
                    Console.WriteLine("updateFlight");
                }
            }

            //要登机的航班
            var preBoardFlightimeList = a.GetpreBoardFlightimeList(preBoardtime);

            foreach (var preBoardFlightime in preBoardFlightimeList) //办理登机的飞机
            {
                short count            = 0;
                var   preBoardSeatList = a.GetpreBoardSeats(preBoardFlightime.F_ID);
                foreach (SEAT preBoardSeat in preBoardSeatList)
                {
                    preBoardSeat.STATE = "已登机";
                    string c_name = a.getCustomer(preBoardSeat.C_ID).NAME;
                    textBox1.Text += (c_name + " 已登机\r\n");
                    count++;
                }
                if (preBoardSeatList.ToArray().Length != 0)
                {
                    a.updateSeat(preBoardSeatList);
                }

                var preBoardFlight = a.getFlight(preBoardFlightime.F_ID);
                preBoardFlight.BOARD += count;
                a.updateFlight(preBoardFlight);
                a.UpdateBoardLuggage(preBoardFlight.F_ID);
            }
        }
예제 #4
0
        public ActionResult ReceiveMsg()       //返回登机牌页面                //然后如果乘客有行李,那么添加行李到luggage
        {
            //姓名,性别,ID,航班号,出发时间,座位号

            //获取ID,查询姓名,性别
            int           Current_Customer_ID = int.Parse(Request.Params["Customer_ID"]);
            Customer      cobj       = new Customer(Current_Customer_ID);
            List <string> SingleInfo = new List <string>();

            SingleInfo.Add("Name");         //0
            SingleInfo.Add("Gender");       //1
            List <string> resInfo = new List <string>();

            resInfo = DataBaseAccess.GetSingleInfo(cobj, SingleInfo);
            resInfo.Add(Current_Customer_ID.ToString());           //2
            //
            //获取当前飞机ID
            string Current_Flight_ID = Request.Params["current_flight"];            //3
            //出发地点
            string airport_terminal = Request.Params["airport_terminal"];           //4
            //出发时间
            string ex_takeoff_time = Request.Params["ex_takeoff_time"];             //5
            //座位号
            int Pickrt = int.Parse(Request.Params["result"]);                       //6

            resInfo.Add(Current_Flight_ID);
            resInfo.Add(airport_terminal);
            resInfo.Add(ex_takeoff_time);
            resInfo.Add(Pickrt.ToString());
            //座位,更新已预订为已办理

            SEAT objst = new SEAT()
            {
                F_ID = Current_Flight_ID, SEAT_NUMBER = Pickrt.ToString(), C_ID = Current_Customer_ID, STATE = "已办理"
            };

            db.Updateable(objst).ExecuteCommand();
            /***************************************/
            //在这里将已办理人数加一

            var fstate = db.Queryable <FLIGHT>().Where(it => it.F_ID == Current_Flight_ID).ToList();

            foreach (var i in fstate)
            {
                i.CHECKED++;
                db.Updateable(i).ExecuteCommand();
            }
            //
            /***************************************/
            //在这里检查顾客是否有行李
            List <string> weight = new List <string>();

            weight.Add("Lug_Weight");
            var Current_Customer_Luggage = DataBaseAccess.GetSingleInfo(cobj, weight);

            if (Current_Customer_Luggage[0].ToString() != "")
            {
                //顾客ID     Current_Customer_ID
                //航班ID     Current_Flight_ID
                //重量       Current_Customer_Luggage.ToString()
                //费用       y=kx-b
                int cost;
                if (int.Parse(Current_Customer_Luggage[0].ToString()) < 5)
                {
                    cost = 0;
                }
                else
                {
                    cost = (int.Parse(Current_Customer_Luggage[0].ToString()) - 5) * 50;
                }

                //状态
                string  state   = "已办理";
                LUGGAGE luggage = new LUGGAGE()
                {
                    F_ID = Current_Flight_ID, L_ID = Current_Customer_ID, WEGHT = Convert.ToInt16(int.Parse(Current_Customer_Luggage[0])), STATE = state
                };
                db.Insertable(luggage).ExecuteCommand();
                /*************************************/
            }
            return(View("ShowBoardingPass", resInfo));
        }