Ejemplo n.º 1
0
 protected void Page_Load(object sender, EventArgs e)
 {
     if (!Page.IsPostBack)
     {
         //加载机票信息
         string   fligntNumber   = HttpUtility.UrlDecode(Request.QueryString["FlightNumber"]);
         DateTime departDatetime = DateTime.Parse(HttpUtility.UrlDecode(Request.QueryString["DepartDatetime"]));
         var      context        = new HHUAirDataContext();
         var      ticket         = (from c in context.Tickets
                                    where c.FlightNumber == fligntNumber && c.DepartDatetime == departDatetime
                                    select c).First();
         LabelFlightNumber.Text    = ticket.FlightNumber;
         LabelDepartAirport.Text   = ticket.DepartAirport;
         LabelDepartCity.Text      = ticket.DepartCity;
         LabelDepartDatetime.Text  = ticket.DepartDatetime.ToString();
         LabelArrivalAirport.Text  = ticket.ArrivalAirport;
         LabelArrivalCity.Text     = ticket.ArrivalCity;
         LabelArrivalDatetime.Text = ticket.ArrivalDatetime.ToString();
         var model = (from c in context.Models
                      where c.Name == ticket.ModelName
                      select c).First();
         LabelModelName.Text     = model.Name;
         LabelModelType.Text     = model.Type;
         LabelMaxSeats.Text      = model.MaxSeats.ToString();
         LabelMinSeats.Text      = model.MinSeats.ToString();
         LabelCurrentPrice.Text  = ticket.CurrentPrice.ToString("0.00");
         LabelOriginalPrice.Text = ticket.OriginalPrice.ToString("0.00");
         LabelDiscount.Text      = (ticket.CurrentPrice / ticket.OriginalPrice * 10).ToString("0.0");
         LabelCurrentAmount.Text = (ticket.Amount - ticket.SoldAmount).ToString();
         LabelAmount.Text        = ticket.Amount.ToString();
         LabelSoldAmount.Text    = ticket.SoldAmount.ToString();
         LabelMemo.Text          = string.IsNullOrWhiteSpace(ticket.Memo) ? ticket.Memo : "(无)";
     }
 }
Ejemplo n.º 2
0
        protected void ButtonDeleteExpired_Click(object sender, EventArgs e)
        {
            var context = new HHUAirDataContext();
            var tickets = from c in context.Tickets where c.DepartDatetime < DateTime.Now select c;

            foreach (var ticket in tickets)
            {
                context.Tickets.DeleteOnSubmit(ticket);
            }
            context.SubmitChanges();
            GridViewTickets.DataBind();
        }
Ejemplo n.º 3
0
 protected void ButtonPay_Click(object sender, EventArgs e)
 {
     try
     {
         //购买机票,修改数据库存票数
         StringBuilder passengerNames = new StringBuilder();
         StringBuilder passengerIds   = new StringBuilder();
         bool          isNotFirst     = false;
         foreach (var nameAndId in ListBoxPassengers.Items)
         {
             if (isNotFirst)
             {
                 passengerNames.Append(", ");
                 passengerIds.Append(", ");
             }
             else
             {
                 isNotFirst = true;
             }
             string[] nai = nameAndId.ToString().Split('#');
             passengerNames.Append(nai[0]);
             passengerIds.Append(nai[1]);
         }
         var context = new HHUAirDataContext();
         var order   = new Order()
         {
             Id             = Guid.NewGuid(),
             FlightNumber   = LabelFlightNumber.Text,
             DepartDatetime = DateTime.Parse(LabelDepartDatetime.Text),
             Amount         = Int32.Parse(TextBoxAmount.Text),
             UserId         = (from c in context.aspnet_Users where c.UserName == User.Identity.Name select c.UserId).First(),
             PassengerNames = passengerNames.ToString(),
             PassengerIds   = passengerIds.ToString(),
             ContactInfo    = TextBoxContactInfo.Text,
             Memo           = TextBoxMemo.Text
         };
         context.Orders.InsertOnSubmit(order);
         var ticket = context.Tickets.SingleOrDefault(c => c.FlightNumber == order.FlightNumber && c.DepartDatetime == order.DepartDatetime);
         ticket.SoldAmount += order.Amount;
         context.SubmitChanges();
         MultiViewBuy.ActiveViewIndex = 4;
     }
     catch
     {
         MultiViewBuy.ActiveViewIndex = 3;
     }
 }
Ejemplo n.º 4
0
        /// <summary>
        /// 验证输入的信息是否合法
        /// </summary>
        private bool cannotContinue(string flightNumber, string departAirport, string arrivalAirport, string departDatetime, string arrivalDatetime, string originalPrice, string currentPrice, string amount, string soldAmout, bool isInsert)
        {
            if (string.IsNullOrWhiteSpace(flightNumber))
            {
                LabelErrorMessage.Text = "请输入航班号";
                return(true);
            }
            bool isFlightNumberLegal = true;

            if (flightNumber.Length != 10)
            {
                isFlightNumberLegal = false;
            }
            else
            {
                char[] fns = flightNumber.ToCharArray();
                foreach (char c in fns)
                {
                    if (!((c >= '0' && c <= '9') || (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')))
                    {
                        isFlightNumberLegal = false;
                        break;
                    }
                }
            }
            if (!isFlightNumberLegal)
            {
                LabelErrorMessage.Text = "航班号格式为10个字母或数字";
                return(true);
            }
            if (string.IsNullOrWhiteSpace(departDatetime))
            {
                LabelErrorMessage.Text = "请输入出发时间";
                return(true);
            }
            if (string.IsNullOrWhiteSpace(arrivalDatetime))
            {
                LabelErrorMessage.Text = "请输入抵达时间";
                return(true);
            }
            if (string.IsNullOrWhiteSpace(originalPrice))
            {
                LabelErrorMessage.Text = "请输入原始票价";
                return(true);
            }
            if (string.IsNullOrWhiteSpace(currentPrice))
            {
                LabelErrorMessage.Text = "请输入当前票价";
                return(true);
            }
            if (string.IsNullOrWhiteSpace(amount))
            {
                LabelErrorMessage.Text = "请输入合计票数";
                return(true);
            }
            if (string.IsNullOrWhiteSpace(soldAmout))
            {
                LabelErrorMessage.Text = "请输入售出票数";
                return(true);
            }
            if (departAirport == arrivalAirport)
            {
                LabelErrorMessage.Text = "出发机场和抵达机场不能相同";
                return(true);
            }
            double op, cp;

            double.TryParse(originalPrice, out op);
            if (op <= 0.0)
            {
                LabelErrorMessage.Text = "请正确输入原始票价";
                return(true);
            }
            double.TryParse(originalPrice, out cp);
            if (cp <= 0.0)
            {
                LabelErrorMessage.Text = "请正确输入当前票价";
                return(true);
            }
            int a, sa;

            int.TryParse(amount, out a);
            if (a <= 0)
            {
                LabelErrorMessage.Text = "请正确输入合计票数";
                return(true);
            }
            if ((!int.TryParse(amount, out sa)) || sa < 0)
            {
                LabelErrorMessage.Text = "请正确输入售出票数";
                return(true);
            }
            if (a < sa)
            {
                LabelErrorMessage.Text = "合计票数必须大于等于售出票数";
                return(true);
            }
            DateTime dd, ad;

            if (!DateTime.TryParse(departDatetime, out dd))
            {
                LabelErrorMessage.Text = "请正确输入出发时间";
                return(true);
            }
            if (!DateTime.TryParse(arrivalDatetime, out ad))
            {
                LabelErrorMessage.Text = "请正确输入抵达时间";
                return(true);
            }
            if (ad <= dd)
            {
                LabelErrorMessage.Text = "抵达时间必须晚于出发时间";
                return(true);
            }
            var context = new HHUAirDataContext();
            int cnt     = (from c in context.Tickets where c.FlightNumber == flightNumber && c.DepartDatetime == dd select c).Count();

            if (isInsert ? cnt > 0 : cnt > 1)
            {
                LabelErrorMessage.Text = "相同航班号和出发时间的机票已经存在,不能重复添加";
                return(true);
            }
            cnt = (from c in context.Orders where c.FlightNumber == flightNumber && c.DepartDatetime == dd select c).Count();
            if (cnt > 0 && sa < cnt)
            {
                LabelErrorMessage.Text = "设定的售出票数必须大于等于实际售出票数";
                return(true);
            }
            return(false);
        }