private void ReserveTicket()
        {
            if (validation.ValidateFields(new Control[] { ticketFirstNameInput, ticketLastNameInput, ticketConcertInput, ticketEmailInput }) && validation.ValidateMail(ticketEmailInput.Text))
            {
                var newTicket = new TicketOrders
                {
                    FirstName   = ticketFirstNameInput.Text,
                    LastName    = ticketLastNameInput.Text,
                    ConcertID   = Int32.Parse(ticketConcertInput.SelectedValue.ToString().Split(new string[] { " | " }, StringSplitOptions.None)[0]),
                    Mail        = ticketEmailInput.Text,
                    PhoneNumber = ticketPhoneNumberInput.Text,
                    VIPTicket   = ticketVipCheckbox.IsChecked ?? false
                };

                context.TicketOrders.Add(newTicket);
                context.SaveChanges();
                this.NavigationService.Navigate(new Uri("Windows/TicketOrdersList.xaml", UriKind.Relative));
            }
            else
            {
                wrongMailText.Text            = "This field cannot be empty";
                wrongMailText.Visibility      = Visibility.Visible;
                emptyConcertText.Visibility   = Visibility.Visible;
                emptyFirstNameText.Visibility = Visibility.Visible;
                emptyLastNameText.Visibility  = Visibility.Visible;
            }
            if (!validation.ValidateMail(ticketEmailInput.ToString()) && !String.IsNullOrWhiteSpace(ticketEmailInput.Text))
            {
                wrongMailText.Text       = "Invalid e-mail address!";
                wrongMailText.Visibility = Visibility.Visible;
            }
        }
        public IActionResult UpdateOrder([FromBodyAttribute] TicketOrderUpdate Request)
        {
            if (!ModelState.IsValid || Request.OrderId == 0 || string.IsNullOrEmpty(Request.status))
            {
                return(Ok(new Application_ResponseWrapper()
                {
                    ResponseCode = "1000", ResponseMessage = "failed", Status = "Error in Api while Update in OrderTicket ", ResponseResult = "Request is Invalid"
                }));
            }

            try
            {
                ITicketStatusRepository _status = new TicketStatusRepository(_applicationDbContext);
                var          Status             = _status.FindBy(x => x.fullName == Request.status).FirstOrDefault().Id;
                TicketOrders order = _order.FindBy(x => x.Id == Request.OrderId).SingleOrDefault();
                order.ticketStatus = Convert.ToInt32(Status);
                _order.Update(order);
                _order.Commit();
                return(Ok(new Application_ResponseWrapper()
                {
                    ResponseCode = "0", ResponseMessage = "success", Status = "success", ResponseResult = order
                }));
            }
            catch (Exception e)
            {
                return(Ok(new Application_ResponseWrapper()
                {
                    ResponseCode = "1000", ResponseMessage = "failed", Status = "Error in update", ResponseResult = e
                }));
            }
        }
示例#3
0
        public void checkEmptyConfig_back_notEmpty()
        {
            var config = new TicketOrders();

            config.targetDate.TripBackDate = "11/30";
            config.targetDate.TripBackTime = "11:30";

            var check = _validation.haveBackDateFunc(config);

            Assert.IsTrue(check);
        }
示例#4
0
        public void checkEmptyConfig_back()
        {
            var config = new TicketOrders();

            config.targetDate.TripBackDate = "";
            config.targetDate.TripBackTime = "";

            var check = _validation.haveBackDateFunc(config);

            Assert.IsFalse(check);
        }
示例#5
0
 public void validOrderIdAndIdCardTest()
 {
     try
     {
         var config = new TicketOrders();
         _validation.validOrderIdAndIdCard(config);
     }
     catch (InvalidConfigException ex)
     {
         Assert.True(ex.Message.Contains("訂位代號及身份證字號不得為空"));
     }
 }
        private long Order(passengerList p, FareEnquiry_Response_Type3 Response, TransactionalTrainFareRequest Request, passengerList[] psngerArray)
        {
            IIDCardTypeRepository       _card         = new IDCardTypeRepository(_applicationDbContext);
            IQuotaRepository            _quota        = new QuotaRepository(_applicationDbContext);
            IUserRegistrationRepository _user         = new UserRegistrationRepository(_applicationDbContext);
            ITicketStatusRepository     _status       = new TicketStatusRepository(_applicationDbContext);
            IMerchantTypeRepository     _merchantType = new MerchantTypeRepository(_applicationDbContext);
            var Status       = _status.FindBy(x => x.fullName == "ORDERD").FirstOrDefault().Id;
            var QuotaId      = _quota.FindBy(x => x.shortName == Request.quota).FirstOrDefault().Id;
            var Icardno      = _card.FindBy(x => x.name == p.passengerCardType).FirstOrDefault().Id;
            var User         = _user.FindBy(x => x.merchantAccount == Request.loginAccountNo).SingleOrDefault();
            var merchantType = _merchantType.FindBy(x => x.merchantId == User.merchantId).SingleOrDefault();
            // Dynamic Pgcharges
            decimal PgCharge = merchantType.conditionalAmount >= Convert.ToDecimal(Response.totalFare) ?decimal.Divide(decimal.Multiply(Convert.ToDecimal(Response.totalFare), Convert.ToDecimal(merchantType.pgChargeUnderCondition)), 100)
            :decimal.Divide(decimal.Multiply(Convert.ToDecimal(Response.totalFare), Convert.ToDecimal(merchantType.pgChargeBeyondCondition)), 100);

            TicketOrders Order = _order.AddTicketOrder(new TicketOrders()
            {
                sourceStation = Request.trainFrom,
                destStation   = Request.trainTo,
                trainNumber   = Request.trainNo,
                trainName     = Response.trainName,
                Class         = Request.trainClass,
                reserveUpto   = Request.trainTo,
                bordingPoint  = Request.request.boardingStation,
                ticketAmt     = Convert.ToDecimal(Response.totalFare),
                totalAmt      = Convert.ToDecimal(Response.totalFare) + merchantType.oxigenServiceCharge - merchantType.merchantCommission, //from database from --
                //merchantConfigTable(totalfare+oxigenServiceCharge-MerchantCommission)
                journeyDay            = Convert.ToInt32(Request.journyDate.Substring(6)),
                journeyMonth          = Convert.ToInt32(Request.journyDate.Substring(4, 2)),
                journeyYear           = Convert.ToInt32(Request.journyDate.Substring(0, 4)),
                quota                 = Convert.ToInt32(QuotaId), //from data base based on quota id
                pmtGatewayName        = merchantType.pgName,
                pmtCardType           = Request.pmtCardType,
                accountNumber         = Request.accountNumber,
                irctcServiceCharge    = Convert.ToDecimal(Response.wpServiceCharge) + Convert.ToDecimal(Response.wpServiceTax),
                operatorCode          = Request.operatorCode,
                mobileNo              = Request.request.mobileNumber,
                idCardNumber          = p.passengerCardNumber,
                idCardType            = Convert.ToInt32(Icardno), //will get by p.passengerCardType from database
                ticketStatus          = Convert.ToInt32(Status),  //ticketstatus from database
                paymentGateway        = (long)(PgCharge),         //payment gateway charges from database in percent
                session               = Request.userSession,
                bookingDate           = DateTime.Now,
                oxigenServiceCharge   = merchantType.oxigenServiceCharge, //from database from merchantConfigTable
                email                 = Request.PassengerEmail,           //from database using login account no
                loginAccountNo        = Request.loginAccountNo,
                bookingSource         = HttpContext.Connection.RemoteIpAddress.ToString(),
                reservationChoice     = (Request.request.reservationChoice) == "FALSE" ? "N" : "Y",
                isTatkal              = Request.isTatkal,
                ticketVerificationKey = Request.loginAccountNo + ":" + Request.trainNo + ":" + Request.trainFrom + ":" + Request.trainTo + ":" + Request.userSession + ":" + Request.journyDate + ":" + Request.request.mobileNumber,
                psgAddress            = Request.psgAddress,
                irctcTxnNumber        = Request.request.clientTransactionId
            });

            _order.Commit();
            if (psngerArray != null)
            {
                foreach (passengerList p1 in psngerArray)
                {
                    long NewpsngrId = addPassenger(Icardno, Order.Id, p1, Response, Request);
                }
            }
            else
            {
                long NewpsngrId = addPassenger(Icardno, Order.Id, p, Response, Request);
            }
            return(Order.Id);
        }