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 : "(无)"; } }
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(); }
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; } }
/// <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); }