예제 #1
0
        public void BuyTickets(HttpContext context)
        {
            string ticketType  = context.Request["ticketType"];
            string beginning   = context.Request["beginning"];
            string destination = context.Request["destination"];

            Tickets ticket = SimpleTicketFactory.CreateTicket(ticketType, beginning, destination);

            ticket.ID = int.Parse(context.Request["id"]);

            List <string> lstSeats = mgr.BuyTicket(ticket, int.Parse(context.Request["count"]));

            if (lstSeats != null)
            {
                StringBuilder builder = new StringBuilder("[");
                foreach (string item in lstSeats)
                {
                    builder.Append("{\"seat\":\"" + item + "\"},");
                }
                context.Response.Write(builder.ToString().Substring(0, builder.ToString().Length - 1) + "]");
            }
            else
            {
                context.Response.Write("[]");
            }
        }
예제 #2
0
파일: TicketsMgr.cs 프로젝트: zhzack/.net
        public bool Update(Tickets ticket)
        {
            //Tickets ticDB = TicketsDao.GetSingleTicket(ticket.TicketType, ticket.Beginning, ticket.Destination);
            Type    t     = SimpleTicketFactory.CreateTicketType(ticket.TicketType);
            Tickets ticDB = (Tickets)typeof(TicketsDao).GetMethod("GetSingleTicketGeneric").MakeGenericMethod(t)
                            .Invoke(null, new object[] { ticket.TicketType, ticket.Beginning, ticket.Destination });

            ticket.Remainder = ticDB.Remainder + ticket.Remainder;

            return(TicketsDao.Update(ticket) > 0);
        }
예제 #3
0
파일: TicketsMgr.cs 프로젝트: zhzack/.net
        public List <string> BuyTicket(Tickets ticket, int count)
        {
            Type t = SimpleTicketFactory.CreateTicketType(ticket.TicketType);

            //反射调用泛型方法,由于具体泛型只能在运行时确定
            object  res   = typeof(TicketsDao).GetMethod("GetSingleTicketByIDGeneric").MakeGenericMethod(t).Invoke(null, new object[] { ticket.ID });
            Tickets ticDb = (Tickets)res;

            if (ticDb.Remainder < count)
            {
                return(null);
            }
            ticket.Remainder = ticDb.Remainder - count;
            TicketsDao.Update(ticket);
            NotifyObserver(ticket, count);
            return(ticDb.GetSeats(count));
        }
예제 #4
0
파일: TicketsMgr.cs 프로젝트: zhzack/.net
        public List <Tickets> GetTickets(string ticketType)
        {
            Type t = SimpleTicketFactory.CreateTicketType(ticketType);

            //反射调用泛型方法,由于具体泛型只能在运行时确定
            IList templist = (IList)typeof(TicketsMgr).GetMethod("GetTicketsGeneric").MakeGenericMethod(t).Invoke(this, new object[] { ticketType });

            List <Tickets> res = new List <Tickets>();

            //返回的是具体类,需要转换为抽象类
            foreach (var item in templist)
            {
                res.Add((Tickets)item);
            }

            return(res);
        }
예제 #5
0
        public void AddTickets(HttpContext context)
        {
            string ticketType  = context.Request["ticketType"];
            string beginning   = context.Request["beginning"];
            string destination = context.Request["destination"];

            Tickets ticket = SimpleTicketFactory.CreateTicket(ticketType, beginning, destination);

            ticket.Remainder = int.Parse(context.Request["count"]);

            if (mgr.Add(ticket))
            {
                context.Response.Write("{\"status\":true}");
            }
            else
            {
                context.Response.Write("{\"status\":false}");
            }
        }