Ejemplo n.º 1
0
        IExecutionPlan ILift.ProcessRequests(IList <SummonInformation> requests)
        {
            IsFirstRequestValid(requests);

            _executionPlan.Clear();

            if (_state == LiftState.Parked &&
                IsFirstRequestForCurrentFloor(requests.First()))
            {
                _executionPlan.Add(requests.First());
                requests.RemoveAt(0);
            }

            TravelDirection direction = GetInitialDirectionOfTravel(requests.First());

            var boundaries = _floorConfiguration.GetBoundariesForDirection(direction);

            ProcessSummonsRequestSegment(requests, direction, boundaries, true);

            if (NeedToRunSameSegmentInOppositeDirection(requests.First(), direction))
            {
                direction = InverseDirection(direction);
                ProcessSummonsRequestSegment(requests, direction, boundaries, false);
            }

            SwitchBoundaries(ref boundaries);
            ProcessSummonsRequestSegment(requests, direction, boundaries, true);

            direction  = InverseDirection(direction);
            boundaries = _floorConfiguration.GetFullRangeBoundariesForDirection(direction);
            ProcessSummonsRequestSegment(requests, direction, boundaries, true);

            return(_executionPlan);
        }
Ejemplo n.º 2
0
Archivo: Bud.cs Proyecto: radmars/ld46
 public Split(TravelDirection split1, TravelDirection split2, TravelDirection rotation, PlantTileType type)
 {
     this.split1   = split1;
     this.split2   = split2;
     this.rotation = rotation;
     this.type     = type;
 }
Ejemplo n.º 3
0
    private void ChangeMovement()
    {
        float newMovementType = Mathf.FloorToInt((float)_random.NextDouble() * 10);

        if (newMovementType <= 1)
        {
            _direction = TravelDirection.Straight;
        }
        else if (newMovementType <= 5)
        {
            _direction = TravelDirection.Left;
        }
        else
        {
            _direction = TravelDirection.Right;
        }

        float secondsToMoveInDirection;

        if (_direction == TravelDirection.Straight)
        {
            secondsToMoveInDirection = (float)((_random.NextDouble() * LevelSelectData._levelSelect._maxRestTravelTime) + LevelSelectData._levelSelect._minRestTravelTime);
        }
        else
        {
            secondsToMoveInDirection = (float)((_random.NextDouble() * LevelSelectData._levelSelect._maxDirectionTravelTime) + LevelSelectData._levelSelect._minDirectionTravelTime);
        }

        _timeToTravelInDirection = (int)(secondsToMoveInDirection / GameConstants.tunnelSpawnConstantNormal);
    }
Ejemplo n.º 4
0
            /// <summary>Check whether the travel plan of the train is valid.</summary>
            private void CheckTravelData(double InitializeTime)
            {
                bool            Recalculation = false;
                TravelDirection LastDirection = ((TravelStopData)Data[0]).Direction;

                for (int i = 1; i < Data.Length; i++)
                {
                    // The deceleration start point must appear after the acceleration end point.
                    if ((Data[i - 1].AccelerationEndPosition - Data[i].DecelerationStartPosition) * (int)LastDirection > 0)
                    {
                        // Reset acceleration and deceleration.
                        double Delta = Math.Abs(Data[i].Position - Data[i - 1].Position);
                        if (Delta != 0.0)
                        {
                            Data[i - 1].Accelerate = (Math.Pow(Data[i - 1].TargetSpeed, 2.0) - Math.Pow(Data[i - 1].PassingSpeed, 2.0)) / Delta;
                            Data[i].Decelerate     = (Math.Pow(Data[i].PassingSpeed, 2.0) - Math.Pow(Data[i - 1].TargetSpeed, 2.0)) / Delta;
                            Recalculation          = true;
                        }
                    }

                    LastDirection = (Data[i] as TravelStopData)?.Direction ?? LastDirection;
                }

                // Recreate the operation plan of the train.
                if (Recalculation)
                {
                    SetupTravelData(InitializeTime);
                }
            }
Ejemplo n.º 5
0
        private void SwitchBoundaries(ref Boundaries boundaries)
        {
            TravelDirection directionForCurrentBoundaries = GetBoundariesDirection(boundaries);

            boundaries = _floorConfiguration.GetBoundariesForDirection(directionForCurrentBoundaries == TravelDirection.Up
                            ? TravelDirection.Down
                            : TravelDirection.Up);
        }
Ejemplo n.º 6
0
 private TravelDirection InverseDirection(TravelDirection direction)
 {
     return(direction == TravelDirection.None
         ? TravelDirection.None
         : direction == TravelDirection.Up
             ? TravelDirection.Down
             : TravelDirection.Up);
 }
Ejemplo n.º 7
0
    public void NewArea(string nameScene, TravelDirection direction)
    {
        travelDirection = direction;

        AreaManager.manager.NewArea(); //destroys old area manager
        playerPos = new Vector3();

        SceneManager.LoadScene(nameScene);
    }
Ejemplo n.º 8
0
 private void HandleSummonForBoundaries(IList <SummonInformation> requests, TravelDirection direction, Boundaries boundaries, IList <SummonInformation> selectedSummons)
 {
     foreach (var summon in requests)
     {
         if (boundaries.IsExtremum(direction, summon.SummonFloor))
         {
             selectedSummons.Add(summon);
         }
     }
 }
Ejemplo n.º 9
0
 /// <summary>
 /// Parameterized Constructor - To Initialize the data members and properties with private set
 /// </summary>
 /// <param name="fromCity"></param>
 /// <param name="toCity"></param>
 /// <param name="onwardDateOfJourney"></param>
 /// <param name="returnDateOfJourney"></param>
 /// <param name="noOfSeats"></param>
 /// <param name="travelClass"></param>
 /// <param name="direction"></param>
 public SearchInfo(City fromCity, City toCity, DateTime onwardDateOfJourney, DateTime returnDateOfJourney, int noOfSeats, TravelClass travelClass, TravelDirection direction)
 {
     this.FromCity            = fromCity;
     this.ToCity              = toCity;
     this.OnwardDateOfJourney = onwardDateOfJourney;
     this.ReturnDateOfJourney = returnDateOfJourney;
     this.NoOfSeats           = noOfSeats;
     this.Class     = travelClass;
     this.Direction = direction;
 }
Ejemplo n.º 10
0
 /// <summary>
 /// Adds the search result to the log
 /// </summary>
 /// <param name="result"></param>
 /// <param name="direction"></param>
 public void AddSearchResultToLog(TravelDirection direction, SearchResult result)
 {
     if (schedulesLog.ContainsKey(direction))
     {
         schedulesLog[direction] = result;
     }
     else
     {
         schedulesLog.Add(direction, result);
     }
 }
Ejemplo n.º 11
0
Archivo: Bud.cs Proyecto: radmars/ld46
    // Attempt to grow this bud, taking into account possible collisions with the bounding box,
    // existing plants, and the stage. Returns true if the growth was successful, false if the
    // bud died after growing.
    public bool TryToGrow(TilePlant plant)
    {
        // If we split, hijack this update to show the new split tile.
        if (pendingSplit != null)
        {
            nextType = pendingSplit.type;
            travel   = pendingSplit.rotation;
        }
        plant.UpdateLocation(location, phase, nextType, travel);

        var newHeading  = GetNewHeading(nextType);
        var newLocation = Travel(newHeading);
        var newPhase    = GetNewPhase();

        // If we split, try to grow split1, replace heading for the main bud.
        if (pendingSplit != null)
        {
            var splitDirection = pendingSplit.split1;
            var splitLocation  = location + GetDirectionVector(splitDirection);

            if (!FatalLocation(plant, splitLocation, false))
            {
                plant.AddBud(new Bud {
                    location = splitLocation,
                    travel   = splitDirection,
                    phase    = newPhase,
                });
                plant.UpdateLocation(splitLocation, newPhase, PlantTileType.Bud, splitDirection);
            }

            newHeading   = pendingSplit.split2;
            newLocation  = Travel(newHeading);
            pendingSplit = null;
        }

        nextType = PlantTileType.Straight; // May be overridden by CheckCollisions.
        if (FatalLocation(plant, newLocation, true))
        {
            return(false);
        }

        // Needed for checking splitter rotations.
        location = newLocation;
        travel   = newHeading;
        phase    = newPhase;

        CheckForSplitter(plant, newLocation);

        plant.UpdateLocation(newLocation, newPhase, PlantTileType.Bud, newHeading);

        return(true);
    }
 public SummonInformation(int currentFloor, TravelDirection direction = TravelDirection.None, SummonInformation triggeringSummon = null)
 {
     SummonFloor = currentFloor;
     Direction   = direction;
     if (direction == TravelDirection.None)
     {
         TriggeringSummon = triggeringSummon;
     }
     else
     {
         TriggeringSummon = null;
     }
 }
Ejemplo n.º 13
0
        public static int Offset(TravelDirection travelDirection)
        {
            int offset = 0;

            if (travelDirection == TravelDirection.North || travelDirection == TravelDirection.West)
            {
                offset = -1;
            }
            else if (travelDirection == TravelDirection.South || travelDirection == TravelDirection.East)
            {
                offset = 1;
            }
            return(offset);
        }
    public void ChangeLights(TravelDirection direction)
    {
        if (direction == TravelDirection.North || direction == TravelDirection.South)
        {
            foreach (var car in Spawner.instance.VerticalCars)
            {
                car.GetComponent <CarDetection>().SpeedUpCar();
            }

            Spawner.instance.VerticalCars.Clear();
        }

        if (direction == TravelDirection.East || direction == TravelDirection.West)
        {
            foreach (var car in Spawner.instance.HorizontalCars)
            {
                car.GetComponent <CarDetection>().SpeedUpCar();
            }

            Spawner.instance.HorizontalCars.Clear();
        }

        if (IS_CHANGING)
        {
            WaitLonger(direction);
            return;
        }

        Debug.LogWarning("Changing Lights for " + direction);
        switch (direction)
        {
        case TravelDirection.North:
            StartCoroutine(LightTimer(10, 1, NorthLights, SouthLights));
            break;

        case TravelDirection.East:
            StartCoroutine(LightTimer(10, 2, EastLights, WestLights));
            break;


        case TravelDirection.South:
            StartCoroutine(LightTimer(10, 1, NorthLights, SouthLights));
            break;

        case TravelDirection.West:
            StartCoroutine(LightTimer(10, 2, EastLights, WestLights));
            break;
        }
    }
Ejemplo n.º 15
0
 public ArterialData(ServiceVolumeTableFDOT Inputs, List <SegmentData> segments)
 {
     _artName     = "";
     _from        = "";
     _to          = "";
     _lengthMiles = Inputs.Roadway.FacilityLengthMiles;
     _dir         = Inputs.Roadway.AnalysisTravelDir;
     _area        = Inputs.SerVolAreaType;
     _class       = Inputs.Class;
     _segments    = segments;
     _Dfactor     = Inputs.Traffic.DFactor;
     _Kfactor     = Inputs.Traffic.KFactor;
     _thresholds  = new ThresholdData();
     _results     = new ResultsArterialData();
 }
Ejemplo n.º 16
0
        public FOWPoint(int px, int py, TravelDirection t, int ptAmount)
        {
            X = px;
            Y = py;
            PreviousDirection = t;
            bool isDiag = false;

            switch (PreviousDirection)
            {
            case TravelDirection.PX:
                X++;
                break;

            case TravelDirection.NX:
                X--;
                break;

            case TravelDirection.PY:
                Y++;
                break;

            case TravelDirection.NY:
                Y--;
                break;

            case TravelDirection.PXPY:
                X++; Y++;
                isDiag = true;
                break;

            case TravelDirection.PXNY:
                X++; Y--;
                isDiag = true;
                break;

            case TravelDirection.NXPY:
                X--; Y++;
                isDiag = true;
                break;

            case TravelDirection.NXNY:
                X--; Y--;
                isDiag = true;
                break;
            }
            TravelAmount = ptAmount - (isDiag ? 14 : 10);
        }
Ejemplo n.º 17
0
Archivo: Bud.cs Proyecto: radmars/ld46
    private Vector3Int GetDirectionVector(TravelDirection dir)
    {
        switch (dir)
        {
        case TravelDirection.Up:
            return(Vector3Int.up);

        case TravelDirection.Down:
            return(Vector3Int.up * -1);

        case TravelDirection.Left:
            return(Vector3Int.right * -1);

        // case TravelDirection.Right:
        default:
            return(Vector3Int.right);
        }
    }
Ejemplo n.º 18
0
    public void enableSplineMovement(TravelDirection direction, BezierSpline foundSpline)
    {
        this.enabled = true;
        spline       = foundSpline;
        float speed = 10f;

        duration = foundSpline._TotalDistance() / speed;
        if (direction == TravelDirection.Forward)
        {
            progress = 0;
        }
        else
        {
            progress = 1f;
        }
        this.direction = direction;
        this.GetComponent <Rigidbody2D>().isKinematic = true;
    }
Ejemplo n.º 19
0
        /// <summary>
        /// Constructor for creating an Arterial for use with Service Volumes.
        /// </summary>
        /// <param name="area"></param>
        /// <param name="classification"></param>
        /// <param name="analysisTravelDir"></param>
        /// <param name="segments"></param>
        /// <param name="KFactor"></param>
        /// <param name="DFactor"></param>
        public ArterialData(AreaType area, ArterialClass classification, TravelDirection analysisTravelDir, List <SegmentData> segments, float KFactor, float DFactor)
        {
            //SetDefaultValues();

            //_segments = new List<SegmentData>();

            _artName     = "";
            _from        = "";
            _to          = "";
            _lengthMiles = 0;
            _dir         = analysisTravelDir;
            _area        = area;
            _class       = classification;
            _segments    = segments;
            _Dfactor     = DFactor;
            _Kfactor     = KFactor;
            _thresholds  = new ThresholdData();
            _results     = new ResultsArterialData();
        }
Ejemplo n.º 20
0
 public FOWPoint(int px, int py, TravelDirection t, int ptAmount)
 {
     X = px;
     Y = py;
     PreviousDirection = t;
     bool isDiag = false;
     switch(PreviousDirection) {
         case TravelDirection.PX:
             X++;
             break;
         case TravelDirection.NX:
             X--;
             break;
         case TravelDirection.PY:
             Y++;
             break;
         case TravelDirection.NY:
             Y--;
             break;
         case TravelDirection.PXPY:
             X++; Y++;
             isDiag = true;
             break;
         case TravelDirection.PXNY:
             X++; Y--;
             isDiag = true;
             break;
         case TravelDirection.NXPY:
             X--; Y++;
             isDiag = true;
             break;
         case TravelDirection.NXNY:
             X--; Y--;
             isDiag = true;
             break;
     }
     TravelAmount = ptAmount - (isDiag ? 14 : 10);
 }
        public static Vehicle Convert(VehicleConfiguration configuration, TravelDirection direction)
        {
            var random  = new Random(DateTime.Now.Millisecond);
            var vehicle = new Vehicle()
            {
                Speed            = random.Next(configuration.Speed.Down, configuration.Speed.Up + 1),
                PassengersNumber = random.Next(configuration.PassengersNumber.Down, configuration.PassengersNumber.Up + 1),
                Weight           = random.Next(configuration.Weight.Down, configuration.Weight.Up + 1),
                Type             = configuration.Type,
                Direction        = direction,
            };
            var lengthIndex = random.Next(0, configuration.LenghtList.Count);

            vehicle.Length = configuration.LenghtList[lengthIndex];

            var icons         = configuration.IconsConfiguration.Where(c => c.Direction == direction).ToList();
            var iconPathIndex = random.Next(0, icons.Count);
            var icon          = icons[iconPathIndex];
            var bt            = new Bitmap(Image.FromFile(icon.Path), icon.Width, icon.Height);

            vehicle.Icon = Icon.FromHandle(bt.GetHicon());
            return(vehicle);
        }
Ejemplo n.º 22
0
        /// <summary>
        /// Constructor for creating an Arterial without using Service Volumes.
        /// </summary>
        /// <param name="area"></param>
        /// <param name="classification"></param>
        /// <param name="analysisTravelDir"></param>
        /// <param name="segments"></param>
        public ArterialData(AreaType area, ArterialClass classification, TravelDirection analysisTravelDir, List <SegmentData> segments)
        {
            //SetDefaultValues();

            //_segments = new List<SegmentData>();

            _artName     = "";
            _from        = "";
            _to          = "";
            _lengthMiles = 0;
            _dir         = analysisTravelDir;
            _area        = area;
            _class       = classification;
            _segments    = segments;
            _Dfactor     = 0.5f;
            _Kfactor     = 0.1f;
            _thresholds  = new ThresholdData();
            _results     = new ResultsArterialData();

            //_class = ParmRanges.ArtClassDefault[Convert.ToInt32(_area)];
            //_Kfactor = ParmRanges.KfactDefault[Convert.ToInt32(_area)];
            //_Dfactor = ParmRanges.DfactDefault[Convert.ToInt32(_area)];
            //_maxSerVol = ParmRanges.MaxSerVol[Convert.ToInt32(_area)];  //for other urbanized
        }
Ejemplo n.º 23
0
 private void SetRailIndex(double Mileage, TravelDirection Direction, TrackFollower TrackFollower)
 {
     TrackFollower.TrackIndex = Data.LastOrDefault(x => x.Mileage <= Mileage + (int)Direction * (TrackFollower.TrackPosition - CurrentPosition))?.RailIndex ?? Data[0].RailIndex;
 }
Ejemplo n.º 24
0
            private void GetNewState(double Time, out double NewMileage, out double NewPosition, out TravelDirection NewDirection, out bool OpenLeftDoors, out bool OpenRightDoors)
            {
                double DeltaT;
                double DeltaPosition;

                OpenLeftDoors  = false;
                OpenRightDoors = false;

                {
                    // The first point must be TravelStopData.
                    TravelStopData FirstData = (TravelStopData)Data[0];

                    NewMileage   = FirstData.Mileage;
                    NewPosition  = FirstData.Position;
                    NewDirection = FirstData.Direction;

                    if (Time <= FirstData.ArrivalTime)
                    {
                        return;
                    }

                    if (Time <= FirstData.ClosingDoorsStartTime)
                    {
                        OpenLeftDoors  = FirstData.OpenLeftDoors;
                        OpenRightDoors = FirstData.OpenRightDoors;
                        return;
                    }

                    if (Time <= FirstData.DepartureTime)
                    {
                        return;
                    }

                    // The start point does not slow down. Acceleration only.
                    if (Time <= FirstData.AccelerationEndTime)
                    {
                        DeltaT        = Time - FirstData.DepartureTime;
                        DeltaPosition = 0.5 * FirstData.Accelerate * Math.Pow(DeltaT, 2.0);
                        NewMileage   += DeltaPosition;
                        NewPosition  += (int)NewDirection * DeltaPosition;
                        return;
                    }

                    NewMileage += Math.Abs(FirstData.AccelerationEndPosition - NewPosition);
                    NewPosition = FirstData.AccelerationEndPosition;
                }

                for (int i = 1; i < Data.Length; i++)
                {
                    if (Time <= Data[i].DecelerationStartTime)
                    {
                        DeltaT        = Time - Data[i - 1].AccelerationEndTime;
                        DeltaPosition = Data[i - 1].TargetSpeed * DeltaT;
                        NewMileage   += DeltaPosition;
                        NewPosition  += (int)NewDirection * DeltaPosition;
                        return;
                    }

                    NewMileage += Math.Abs(Data[i].DecelerationStartPosition - NewPosition);
                    NewPosition = Data[i].DecelerationStartPosition;

                    if (Time <= Data[i].ArrivalTime)
                    {
                        DeltaT        = Time - Data[i].DecelerationStartTime;
                        DeltaPosition = Data[i - 1].TargetSpeed * DeltaT + 0.5 * Data[i].Decelerate * Math.Pow(DeltaT, 2.0);
                        NewMileage   += DeltaPosition;
                        NewPosition  += (int)NewDirection * DeltaPosition;
                        return;
                    }

                    TravelStopData StopData = Data[i] as TravelStopData;

                    NewMileage   = Data[i].Mileage;
                    NewPosition  = Data[i].Position;
                    NewDirection = StopData?.Direction ?? NewDirection;

                    if (Time <= StopData?.ClosingDoorsStartTime)
                    {
                        OpenLeftDoors  = StopData.OpenLeftDoors;
                        OpenRightDoors = StopData.OpenRightDoors;
                        return;
                    }

                    // The end point does not accelerate.
                    if (Time <= Data[i].DepartureTime || i == Data.Length - 1)
                    {
                        return;
                    }

                    if (Time <= Data[i].AccelerationEndTime)
                    {
                        DeltaT        = Time - Data[i].DepartureTime;
                        DeltaPosition = Data[i].PassingSpeed * DeltaT + 0.5 * Data[i].Accelerate * Math.Pow(DeltaT, 2.0);
                        NewMileage   += DeltaPosition;
                        NewPosition  += (int)NewDirection * DeltaPosition;
                        return;
                    }

                    NewMileage += Math.Abs(Data[i].AccelerationEndPosition - NewPosition);
                    NewPosition = Data[i].AccelerationEndPosition;
                }
            }
Ejemplo n.º 25
0
 public bool IsExtremum(TravelDirection direction, int value)
 {
     return(value == GetExtremumForDirection(direction));
 }
Ejemplo n.º 26
0
 public int GetExtremumForDirection(TravelDirection direction)
 {
     return(direction == TravelDirection.Up
                     ? Item2
                     : Item1);
 }
Ejemplo n.º 27
0
 public SatNavModel()
 {
     CurrentDirection = TravelDirection.North;
     CurrentSpeed = 0;
 }
Ejemplo n.º 28
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");
                }
            }
        }
Ejemplo n.º 29
0
        protected void btnBook_Click(object sender, EventArgs e)
        {
            int adults = Convert.ToInt32(Request.QueryString["adults"].ToString());

            int             td = Convert.ToInt16(Request.QueryString["td"].ToString());
            TravelDirection traveldirection = (TravelDirection)td;

            List <string> onwardids = new List <string>();

            for (int i = 0; i < hdnScheduleOnwardSelectedId.Value.Split('|').Length; i++)
            {
                onwardids.Add(hdnScheduleOnwardSelectedId.Value.Split('|')[i].ToString());
            }

            List <TravelSchedule> lstTravelSchedule = (List <TravelSchedule>)Session["flightbookingonwardresults"];
            List <Schedule>       resultonward      = (from t in lstTravelSchedule.SelectMany(schedule => schedule.GetSchedules())
                                                       where onwardids.Contains(t.ID.ToString())
                                                       select t).ToList();

            TravelSchedule objOnwardSchedule   = new TravelSchedule();
            decimal        OnwardCostPerTicket = 0;
            decimal        OnwardTotalCost     = 0;

            foreach (Schedule schedule in resultonward)
            {
                objOnwardSchedule.AddSchedule(schedule);
                OnwardCostPerTicket = OnwardCostPerTicket + schedule.GetFlightCosts().FirstOrDefault().CostPerTicket;
            }


            OnwardTotalCost = OnwardCostPerTicket * adults;

            FlightBooking flightbookingonward = new FlightBooking();

            flightbookingonward.NoOfSeats   = adults;
            flightbookingonward.BookingType = BookingTypes.Flight;
            FlightClass Class = new FlightClass();

            Class.ClassInfo           = (TravelClass)Enum.Parse(typeof(TravelClass), Request.QueryString["class"]);
            flightbookingonward.Class = Class;
            flightbookingonward.TravelScheduleInfo = objOnwardSchedule;
            flightbookingonward.DateOfJourney      = Convert.ToDateTime(Request.QueryString["depart_date"]);
            flightbookingonward.TotalCost          = OnwardTotalCost;

            if (Membership.GetUser() != null)
            {
                flightbookingonward.UserName = Membership.GetUser().UserName;
            }
            else
            {
                flightbookingonward.UserName = "******";
            }


            TravelBooking travelbooking = new TravelBooking();

            travelbooking.AddBookingForTravel(TravelDirection.OneWay, flightbookingonward);

            if (traveldirection == TravelDirection.Return)
            {
                List <string> retunrids = new List <string>();
                for (int i = 0; i < hdnScheduleReturnSelectedId.Value.Split('|').Length; i++)
                {
                    retunrids.Add(hdnScheduleReturnSelectedId.Value.Split('|')[i].ToString());
                }

                List <TravelSchedule> lstTravelScheduleReturn = (List <TravelSchedule>)Session["flightbookingreturnresults"];
                List <Schedule>       resultreturn            = (from t in lstTravelScheduleReturn.SelectMany(schedule => schedule.GetSchedules())
                                                                 where retunrids.Contains(t.ID.ToString())
                                                                 select t).ToList();

                TravelSchedule objReturnSchedule   = new TravelSchedule();
                decimal        ReturnTotalCost     = 0;
                decimal        ReturnCostPerTicket = 0;
                foreach (Schedule schedule in resultreturn)
                {
                    objReturnSchedule.AddSchedule(schedule);
                    ReturnCostPerTicket = ReturnCostPerTicket + schedule.GetFlightCosts().FirstOrDefault().CostPerTicket;
                }
                ReturnTotalCost = ReturnCostPerTicket * adults;

                FlightBooking flightbookingreturn = new FlightBooking();
                flightbookingreturn.NoOfSeats          = adults;
                flightbookingreturn.TravelScheduleInfo = objReturnSchedule;
                flightbookingreturn.DateOfJourney      = Convert.ToDateTime(Request.QueryString["return_date"]);
                flightbookingreturn.TotalCost          = ReturnTotalCost;

                if (Membership.GetUser() != null)
                {
                    flightbookingreturn.UserName = Membership.GetUser().UserName;
                }
                else
                {
                    flightbookingreturn.UserName = "******";
                }


                travelbooking.AddBookingForTravel(TravelDirection.Return, flightbookingreturn);
            }

            Session["travelbooking"] = travelbooking;

            Response.Redirect("~/booking/passengers.aspx");
        }
Ejemplo n.º 30
0
Archivo: Bud.cs Proyecto: radmars/ld46
    private Split GetSplit(string splitter, TravelDirection incoming)
    {
        switch (incoming)
        {
        case TravelDirection.Up:
            switch (splitter)
            {
            case "splitter_lr":
                return(new Split(TravelDirection.Left, TravelDirection.Right, TravelDirection.Up, PlantTileType.Tee));

            case "splitter_lu":
                return(new Split(TravelDirection.Left, TravelDirection.Up, TravelDirection.Right, PlantTileType.Tee));

            // case "splitter_ur":
            default:
                return(new Split(TravelDirection.Up, TravelDirection.Right, TravelDirection.Left, PlantTileType.Tee));
            }

        case TravelDirection.Down:
            switch (splitter)
            {
            case "splitter_lr":
                return(new Split(TravelDirection.Left, TravelDirection.Right, TravelDirection.Down, PlantTileType.Tee));

            case "splitter_lu":
                return(new Split(TravelDirection.Left, TravelDirection.Up, TravelDirection.Down, PlantTileType.Right));

            // case "splitter_ur":
            default:
                return(new Split(TravelDirection.Up, TravelDirection.Right, TravelDirection.Down, PlantTileType.Left));
            }

        case TravelDirection.Left:
            switch (splitter)
            {
            case "splitter_lr":
                return(new Split(TravelDirection.Left, TravelDirection.Right, TravelDirection.Left, PlantTileType.Straight));

            case "splitter_lu":
                return(new Split(TravelDirection.Left, TravelDirection.Up, TravelDirection.Down, PlantTileType.Tee));

            // case "splitter_ur":
            default:
                return(new Split(TravelDirection.Up, TravelDirection.Right, TravelDirection.Left, PlantTileType.Right));
            }

        default:
            switch (splitter)
            {
            case "splitter_lr":
                return(new Split(TravelDirection.Left, TravelDirection.Right, TravelDirection.Right, PlantTileType.Straight));

            case "splitter_lu":
                return(new Split(TravelDirection.Left, TravelDirection.Up, TravelDirection.Right, PlantTileType.Left));

            // case "splitter_ur":
            default:
                return(new Split(TravelDirection.Up, TravelDirection.Right, TravelDirection.Down, PlantTileType.Tee));
            }
        }
    }
Ejemplo n.º 31
0
Archivo: Bud.cs Proyecto: radmars/ld46
 private void SetDirection(TravelDirection direction)
 {
     this.travel = direction;
 }
Ejemplo n.º 32
0
Archivo: Bud.cs Proyecto: radmars/ld46
 private Vector3Int Travel(TravelDirection direction)
 {
     return(location + GetDirectionVector(direction));
 }