예제 #1
0
        internal bool SubmitPassengerDetails(PassengerDetails passenger)
        {
            var spinningDiv = WaitAndGetBySelector("SpinningDiv", ApplicationSettings.TimeOut.Slow);

            while (spinningDiv != null && spinningDiv.Displayed)
            {
                ;
            }

            Thread.Sleep(500);
            var divCartLoaded = WaitAndGetBySelector("divCartLoaded", ApplicationSettings.TimeOut.Slow);

            if (divCartLoaded != null && divCartLoaded.Displayed)
            {
                Thread.Sleep(2000);
                WaitAndGetBySelector("countryInsurance", ApplicationSettings.TimeOut.Slow).SelectFromDropDown(passenger.InsuranceData.Country);
                ExecuteJavascript("$('input.span7.jsDob').prop('disabled', false);");
                ExecuteJavascript("$('input.span12.jsFName').val('" + passenger.FirstName + "')");
                ExecuteJavascript("$('input.span12.jsLName').val('" + passenger.LastName + "')");
                ExecuteJavascript("$('input.span7.jsDob').val('" + passenger.DOB + "')");
                ExecuteJavascript("$('input.span11.jsEmail').val('" + passenger.Emailid + "')");
                ExecuteJavascript("$('input.span11.jsVEmail').val('" + passenger.Emailid + "')");
                ExecuteJavascript("$('select.span10.jsGender').val('" + passenger.Gender + "')");
                Thread.Sleep(5000);
                WaitAndGetBySelector("Submitbutton", ApplicationSettings.TimeOut.Fast).Click();
                ConfirmPassengers();
                return(true);
            }
            return(false);
        }
예제 #2
0
 private void GrantAccessToPassengerIntoPlane(PassengerDetails passenger)
 {
     if (MaxCapacityNotReached())
     {
         passenger.CanBoardFlight = true;
     }
 }
        public ActionResult Edit(string id, PassengerDetails collection)
        {                               // defaults to IFormCollection
            if (ModelState.IsValid)
            {
                try
                {
                    // TODO: Add update logic here
                    var pd = _passengers.FirstOrDefault(p => p.Name == id);
                    if (pd == null)
                    {
                        return(NotFound());
                    }
                    //PutInSession(pd);
                    PassengerDetails pdOld = pd.Clone() as PassengerDetails;
                    pd.Weight = collection.Weight;

                    PutInSession(pdOld, pd);
                    return(RedirectToAction(nameof(Index)));
                }
                catch
                {
                    return(FindAndDisplay(id));
                }
            }
            else
            {
                return(View(collection));
            }
        }
        public async Task <IHttpActionResult> PutPassengerDetails(string id, PassengerDetails passengerDetails)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != passengerDetails.PassengerId)
            {
                return(BadRequest());
            }

            db.Entry(passengerDetails).State = EntityState.Modified;

            try
            {
                await db.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!PassengerDetailsExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
        public async Task <IHttpActionResult> PostPassengerDetails(PassengerDetails passengerDetails)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.PassengerDetails.Add(passengerDetails);

            try
            {
                await db.SaveChangesAsync();
            }
            catch (DbUpdateException)
            {
                if (PassengerDetailsExists(passengerDetails.PassengerId))
                {
                    return(Conflict());
                }
                else
                {
                    throw;
                }
            }

            return(CreatedAtRoute("DefaultApi", new { id = passengerDetails.PassengerId }, passengerDetails));
        }
예제 #6
0
 public IActionResult Post([FromBody] PassengerDetails value)
 {
     if (ModelState.IsValid)
     {
         _repo.Add(value);
     }
     return(Created("api/PassengersAPI/" + value.Name, value));
 }
        public async Task <IHttpActionResult> GetPassengerDetails(string id)
        {
            PassengerDetails passengerDetails = await db.PassengerDetails.FindAsync(id);

            if (passengerDetails == null)
            {
                return(NotFound());
            }

            return(Ok(passengerDetails));
        }
        private void PutInSession(PassengerDetails pdOld, PassengerDetails pdNew)
        {
            JsonSerializer js = new JsonSerializer();
            StringWriter   sw = new StringWriter();

            js.Serialize(sw, new Tuple <PassengerDetails, PassengerDetails>(pdOld, pdNew));
            var jsonOutput = sw.ToString();

            HttpContext.Session.SetString("Change", jsonOutput);

//            HttpContext.Session.SetString("Change",Newtonsoft.Json.JsonConvert.SerializeObject(pd));
        }
        public async Task <IHttpActionResult> DeletePassengerDetails(string id)
        {
            PassengerDetails passengerDetails = await db.PassengerDetails.FindAsync(id);

            if (passengerDetails == null)
            {
                return(NotFound());
            }

            db.PassengerDetails.Remove(passengerDetails);
            await db.SaveChangesAsync();

            return(Ok(passengerDetails));
        }
예제 #10
0
 public ActionResult AddPassenger(PassengerDetailsViewModel passengerDetailsViewModel)   //storing passengerdetails to DB
 {
     passengerDetailsViewModel.BookingId = (int)TempData["BookingId"];
     passengerDetailsViewModel.Cost      = ticketBookingBL.CalculateCost(passengerDetailsViewModel.Age, (int)TempData["Cost"]);
     if (ModelState.IsValid)
     {
         PassengerDetails passengerDetails = AutoMapper.Mapper.Map <PassengerDetailsViewModel, PassengerDetails>(passengerDetailsViewModel);
         if (ticketBookingBL.AddPassengerDetails(passengerDetails))
         {
             return(RedirectToAction("DisplayPassengerDetails", "TicketBooking"));
         }
     }
     return(View(passengerDetailsViewModel));
 }
 public void Delete(PassengerDetails pd)
 {
     try
     {
         var origP = _passengers.Find(p => p == pd);
         if (origP != null)
         {
             _passengers.Remove(origP);
         }
     }
     catch (Exception)
     {
         throw;
     }
 }
예제 #12
0
        public void AssignTicketTest()
        {
            PassengerDetails passenger = new PassengerDetails()
            {
                PassengerName = "Likitha",
                Age           = 10,
                MobileNumber  = 190,
                TypeOfTicket  = TicketType.Daily,
            };
            IList <PassengerDetails> passengerList = new List <PassengerDetails>();

            passengerList.Add(passenger);
            TicketManager ticketManager = new TicketManager(passengerList);

            Assert.IsNotNull(passenger.TicketNumber);
        }
예제 #13
0
 public bool AddPassengerDetails(PassengerDetails passengerDetails)              //Method to add passenger details to db
 {
     try
     {
         using (TrainTicketBookingDbContext dbContext = new TrainTicketBookingDbContext())
         {
             dbContext.PassengerDetails.Add(passengerDetails);
             //dbContext.Database.ExecuteSqlCommand(@"SET IDENTITY_INSERT [dbo].[TrainDetails] ON");
             dbContext.SaveChanges();
             return(true);
         }
     }
     catch (Exception)
     {
         return(false);
     }
 }
예제 #14
0
 public PassengerDetails GetPassengerDetails()
 {
     using (SqlConnection con = new SqlConnection(strcon))
     {
         SqlDataReader reader = null;
         da = new SqlDataAdapter("proc_get_Passenger", con);
         da.SelectCommand.CommandType = CommandType.StoredProcedure;
         con.Open();
         reader = da.SelectCommand.ExecuteReader();
         PassengerDetails obj = null;
         while (reader.Read())
         {
             obj               = new PassengerDetails();
             obj.FlightNo      = Convert.ToInt32(reader.GetValue(0));
             obj.PassengerName = reader.GetValue(1).ToString();
             obj.Age           = Convert.ToInt32(reader.GetValue(2));
             obj.Gender        = reader.GetValue(3).ToString();
             obj.Email         = reader.GetValue(4).ToString();
         }
         return(obj);
     }
 }
예제 #15
0
        private static decimal CalculateAdditionalBaggageCharges(PassengerDetails passenger)
        {
            if (passenger.Baggage <= _defaultBaggageQuantitiy)
            {
                return(0);
            }

            int additionalBaggage;

            if (IsNotLoyaltyMemberAndIsNotUsingExtraBaggageAllowance(passenger))
            {
                additionalBaggage = passenger.Baggage - _defaultBaggageQuantitiy;
                return(_extraBaggageCost * additionalBaggage);
            }

            if (IsWithinLoyaltyMemberBaggageAllowance(passenger.Baggage))
            {
                return(0);
            }

            additionalBaggage = passenger.Baggage - _loyaltyMemberMaxBaggageQuantitiy;
            return(_extraBaggageCost * additionalBaggage);
        }
예제 #16
0
        public async Task <int> AddPassenger(PassengerDetails item)
        {
            int result = 0;

            using (SqlConnection con = new SqlConnection(strcon))
            {
                da = new SqlDataAdapter("proc_add_passenger", con);
                da.SelectCommand.CommandType = CommandType.StoredProcedure;
                da.SelectCommand.Parameters.AddWithValue("@flightno", item.FlightNo);
                da.SelectCommand.Parameters.AddWithValue("@pname", item.PassengerName);
                da.SelectCommand.Parameters.AddWithValue("@age", item.Age);
                da.SelectCommand.Parameters.AddWithValue("@gender", item.Gender);
                da.SelectCommand.Parameters.AddWithValue("@email", item.Email);
            }
            result = da.SelectCommand.ExecuteNonQuery();
            if (result > 0)
            {
                return(result);
            }
            else
            {
                return(0);
            }
        }
예제 #17
0
 public ActionResult DisplayPassengerDetails(PassengerDetails passengerDetails)
 {
     return(View());
 }
예제 #18
0
 public void Delete([FromBody] PassengerDetails pd)
 {
     _repo.Delete(pd);
 }
예제 #19
0
        public void GivenAPassenger(string passengerName)
        {
            var passengers = FakeGenerator.GenertatePassengerDetails();

            _passengerUnderTest = passengers.FirstOrDefault(p => p.FirstName == passengerName);
        }
 public void Add(PassengerDetails value)
 {
     _passengers.Add(value);
 }
예제 #21
0
        public void GuestUser_BookingFlow_CreditCard_Success()
        {
            #region search for flight
            AirSearchScenario airScenario = new AirSearchScenario()
            {
                Adults       = 1,
                Childs       = 0,
                Infants      = 0,
                SearchType   = SearchType.OneWay,
                AirportPairs = new List <AirportPair> {
                    new AirportPair()
                    {
                        FromLocation      = "LAS",
                        ToLocation        = "MIA",
                        DepartureDateTime = DateTime.Today.AddDays(7)
                    }
                }
            };
            _app.HomePage.DoAirSearch(airScenario);
            #endregion

            while (_app.AirResultsPage.IsWaitingVisible())
            {
                Thread.Sleep(2000);

                if (_app.AirResultsPage.IsResultsVisible())
                {
                    //if results available add first flight to cart
                    Assert.IsTrue(_app.AirResultsPage.AddToCart(), "Itinerary not available.");

                    Assert.IsTrue(_app.TripFolderPage.Checkout(), "Error on loading TripFolder.");

                    #region Guest User Registration
                    //for guest user asks for login on checkout page and he will register here
                    //please change email id before run this test case
                    NewUserRegistration newUser = new NewUserRegistration()
                    {
                        FName    = "Vikul", LName = "Rathod",
                        EmailId  = "*****@*****.**", DOB = "09/16/1989",
                        Password = "******"
                    };
                    Assert.IsTrue(_app.LoginDetailsPage.NewUserRegistration(newUser), "Registration Failed");

                    Assert.IsTrue(_app.LoginDetailsPage.PreferedCustomerRegistration(), "Error during pref cust registration");

                    #endregion

                    #region submit passenger details
                    PassengerDetails pes = new PassengerDetails()
                    {
                        InsuranceData = new Insurance()
                        {
                            Country = "United States", IsInsuared = false
                        },
                        FirstName = "Vikul",
                        LastName  = "Rathod",
                        DOB       = "09/16/1989",
                        Gender    = "Male",
                        Emailid   = "*****@*****.**"
                    };
                    _app.PassengerInfoPage.SubmitPassengerDetails(pes);
                    #endregion

                    Thread.Sleep(1000);

                    //check if itinerary available or price not changed before actual payment
                    Assert.IsTrue(_app.CheckoutPage.IsPayNowSuccess_CreditCard(), "Itinerary not available or Price has changed.");

                    #region pay by credit card
                    PaymentFields paymentFields = new PaymentFields()
                    {
                        EmailAddress = "*****@*****.**",
                        CreditCard   = new CreditCard()
                        {
                            NameOnCard      = "Vikul Rathod",
                            CardNumber      = "4111111111111111",
                            SecurityCode    = 999,
                            ExpirationMonth = 10,
                            ExpirationYear  = 2015
                        },
                        Address = new Address()
                        {
                            Address1   = "888 main",
                            City       = "Plano",
                            Country    = "US",
                            PostalCode = "77777",
                            Provinces  = "TX"
                        },
                        PhoneNumber = new PhoneNumber()
                        {
                            PhoneNumberArea     = "222",
                            PhoneNumberExchange = "223",
                            PhoneNumberDigits   = "7777",
                        }
                    };

                    Assert.IsTrue(_app.CheckoutPage.MakePayment_CreditCard(paymentFields), "Payment Failed");
                    #endregion

                    break;
                }
            }
        }
예제 #22
0
 public bool AddPassengerDetails(PassengerDetails passengerDetails)  //Method to add passenger details
 {
     return(ticketBookingRepository.AddPassengerDetails(passengerDetails));
 }
예제 #23
0
        public void PreferedCust_BookingFlow_RoviaBucks_Success()
        {
            #region search for flight
            AirSearchScenario airScenario = new AirSearchScenario()
            {
                Adults       = 1,
                Childs       = 0,
                Infants      = 0,
                SearchType   = SearchType.OneWay,
                AirportPairs = new List <AirportPair> {
                    new AirportPair()
                    {
                        FromLocation      = "LAS",
                        ToLocation        = "MIA",
                        DepartureDateTime = DateTime.Today.AddDays(7)
                    }
                }
            };
            _app.HomePage.DoAirSearch(airScenario);
            #endregion

            while (_app.AirResultsPage.IsWaitingVisible())
            {
                Thread.Sleep(2000);

                if (_app.AirResultsPage.IsResultsVisible())
                {
                    //if results available add first flight to cart
                    Assert.IsTrue(_app.AirResultsPage.AddToCart(), "Itinerary not available.");

                    Assert.IsTrue(_app.TripFolderPage.Checkout(), "Error on loading TripFolder.");

                    //for registered user can login
                    Assert.IsTrue(_app.LoginDetailsPage.Login(), "Login Failed");

                    #region submit passenger details
                    PassengerDetails pes = new PassengerDetails()
                    {
                        InsuranceData = new Insurance()
                        {
                            Country = "United States", IsInsuared = false
                        },
                        FirstName = "Vikul",
                        LastName  = "Rathod",
                        DOB       = "09/16/1989",
                        Gender    = "Male",
                        Emailid   = "*****@*****.**"
                    };
                    _app.PassengerInfoPage.SubmitPassengerDetails(pes);
                    #endregion

                    Thread.Sleep(1000);

                    #region pay by credit card
                    PaymentFields paymentFields = new PaymentFields()
                    {
                        EmailAddress = "*****@*****.**",
                        Address      = new Address()
                        {
                            Address1   = "888 main",
                            City       = "Plano",
                            Country    = "US",
                            PostalCode = "77777",
                            Provinces  = "TX"
                        },
                        PhoneNumber = new PhoneNumber()
                        {
                            PhoneNumberArea     = "222",
                            PhoneNumberExchange = "223",
                            PhoneNumberDigits   = "7777",
                        }
                    };

                    Assert.IsTrue(_app.CheckoutPage.IsPayNowSuccess_RB(paymentFields), "Booking failed with Rovia Bucks");
                    #endregion

                    break;
                }
            }
        }
예제 #24
0
 public void BookFlight(PassengerDetails passengerDetails)
 {
     _flightDetails.Passengers.Add(passengerDetails);
     GrantAccessToPassengerIntoPlane(passengerDetails);
 }
예제 #25
0
 private static bool IsNotLoyaltyMemberAndIsNotUsingExtraBaggageAllowance(PassengerDetails passenger)
 {
     return(passenger.PassengerType != PassengerType.Loyalty ||
            !passenger.IsUsingExtraBaggageAllowance);
 }