public async void CalculateTotalPriceAsync_CalculatesCorrectTotalPrice(TravelClass travelClass, int numAdults, int numChildren, decimal expectedPrice)
        {
            Mock <FlightPriceCalculator> mock = new Mock <FlightPriceCalculator>();

            mock.SetupSequence(x => x.CalculateBasePriceAsync(It.IsAny <Flight>()))
            .ReturnsAsync(100M)
            .ReturnsAsync(150M);

            var calculator = mock.Object;

            SelectedFlights selectedFlights = new SelectedFlights()
            {
                Outbound       = new Flight(),
                Inbound        = new Flight(),
                TravelClass    = travelClass,
                NumberAdults   = numAdults,
                NumberChildren = numChildren
            };

            decimal actualPrice = await calculator.CalculateTotalPriceAsync(selectedFlights);


            // Check expected and actual prices match.
            Assert.Equal(expectedPrice, actualPrice);

            // Check that TotalPrice property is set in selectedFlights
            Assert.True(selectedFlights.Price == expectedPrice);
        }
Esempio n. 2
0
 public virtual void Setup(CarData car)
 {
     name         = car.name;
     travelClass  = car.travelClass;
     type         = car.type;
     fulfillments = car.fulfillments;
 }
        public TravelClass UpdateTravelClass(int id, TravelClass travelClass)
        {
            if (id <= 0)
            {
                throw new ArgumentOutOfRangeException(ErrorMessages.INVALID_ID);
            }

            if (travelClass == null)
            {
                throw new ArgumentNullException(ErrorMessages.ENTITY_CANNOT_BE_NULL);
            }

            var travelClassToUpdate = this.travelClasses.GetById(id);

            if (travelClassToUpdate != null)
            {
                travelClassToUpdate.Type             = travelClass.Type;
                travelClassToUpdate.Meal             = travelClass.Meal;
                travelClassToUpdate.PriorityBoarding = travelClass.PriorityBoarding;
                travelClassToUpdate.ReservedSeat     = travelClass.ReservedSeat;
                travelClassToUpdate.EarnMiles        = travelClass.EarnMiles;
                travelClassToUpdate.NumberOfRows     = travelClass.NumberOfRows;
                travelClassToUpdate.NumberOfSeats    = travelClass.NumberOfSeats;
                travelClassToUpdate.Price            = travelClass.Price;
                travelClassToUpdate.AircraftId       = travelClass.AircraftId;
                travelClassToUpdate.IsDeleted        = travelClass.IsDeleted;

                this.travelClasses.SaveChanges();
            }

            return(travelClassToUpdate);
        }
        public Dictionary <string, string> GetParameterKeyValuePairs()
        {
            var result = new Dictionary <string, string>();

            result["originLocationCode"]      = OriginIATACode;
            result["destinationLocationCode"] = DestinationIATACode;
            result["departureDate"]           = DepartureDate.ToString("yyyy-MM-dd");
            result["adults"] = Adults.ToString();
            if (ReturnDate.HasValue)
            {
                result["returnDate"] = ReturnDate.Value.ToString("yyyy-MM-dd");
            }
            if (Children.HasValue)
            {
                result["children"] = Children.ToString();
            }
            if (Infants.HasValue)
            {
                result["infants"] = Infants.ToString();
            }
            if (TravelClass.HasValue)
            {
                result["travelClass"] = TravelClass.ToString();
            }
            if (DirectFlightsOnly)
            {
                result["nonStop"] = DirectFlightsOnly.ToString().ToLower();
            }
            if (CurrencyCode != null)
            {
                result["currencyCode"] = CurrencyCode;
            }

            return(result);
        }
Esempio n. 5
0
        /// <summary>
        /// Edit Method of Travel Class
        /// Returns a View for a given id
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public ActionResult Edit(int id)
        {
            TravelClass tc = tcmgr.FindTravelClass(id);

            ViewBag.EditMessage = "";
            return(View(tc));
        }
Esempio n. 6
0
    public Family(string surname, float[] chances, TravelClass travelClass)
    {
        Surname = surname;
        string        firstName = Data.RandomElement(Data.FirstNames());
        PassengerData passenger = new PassengerData(firstName, surname, travelClass);

        blueprints.Add(passenger);

        List <Relation> possibleRelations = new List <Relation>();

        for (int i = 0; i < (int)Relation.LAST_ELEMENT; i++)
        {
            possibleRelations.Add((Relation)i);
        }

        Relate(passenger, possibleRelations);

        foreach (float chance in chances)
        {
            if (Random.value < chance)
            {
                firstName = Data.RandomElement(Data.FirstNames());
                passenger = new PassengerData(firstName, surname, travelClass);
                blueprints.Add(passenger);
                Relate(passenger, possibleRelations);
            }
        }
    }
Esempio n. 7
0
        protected void CreatTravelClassBtn_Click(object sender, EventArgs e)
        {
            decimal price = this.GetValidPrice();

            if (this.Page.IsValid && price != -1)
            {
                TravelClassType type;
                bool            isValid = Enum.TryParse(this.TravelClassTypeDropDownList.SelectedItem.Text, out type);

                if (!isValid)
                {
                    return;
                }

                var travelClass = new TravelClass()
                {
                    Type             = type,
                    Meal             = this.MealTextBox.Text,
                    PriorityBoarding = this.PriorityBoardingCheckBox.Checked,
                    ReservedSeat     = this.ReservedSeatCheckBox.Checked,
                    EarnMiles        = this.EarnMilesCheckBox.Checked,
                    NumberOfRows     = int.Parse(this.NumberOfRowsTextBox.Text),
                    NumberOfSeats    = int.Parse(this.NumberOfSeatsTextBox.Text),
                    Price            = price,
                    AircraftId       = int.Parse(this.AddAircraftsDropDownList.SelectedItem.Value)
                };

                int id = this.TravelClassesServices.AddTravelClass(travelClass);

                this.SuccessPanel.Visible           = true;
                this.AddedTravelClassIdLiteral.Text = id.ToString();

                this.ClearFields();
            }
        }
Esempio n. 8
0
 public void Set(PassengerData data)
 {
     firstName   = data.firstName;
     surname     = data.surname;
     gender      = data.gender;
     travelClass = data.travelClass;
 }
Esempio n. 9
0
        protected void btnAdd_Click(object sender, EventArgs e)
        {
            string flightName  = txtName.Text;
            int    airlineid   = int.Parse(ddlAirLine.SelectedItem.Value);
            string airlinename = ddlAirLine.SelectedItem.Text;
            Flight _flight     = new Flight()
            {
                Name = flightName, AirlineForFlight = new Airline()
                {
                    Id = airlineid, Name = airlinename
                }
            };
            FlightManager _flightManger = new FlightManager();

            try
            {
                foreach (RepeaterItem item in dlClass.Items)
                {
                    TextBox txtNoOfSeats = (TextBox)item.FindControl("txtNoOfSeats");
                    Label   lblClass     = (Label)item.FindControl("lblClass");

                    if (txtNoOfSeats.Text.Length == 0)
                    {
                        txtNoOfSeats.Focus();
                        lblError.Text = "No of Seats Cannot be Empty";
                        break;
                    }
                    else
                    {
                        if (txtNoOfSeats != null)
                        {
                            TravelClass travelClass = (TravelClass)Enum.Parse(typeof(TravelClass), lblClass.Text.Trim());
                            int         NoOfSeats   = int.Parse(txtNoOfSeats.Text);
                            FlightClass _class      = new FlightClass()
                            {
                                ClassInfo = travelClass, NoOfSeats = NoOfSeats
                            };
                            _flight.AddClass(_class);
                        }
                    }
                }
                if (_flightManger.AddFlight(_flight) == false)
                {
                    lblError.Text = "Flight Name already exists";
                }
                else
                {
                    lblError.Text = "Flight Added Successfully";
                }
            }
            catch (FlightManagerException exc)
            {
                lblError.Text = exc.Message;
            }
            catch (Exception ex)
            {
                lblError.Text = ex.Message;
            }
        }
Esempio n. 10
0
 // Добавить билет
 public void AddTicket(Int32 Seat, Double Price, Passenger Passenger, TravelClass TravelClass = TravelClass.EconomyClass)
 {
     Price = calculatePrice(Price, TravelClass);
     if (Seat > 0 && Seat <= Plane.AircraftSeats)
     {
         Tickets.Add(new Ticket(Seat, Price, Passenger));
     }
 }
Esempio n. 11
0
    public PassengerData(string firstName, string surname, TravelClass travelClass)
    {
        this.firstName   = firstName;
        this.surname     = surname;
        this.travelClass = travelClass;

        gender = (Gender)Random.Range(0, (int)Gender.LAST_ELEMENT);
    }
Esempio n. 12
0
 public static TravelClassDto TravelClassToDto(TravelClass travelClass)
 {
     return(new TravelClassDto
     {
         TravelClassCode = travelClass.TravelClassCode,
         TravelClassName = travelClass.Name
     });
 }
Esempio n. 13
0
 private static bool Elegible(Car car, Need task, TravelClass travelClass)
 {
     if (car.travelClass == travelClass)
     {
         return(car.fulfillments.Exists(need => need.needToFulfill == task));
     }
     return(false);
 }
Esempio n. 14
0
 public ActionResult Edit([Bind(Include = "Id,Name,Active")] TravelClass travelClass)
 {
     if (ModelState.IsValid)
     {
         db.Entry(travelClass).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(travelClass));
 }
Esempio n. 15
0
        public void SetDataCorrectly(TravelClass travelClass)
        {
            //Arrange
            var flightRequest = new FlightRequest {
                TravelClass = travelClass
            };

            //Act & Assert
            Assert.AreEqual(flightRequest.TravelClass, travelClass);
        }
Esempio n. 16
0
    public Family[] Create(TravelClass travelClass, int numberOfFamilies)
    {
        List <Family> families = new List <Family>();

        for (int i = 0; i < numberOfFamilies; i++)
        {
            families.Add(CreateOne(travelClass));
        }
        return(families.ToArray());
    }
Esempio n. 17
0
 public ActionResult Edit(TravelClass tc)
 {
     if (ModelState.IsValid)
     {
         tcmgr.EditTravelClass(tc);
         TempData["EditMessage"] = "TravelClass Edited Sucessfully";
         return(RedirectToAction("Index"));
     }
     ViewBag.EditMessage = "Something went wrong try again...";
     return(View(tc));
 }
Esempio n. 18
0
        public ActionResult Create([Bind(Include = "Id,Name,IsActive")] TravelClass travelClass)
        {
            if (ModelState.IsValid)
            {
                db.TravelClasses.Add(travelClass);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(travelClass));
        }
Esempio n. 19
0
        public int AddTravelClass(TravelClass travelClass)
        {
            if (travelClass == null)
            {
                throw new ArgumentNullException(ErrorMessages.ENTITY_CANNOT_BE_NULL);
            }

            this.travelClasses.Add(travelClass);
            this.travelClasses.SaveChanges();

            return(travelClass.Id);
        }
Esempio n. 20
0
        // GET: TravelClasses/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            TravelClass travelClass = db.TravelClasses.Find(id);

            if (travelClass == null)
            {
                return(HttpNotFound());
            }
            return(View(travelClass));
        }
Esempio n. 21
0
        public override int GetHashCode()
        {
            var hashCode = 319552321;

            hashCode = hashCode * -1521134295 + EqualityComparer <Flight> .Default.GetHashCode(Outbound);

            hashCode = hashCode * -1521134295 + EqualityComparer <Flight> .Default.GetHashCode(Inbound);

            hashCode = hashCode * -1521134295 + NumberAdults.GetHashCode();
            hashCode = hashCode * -1521134295 + NumberChildren.GetHashCode();
            hashCode = hashCode * -1521134295 + Price.GetHashCode();
            hashCode = hashCode * -1521134295 + TravelClass.GetHashCode();
            hashCode = hashCode * -1521134295 + IsReturn.GetHashCode();
            return(hashCode);
        }
        protected void btnDelete_Command(object sender, CommandEventArgs e)
        {
            int id = Int32.Parse(e.CommandArgument.ToString());

            using (var db = new AirlineTicketBookingDBContext())
            {
                var travelclass = new TravelClass()
                {
                    Travel_Class_ID = id
                };
                db.TravelClasses.Attach(travelclass);
                db.TravelClasses.Remove(travelclass);
                db.SaveChanges();
                Response.Redirect("~/Pages/ListTravelClass.aspx");
            }
        }
Esempio n. 23
0
        protected void btnSave_Click(object sender, EventArgs e)
        {
            string name        = txtName.Text;
            string description = txtDescription.Text;

            using (AirlineTicketBookingDBContext db = new AirlineTicketBookingDBContext())
            {
                var travelclass = new TravelClass()
                {
                    Name        = name,
                    Description = description
                };
                db.TravelClasses.Add(travelclass);
                db.SaveChanges();
                Response.Redirect("~/Pages/ListTravelClass.aspx");
            }
        }
Esempio n. 24
0
 public ActionResult Create(TravelClass tc)
 {
     if (ModelState.IsValid)
     {
         TravelClass DuplicateTC = tcmgr.GetTravelClass().FirstOrDefault(p => p.TravelClassName.ToLower() == tc.TravelClassName.ToLower());
         if (DuplicateTC == null)
         {
             tcmgr.AddTravelClass(tc);
             return(RedirectToAction("Index"));
         }
         else
         {
             ModelState.AddModelError("", "Travel Class already exists");
         }
     }
     return(View());
 }
Esempio n. 25
0
        public ActionResult DeleteConfirmed(int id)
        {
            TravelClass travelClass = db.TravelClasses.Find(id);

            //delete Schedule travel classes
            // db.ScheduleTravelClasses.RemoveRange(travelClass.ScheduleTravelClasses);

            //delete train type travel class
            //db.TrainTypeTravelClasses.RemoveRange(travelClass.TrainTypeTravelClasses);

            //db.SaveChanges();

            //db.TravelClasses.Remove(travelClass);

            travelClass.IsActive        = false;
            db.Entry(travelClass).State = EntityState.Modified;
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Esempio n. 26
0
    public Family CreateOne(TravelClass travelClass)
    {
        Family family  = null;
        string surname = Data.RandomElement(Data.surnames);

        switch (travelClass)
        {
        case TravelClass.First:
            family = new FirstClassFamily(surname, chances, firstClassFunds, firstClassIncome);
            break;

        case TravelClass.Second:
            break;

        case TravelClass.Third:
            break;
        }
        return(family);
    }
Esempio n. 27
0
        // Методы для работы с билетами
        // Посчитать цену билета в зависимости от класса места
        private Double calculatePrice(Double BasePrice, TravelClass TravelClass)
        {
            Double Price = 0.0;

            switch (TravelClass)
            {
            case TravelClass.FirstClass:
                Price = 2 * BasePrice;
                break;

            case TravelClass.BusinessClass:
                Price = 1.5 * BasePrice;
                break;

            case TravelClass.ComfortClass:
                Price = 1.2 * BasePrice;
                break;

            case TravelClass.EconomyClass:
                Price = BasePrice;
                break;
            }
            return(Price);
        }
 public CalculationResult CalculateEmission(DateTime effectiveDate, decimal distance, TravelClass travelClass,
                                            bool reversal)
 {
     var distanceType = GetDistanceType(distance);
     var factorId = FactorMapping[distanceType][travelClass];
     var factorValue = context.FactorValue(effectiveDate, factorId);
     if (factorValue == null)
     {
         var message = string.Format(Resources.FactorValueNotFound, factorId, effectiveDate);
         throw new NullReferenceException(message);
     }
     var emissions = (factorValue*distance)*UpliftFactor;
     if (reversal)
     {
         emissions = emissions*-1;
     }
     var calculationDate = context.CalculationDateForFactorId(factorId);
     return new CalculationResult
         {
             CalculationDate = calculationDate,
             ActivityGroupId = ActivityMapping[distanceType][travelClass],
             Emissions = emissions
         };
 }
Esempio n. 29
0
        ///// <summary>
        ///// Gets the availability of schedule for the given information
        ///// </summary>
        ///// <param name="scheduleForAvailability"></param>
        ///// <param name="numberOfSeats"></param>
        ///// <param name="dateOfJourney"></param>
        ///// <param name="tClass"></param>
        ///// <exception cref="FlightAvailabilityDAOException">Thorws when flights not available</exception>
        ///// <returns>True if avalable. False if not available</returns>
        //public bool GetAvailabilityForSchedule(Schedule scheduleForAvailability, int numberOfSeats, DateTime dateOfJourney, TravelClass tClass)
        //{
        //    bool isAvailable = false;

        //    try
        //    {
        //        Database dbConnection = GetDatabaseConnection();

        //        //Write code to store data into database
        //        DbCommand command = dbConnection.GetStoredProcCommand("CheckAvailabilityOfSchedule");
        //        dbConnection.AddInParameter(command, "@ScheduleId", DbType.Int64, scheduleForAvailability.ID);
        //        dbConnection.AddInParameter(command, "@NoOfSeats", DbType.Int32, numberOfSeats);
        //        dbConnection.AddInParameter(command, "@DateOfJourney", DbType.DateTime, dateOfJourney);
        //        dbConnection.AddInParameter(command, "@ClassId", DbType.Int32, (int)tClass);
        //        dbConnection.AddOutParameter(command, "@IsAvailable", DbType.Boolean, 0);

        //        //Execute the command
        //        dbConnection.ExecuteNonQuery(command);

        //        isAvailable = Convert.ToBoolean(dbConnection.GetParameterValue(command, "@IsAvailable"));
        //    }
        //    catch (Common.ConnectToDatabaseException ex)
        //    {
        //        throw new FlightAvailabilityDAOException("Unable to get availability of flights", ex);
        //    }
        //    catch (Exception ex)
        //    {
        //        throw new FlightAvailabilityDAOException("Unable to get availability of flights", ex);
        //    }

        //    return isAvailable;
        //}

        #endregion

        #region Method to get the availability for a given schedule

        /// <summary>
        /// Gets the availability of schedule for the given information
        /// </summary>
        /// <param name="scheduleForAvailability"></param>
        /// <param name="numberOfSeats"></param>
        /// <param name="dateOfJourney"></param>
        /// <param name="tClass"></param>
        /// <exception cref="FlightAvailabilityDAOException">Thorws when flights not available</exception>
        /// <returns>True if avalable. False if not available</returns>
        public bool GetAvailabilityForSchedule(Schedule scheduleForAvailability, int numberOfSeats, DateTime dateOfJourney, TravelClass tClass)
        {
            bool isAvailable = false;

            IDbConnection conn = null;

            try
            {
                conn = this.GetConnection();
                conn.Open();

                //Write code to store data into database
                IDbCommand cmd = conn.CreateCommand();
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.CommandText = "CheckAvailabilityOfSchedule";

                IDataParameter param1 = cmd.CreateParameter();
                param1.ParameterName = "@ScheduleId";
                param1.Value         = scheduleForAvailability.ID;

                IDataParameter param2 = cmd.CreateParameter();
                param2.ParameterName = "@NoOfSeats";
                param2.Value         = numberOfSeats;

                IDataParameter param3 = cmd.CreateParameter();
                param3.ParameterName = "@DateOfJourney";
                param3.Value         = dateOfJourney;

                IDataParameter param4 = cmd.CreateParameter();
                param4.ParameterName = "@ClassId";
                param4.Value         = (int)tClass;

                IDataParameter param5 = cmd.CreateParameter();
                param5.ParameterName = "@IsAvailable";
                param5.Direction     = ParameterDirection.Output;
                param5.Value         = 0;

                cmd.Parameters.Add(param1);
                cmd.Parameters.Add(param2);
                cmd.Parameters.Add(param3);
                cmd.Parameters.Add(param4);
                cmd.Parameters.Add(param5);

                //Execute the command
                cmd.UpdatedRowSource = UpdateRowSource.OutputParameters;
                cmd.ExecuteNonQuery();

                isAvailable = Convert.ToBoolean(param5.Value);
            }
            catch (Common.ConnectToDatabaseException ex)
            {
                throw new FlightAvailabilityDAOException("Unable to get availability of flights", ex);
            }
            catch (Exception ex)
            {
                throw new FlightAvailabilityDAOException("Unable to get availability of flights", ex);
            }
            finally
            {
                if (conn != null && conn.State == ConnectionState.Open)
                {
                    conn.Close();
                }
            }

            return(isAvailable);
        }
Esempio n. 30
0
        /// <summary>
        /// Delete Method of Travel Class
        /// Return a view for Travel Class for a given Id
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public ActionResult Delete(int id)
        {
            TravelClass tc = tcmgr.FindTravelClass(id);

            return(View(tc));
        }
Esempio n. 31
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                try
                {
                    long   FromCityId  = Convert.ToInt64(Request.QueryString["frmid"].ToString());
                    long   ToCityId    = Convert.ToInt64(Request.QueryString["toid"].ToString());
                    string flightclass = Request.QueryString["clss"].ToString();
                    int    td          = Convert.ToInt16(Request.QueryString["td"].ToString());

                    hdnTravelDirection.Value = td.ToString();
                    lblHeaderDepart.Text     = Convert.ToDateTime(Request.QueryString["depart_date"]).ToString("ddd, dd MMM, yyyy");
                    lblHeaderReturn.Text     = Convert.ToDateTime(Request.QueryString["return_date"]).ToString("ddd, dd MMM, yyyy");

                    TravelDirection traveldirection = (TravelDirection)td;
                    SearchInfo      searchinfo      = new SearchInfo();
                    City            fromcity        = new City();
                    searchinfo.OnwardDateOfJourney = Convert.ToDateTime(Request.QueryString["depart_date"]);
                    searchinfo.ReturnDateOfJourney = Convert.ToDateTime(Request.QueryString["return_date"]);
                    fromcity.CityId = FromCityId;
                    City tocity = new City();
                    tocity.CityId = ToCityId;
                    TravelClass travelclass = (TravelClass)Enum.Parse(typeof(TravelClass), flightclass);
                    searchinfo.FromCity  = fromcity;
                    searchinfo.ToCity    = tocity;
                    searchinfo.Class     = travelclass;
                    searchinfo.Direction = traveldirection;

                    ISearchManager searchmanager = SearchManagerFactory.GetInstance().Create();
                    SearchLog      searchlog     = searchmanager.SearchForFlights(searchinfo);

                    SearchResult searchresult = searchlog.GetSearchResult(TravelDirection.OneWay);

                    List <TravelSchedule> lstTravelSchedule = searchresult.GetTravelSchedules();
                    dlOuterOnward.DataSource = lstTravelSchedule;
                    dlOuterOnward.DataBind();

                    Session["flightbookingonwardresults"] = lstTravelSchedule;

                    if (lstTravelSchedule.Count > 0)
                    {
                        lblOneWayFromCity.Text = lblHeaderFromCity.Text = lstTravelSchedule[0].GetSchedules()[0].RouteInfo.FromCity.Name;
                        lblOneWayToCity.Text   = lblHeaderToCity.Text = lstTravelSchedule[0].GetSchedules()[0].RouteInfo.ToCity.Name;
                    }

                    if (traveldirection == TravelDirection.Return)
                    {
                        SearchResult searchresultreturn = searchlog.GetSearchResult(TravelDirection.Return);

                        List <TravelSchedule> lstTravelScheduleReturn = searchresultreturn.GetTravelSchedules();
                        dlOuterReturn.DataSource = lstTravelScheduleReturn;
                        dlOuterReturn.DataBind();

                        Session["flightbookingreturnresults"] = lstTravelScheduleReturn;

                        if (lstTravelScheduleReturn.Count > 0)
                        {
                            lblReturnFromCity.Text = lstTravelScheduleReturn[0].GetSchedules()[0].RouteInfo.FromCity.Name;
                            lblReturnToCity.Text   = lstTravelScheduleReturn[0].GetSchedules()[0].RouteInfo.ToCity.Name;
                        }
                    }
                    else
                    {
                        outbound_div.Style.Add("width", "70%");
                        return_div.Visible             = false;
                        lblHeaderReturn.Visible        = false;
                        lblHeaderDateSeparator.Visible = false;
                    }
                }
                catch
                {
                    Response.Redirect("~/Error.aspx");
                }
            }
        }