Exemple #1
0
        public ActionResult Index(TicketQueryModel model)
        {
            try
            {
                //需要前端验证
                if (!model.FromStationId.HasValue || !model.ToStationId.HasValue)
                {
                    throw new Exception("你还没选择出发站或者到达站");
                }

                //需要前端验证
                if (model.FromStationId >= model.ToStationId)
                {
                    throw new Exception("到达站不能在出发站之前");
                }

                Ticket queryTicket = new Ticket { From = model.FromStationId.GetValueOrDefault(0), To = model.ToStationId.GetValueOrDefault(0) };

                model.AvailableTicketsCount = this.ticketService.GetAvailableTicketsCount(queryTicket);

            }
            catch (Exception ex)
            {
                ErrorNotification(ex.Message);
            }
            return View(model);
        }
Exemple #2
0
        public virtual int GetAvailableTicketsCount(Ticket ticket)
        {
            //假设火车共100座位
            int TICKETSCOUNT = 100;

            //查询起始站冲突的订单座位
            Sql sql = Sql.Builder.Append("SELECT COUNT(Id) FROM `order` WHERE `From` < @0 AND `To` > @1 AND OrderStatus = @2", ticket.To, ticket.From, OrderStatus.Success.ToString());

            return TICKETSCOUNT - this.repository.ExecuteScalar<int>(sql.SQL, sql.Arguments);
        }