コード例 #1
0
        public void AddNewReservation(ReservationModelView reservationModelView)
        {
            string[] dates = reservationModelView.expiry.Split('/');
            int      mount = int.Parse(dates[0]);
            int      year  = int.Parse(dates[1]) + 2000;

            CreditCard creditCard = new CreditCard()
            {
                NameSurname = reservationModelView.name,
                CardNumber  = reservationModelView.number,
                ExpDate     = new DateTime(year, mount, 1),
                CVV         = reservationModelView.cvc
            };

            creditCardRepository.Add(creditCard);
            creditCardRepository.Complete();

            TicketReservation ticketReservation = new TicketReservation()
            {
                IdCreditCard = creditCard.Id,
                IdTicket     = reservationModelView.IdTicket,
                Created      = DateTime.Now,
                Email        = reservationModelView.Email,
                FullName     = reservationModelView.FullName,
                Quantity     = reservationModelView.Quantity
            };

            ticketReservationRepository.Add(ticketReservation);
            ticketReservationRepository.Complete();
        }
コード例 #2
0
ファイル: RealtimeHub.cs プロジェクト: sixtythreebits/Cavea
        public bool RemoveReservations(Schedule Schedule, List <SeatStatusChange> Seats, Guid MachineID, bool IsBookingCancelation)
        {
            long userid;

            SecuredUsers.Items.TryGetValue(Context.ConnectionId, out userid);

            var dtos = Seats.Select(s => new TicketReservationDTO
            {
                ScheduleID = Schedule.ID,
                SeatID     = s.SeatID,
                OperatorID = userid
            });

            var xml = new TicketReservationWrapperDTO
            {
                IsBookingCancelation = IsBookingCancelation,
                Reservations         = dtos.ToList()
            }.ToXml();

            var repo = new TicketReservation();

            repo.TX(1, xml);

            if (!repo.IsError)
            {
                Clients.All.RemoteReserveSeats(Schedule, Seats, MachineID);
            }

            return(!repo.IsError);
        }
コード例 #3
0
ファイル: RealtimeHub.cs プロジェクト: sixtythreebits/Cavea
        public bool ReserveSeats(int OperatorStockID, long CustomerID, Schedule Schedule, List <SeatStatusChange> Seats, Guid MachineID)
        {
            long userid;

            SecuredUsers.Items.TryGetValue(Context.ConnectionId, out userid);

            var repo = new TicketReservation();

            var reservedSeats = Seats.Where(s => !s.IsBooking && s.IsReserved).ToList();

            var dtos = reservedSeats.Select(s => new TicketReservationDTO
            {
                ScheduleID = Schedule.ID,
                SeatID     = s.SeatID,
                OperatorID = userid,
                StatusCode = 1
            });

            var xml = new TicketReservationWrapperDTO
            {
                Reservations = dtos.ToList()
            }.ToXml();

            repo.TX(0, xml);

            if (!repo.IsError)
            {
                Clients.All.RemoteReserveSeats(Schedule, reservedSeats, MachineID);
            }

            return(!repo.IsError);
        }
コード例 #4
0
        void UpdateBlockReservation()
        {
            long sessionID;
            bool isBlocked;
            var  success = false;

            if (bool.TryParse(Request.Form["isBlocked"], out isBlocked) &&
                long.TryParse(Request.QueryString["sessionID"], out sessionID))
            {
                var seats = JsonConvert.DeserializeXNode(Request.Form["data"], "data").Root;

                var xml = new TicketReservationWrapperDTO
                {
                    IsUnblocking = !isBlocked,
                    Reservations = seats.Children("seats").Select(s => new TicketReservationDTO
                    {
                        ScheduleID = sessionID,
                        SeatID     = s.LongValueOf("seatID").Value,
                        StatusCode = 7
                    }).ToList()
                }.ToXml();

                var repo = new TicketReservation();
                var iud  = (byte)(isBlocked ? 0 : 1);
                repo.TX(iud, xml);
                success = !repo.IsError;
            }

            Response.WriteJson(new { Success = success });
        }
コード例 #5
0
        public static TicketReservation CreateReservation(Event Event, int tktQty)
        {
            TicketReservation reservation = new TicketReservation();

            reservation.Id             = Guid.NewGuid();
            reservation.Event          = Event;
            reservation.ExpiryTime     = DateTime.Now.AddMinutes(1);
            reservation.TicketQuantity = tktQty;
            return(reservation);
        }
        public async Task <IHttpActionResult> PutTicketReservation(TicketReservation ticketReservation)
        {
            if (ticketReservation == null)
            {
                return(BadRequest());
            }
            _unitOfWork.TicketReservation.Update(ticketReservation);
            await _unitOfWork.Complete();

            return(Ok(ticketReservation));
        }
コード例 #7
0
        public static ReserveTicketResponse ConvertToReserveTicketResponse(this TicketReservation ticketReservation)
        {
            ReserveTicketResponse response = new ReserveTicketResponse();

            response.EventId           = ticketReservation.Event.Id.ToString();
            response.EventName         = ticketReservation.Event.Name;
            response.NoOfTickets       = ticketReservation.TicketQuantity;
            response.ExpirationDate    = ticketReservation.ExpiryTime;
            response.ReservationNumber = ticketReservation.Id.ToString();
            return(response);
        }
コード例 #8
0
        public async Task <ActionResult> PostTicketReservation(TicketReservationDTO ticketReservationDTO)
        {
            if (ticketReservationDTO == null)
            {
                return(BadRequest());
            }
            TicketReservation ticketReservation = new TicketReservation();

            ticketReservation.TicketNo         = ticketReservationDTO.TicketNo;
            ticketReservation.PassengerName    = ticketReservationDTO.PassengerName;
            ticketReservation.PassengerPhoneNo = ticketReservationDTO.PassengerPhoneNo;
            ticketReservation.PassengerEmail   = ticketReservationDTO.PassengerEmail;
            ticketReservation.Gender           = ticketReservationDTO.Gender;
            ticketReservation.NoOfTicket       = ticketReservationDTO.NoOfTicket;
            ticketReservation.UnitPrice        = ticketReservationDTO.UnitPrice;
            ticketReservation.SeatNo           = ticketReservationDTO.SeatNo;
            ticketReservation.ReservationDate  = ticketReservationDTO.ReservationDate;
            ticketReservation.RouteDetailID    = ticketReservationDTO.RouteDetailID;
            _unitOfWork.TicketReservation.Add(ticketReservation);
            await _unitOfWork.Complete();

            Payment payment = new Payment();

            payment.TicketResrvID = ticketReservation.TicketResrvID;
            payment.VendorName    = ticketReservationDTO.VendorName;
            payment.PaymentAmount = ticketReservationDTO.PaymentAmount;
            payment.TransactionID = ticketReservationDTO.TransactionID;
            payment.PaymentDate   = ticketReservationDTO.PaymentDate;
            _unitOfWork.Payment.Add(payment);
            await _unitOfWork.Complete();

            StringBuilder sb = new StringBuilder("", 200);

            _passangerPhoneNumber = ticketReservation.PassengerPhoneNo;
            sb.Append("Please Confirm Your Payment!!\n");
            sb.AppendLine("Your Ticket No: " + ticketReservation.TicketNo + "\n");
            sb.AppendLine("Your Journey Date : " + ticketReservation.ReservationDate.Date + "\n");

            sb.AppendLine("Your Seat No : " + ticketReservation.SeatNo.ToString() + "\n");
            sb.AppendLine("Thank Your for using our service\n");
            SendOneToOneSingleSms(ticketReservation.PassengerPhoneNo, sb.ToString());

            return(Ok(ticketReservation));
        }
        public async Task <IHttpActionResult> PostTicketReservation(TicketReservationDTO ticketReservationDTO)
        {
            if (ticketReservationDTO == null)
            {
                return(BadRequest());
            }
            TicketReservation ticketReservation = new TicketReservation();

            ticketReservation.TicketNo         = ticketReservationDTO.TicketNo;
            ticketReservation.PassengerName    = ticketReservationDTO.PassengerName;
            ticketReservation.PassengerPhoneNo = ticketReservationDTO.PassengerPhoneNo;
            ticketReservation.PassengerEmail   = ticketReservationDTO.PassengerEmail;
            ticketReservation.Gender           = ticketReservationDTO.Gender;
            ticketReservation.NoOfTicket       = ticketReservationDTO.NoOfTicket;
            ticketReservation.UnitPrice        = ticketReservationDTO.UnitPrice;
            ticketReservation.SeatNo           = ticketReservationDTO.SeatNo;
            ticketReservation.ReservationDate  = ticketReservationDTO.ReservationDate;
            ticketReservation.RouteDetailID    = ticketReservationDTO.RouteDetailID;
            _unitOfWork.TicketReservation.Add(ticketReservation);
            await _unitOfWork.Complete();

            Payment payment = new Payment();

            payment.TicketResrvID = ticketReservation.TicketResrvID;
            payment.VendorName    = ticketReservationDTO.VendorName;
            payment.PaymentAmount = ticketReservationDTO.PaymentAmount;
            payment.TransactionID = ticketReservationDTO.TransactionID;
            payment.PaymentDate   = ticketReservationDTO.PaymentDate;
            _unitOfWork.Payment.Add(payment);
            await _unitOfWork.Complete();

            SendOneToOneSingleSms(ticketReservation.PassengerPhoneNo, "Success");


            return(Ok(ticketReservation));
        }
コード例 #10
0
        public static List <TicketReservation> Ticket(int Seat, int BusScheduleId, DateTime Date)
        {
            List <TicketReservation> BusTicketBooking = new List <TicketReservation>();
            int c        = 1;
            var SeatText = 65;

            for (int i = 0; i < Seat; i++)
            {
                TicketReservation vs = new TicketReservation()
                {
                    ConfirmStatus       = false,
                    BusScheduleId       = BusScheduleId,
                    Date                = Date,
                    AgentId             = 1,
                    PassengerId         = 1,
                    TicketReservationId = 0
                };
                int k = i;
                if (k % 4 == 0 && k > 0)
                {
                    SeatText++;
                    c = 1;
                }
                var t = (char)SeatText;

                var o = t.ToString();
                vs.SeatNumber = o + " " + c;

                BusTicketBooking.Add(vs);
                c++;
            }



            return(BusTicketBooking);
        }
コード例 #11
0
        public Event FindBy(Guid id)
        {
            Event Event = default(Event);

            string queryString = "SELECT * FROM dbo.Events WHERE Id = @EventId " +
                                 "SELECT * FROM dbo.PurchasedTickets WHERE EventId = @EventId " +
                                 "SELECT * FROM dbo.ReservedTickets WHERE EventId = @EventId;";

            using (SqlConnection connection =
                       new SqlConnection(connectionString))
            {
                SqlCommand command = connection.CreateCommand();
                command.CommandText = queryString;

                SqlParameter Idparam = new SqlParameter("@EventId", id.ToString());
                command.Parameters.Add(Idparam);

                connection.Open();

                using (SqlDataReader reader = command.ExecuteReader())
                {
                    if (reader.HasRows)
                    {
                        reader.Read();
                        Event = new Event();
                        Event.PurchasedTickets = new List <TicketPurchase>();
                        Event.ReservedTickets  = new List <TicketReservation>();
                        Event.Allocation       = int.Parse(reader["Allocation"].ToString());
                        Event.Id   = new Guid(reader["Id"].ToString());
                        Event.Name = reader["Name"].ToString();

                        if (reader.NextResult())
                        {
                            if (reader.HasRows)
                            {
                                while (reader.Read())
                                {
                                    TicketPurchase ticketPurchase = new TicketPurchase();
                                    ticketPurchase.Id             = new Guid(reader["Id"].ToString());
                                    ticketPurchase.Event          = Event;
                                    ticketPurchase.TicketQuantity = int.Parse(reader["TicketQuantity"].ToString());
                                    Event.PurchasedTickets.Add(ticketPurchase);
                                }
                            }
                        }

                        if (reader.NextResult())
                        {
                            if (reader.HasRows)
                            {
                                while (reader.Read())
                                {
                                    TicketReservation ticketReservation = new TicketReservation();
                                    ticketReservation.Id              = new Guid(reader["Id"].ToString());
                                    ticketReservation.Event           = Event;
                                    ticketReservation.ExpiryTime      = DateTime.Parse(reader["ExpiryTime"].ToString());
                                    ticketReservation.TicketQuantity  = int.Parse(reader["TicketQuantity"].ToString());
                                    ticketReservation.HasBeenRedeemed = bool.Parse(reader["HasBeenRedeemed"].ToString());
                                    Event.ReservedTickets.Add(ticketReservation);
                                }
                            }
                        }
                    }
                }
            }

            return(Event);
        }
コード例 #12
0
        public IActionResult ConfirmTicket(List <TicketReservationVm> a, string PassengerName, int PassengerMobile)
        {
            var ab = a.Where(s => s.ConfirmStatus == true && s.MightBeReserve == true).ToList();

            if (ab.Count != 0)
            {
                Passenger p = new Passenger()
                {
                    PassengerId = 0,
                    Mobile      = PassengerMobile,
                    Name        = PassengerName
                };
                _context.Passengers.Add(p);
                _context.SaveChanges();

                var seatList = new List <string>();

                foreach (var item in ab)
                {
                    TicketReservation c = new TicketReservation()
                    {
                        TicketReservationId = item.TicketReservationId,
                        AgentId             = item.AgentId,
                        ConfirmStatus       = item.ConfirmStatus,
                        BusScheduleId       = item.BusScheduleId,
                        Date        = item.Date,
                        PassengerId = p.PassengerId,
                        SeatNumber  = item.SeatNumber
                    };

                    _context.TicketReservations.Update(c);
                    _context.SaveChanges();
                    seatList.Add(c.SeatNumber);
                }

                var ss = _context.BusSchedules.AsNoTracking().Include(sp => sp.Bus).ToList();
                var pa = _context.Places.AsNoTracking().ToList();
                var pp = _context.Places.AsNoTracking().ToList();
                var s  = from abc in ss
                         join ab1 in pa on abc.StartingFrom equals ab1.PlaceId
                         join aaab in pp on abc.Destination equals aaab.PlaceId
                         where abc.BusScheduleId == ab[0].BusScheduleId
                         select new
                {
                    DestinationName  = aaab.PlaceName,
                    StartingFromName = ab1.PlaceName,
                    Time             = abc.Time,

                    CoachName   = abc.Bus.CoachName,
                    TicketPrice = abc.TicketPrice,
                };



                TicketVm t = new TicketVm()
                {
                    PassengerName = p.Name,
                    Mobile        = p.Mobile,
                    Seat          = seatList,
                };
                foreach (var item in s)
                {
                    t.Destination = item.DestinationName;
                    t.StartFrom   = item.StartingFromName;

                    t.TicketPrice = item.TicketPrice;
                    t.Date        = a[0].Date;
                    t.BusName     = item.CoachName;
                    t.Time        = item.Time;
                }
                t.TotalCost = t.TicketPrice * ab.Count();



                return(View(t));
            }
            return(RedirectToAction("Index"));
        }