Пример #1
0
        private static void SetupAirlineData(List <IFlightBusinessRule> flightBusinessRule)
        {
            var londonToParis = new FlightRoute("London", "Paris")
            {
                BaseCost                 = 50,
                BasePrice                = 100,
                LoyaltyPointsGained      = 5,
                MinimumTakeOffPercentage = 0.1
            };

            var availablePlanes = new List <Plane>
            {
                new Plane {
                    Id = 234, Name = "Bombardier Q400", NumberOfSeats = 250
                },
                new Plane {
                    Id = 345, Name = "Airbus A340", NumberOfSeats = 200
                }
            };

            _scheduledFlight = new ScheduledFlight(londonToParis, flightBusinessRule, availablePlanes);

            _scheduledFlight.SetAircraftForRoute(new Plane {
                Id = 123, Name = "Antonov AN-2", NumberOfSeats = 12
            });
        }
        private MapPolyline createPolygonLine(FlightRoute item)
        {
            MapPolyline result = new MapPolyline();

            result.Stroke          = Brushes.Black;
            result.StrokeThickness = 1;
            result.Opacity         = 0.8f;

            LocationCollection line = new LocationCollection();

            line.Add(new Location()
            {
                Latitude  = item.latOrigin,
                Longitude = item.lonOrigin
            });

            foreach (TransitLocation trans in item.transitList)
            {
                line.Add(new Location()
                {
                    Latitude  = trans.transitLat,
                    Longitude = trans.transitLon
                });
            }

            line.Add(new Location()
            {
                Latitude  = item.latDestination,
                Longitude = item.lonDestination
            });
            result.Locations = line;

            return(result);
        }
        public void Check_Seat_Availability()
        {
            List <Plane> planes = new List <Plane>();

            planes.Add(new Plane {
                Id = 123, Name = "Golden C3P-O", NumberOfSeats = 3
            });
            planes.Add(new Plane {
                Id = 124, Name = "Stormtrooper FN-11", NumberOfSeats = 5
            });

            var madridToPrague = new FlightRoute("Madrid", "Prague")
            {
                BaseCost                 = 80,
                BasePrice                = 150,
                LoyaltyPointsGained      = 10,
                MinimumTakeOffPercentage = 0.5
            };

            var scheduledFlight = new ScheduledFlight(madridToPrague);

            scheduledFlight.SetAircraftForRoute(planes[0]);

            scheduledFlight.Passengers.Add(new Passenger {
                Type = PassengerType.General, Name = "George", Age = 23, AllowedBags = 1
            });
            scheduledFlight.Passengers.Add(new Passenger {
                Type = PassengerType.LoyaltyMember, Name = "Luke", Age = 33, LoyaltyPoints = 1500, IsUsingLoyaltyPoints = true, AllowedBags = 2
            });

            var seatsTaken = scheduledFlight.Passengers.Count();

            Assert.True(scheduledFlight.CheckSeatsTaken(seatsTaken, planes));
        }
Пример #4
0
        public int Add(FlightRoute FlightRoute)
        {
            //Create a SqlCommand object from connection object
            SqlCommand cmd = conn.CreateCommand();

            //Specify an INSERT SQL statement which will
            //return the auto-generated StaffID after insertion
            cmd.CommandText = @"INSERT INTO FlightRoute (DepartureCity, DepartureCountry, ArrivalCity,
                                ArrivalCountry, FlightDuration)
                                OUTPUT INSERTED.RouteID
                                VALUES(@DepartureCity, @DepartureCountry, @ArrivalCity, @ArrivalCountry,
                                @FlightDuration)";
            //Define the parameters used in SQL statement, value for each parameter
            //is retrieved from respective class's property.
            cmd.Parameters.AddWithValue("@DepartureCity", FlightRoute.DepartureCity);
            cmd.Parameters.AddWithValue("@DepartureCountry", FlightRoute.DepartureCountry);
            cmd.Parameters.AddWithValue("@ArrivalCity", FlightRoute.ArrivalCity);
            cmd.Parameters.AddWithValue("@ArrivalCountry", FlightRoute.ArrivalCountry);
            cmd.Parameters.AddWithValue("@FlightDuration", FlightRoute.FlightDuration);


            //A connection to database must be opened before any operations made.
            conn.Open();

            //ExecuteScalar is used to retrieve the auto-generated
            //StaffID after executing the INSERT SQL statement
            FlightRoute.RouteID = (int)cmd.ExecuteScalar();

            //A connection should be closed after operations.
            conn.Close();

            //Return id when no error occurs.
            return(FlightRoute.RouteID);
        }
Пример #5
0
        private static void SetupAirlineData()
        {
            _flightRuleService     = new FlightRuleService();
            _availablePlaneService = new AvailablePlaneService();

            _availablePlaneService.Planes = new List <Plane>();
            _availablePlaneService.Planes.Add(new Plane {
                Id = 124, Name = "Bombardier Q400", NumberOfSeats = 15
            });
            _availablePlaneService.Planes.Add(new Plane {
                Id = 125, Name = "ATR 640", NumberOfSeats = 20
            });

            var londonToParis = new FlightRoute("London", "Paris")
            {
                BaseCost                 = 50,
                BasePrice                = 100,
                LoyaltyPointsGained      = 5,
                MinimumTakeOffPercentage = 0.7
            };

            _scheduledFlight = new ScheduledFlight(
                londonToParis,
                _flightRuleService,
                _availablePlaneService);

            _scheduledFlight.SetAircraftForRoute(new Plane {
                Id = 123, Name = "Antonov AN-2", NumberOfSeats = 12
            });
        }
        public void Minimum_Percentage_Not_Exceeded()
        {
            List <Plane> planes = new List <Plane>();

            planes.Add(new Plane {
                Id = 123, Name = "Golden C3P-O", NumberOfSeats = 6
            });
            planes.Add(new Plane {
                Id = 124, Name = "Stormtrooper FN-11", NumberOfSeats = 8
            });

            var madridToPrague = new FlightRoute("Madrid", "Prague")
            {
                BaseCost                 = 80,
                BasePrice                = 150,
                LoyaltyPointsGained      = 10,
                MinimumTakeOffPercentage = 0.5
            };

            var scheduledFlight = new ScheduledFlight(madridToPrague);

            scheduledFlight.SetAircraftForRoute(planes[0]);

            scheduledFlight.Passengers.Add(new Passenger {
                Type = PassengerType.General, Name = "George", Age = 23, AllowedBags = 1
            });
            scheduledFlight.Passengers.Add(new Passenger {
                Type = PassengerType.General, Name = "Steph", Age = 25, AllowedBags = 1
            });

            var seatsTaken = scheduledFlight.Passengers.Count();

            Assert.False(scheduledFlight.CheckMinPercentageExceeded(seatsTaken));
        }
        static void Main(string[] args)
        {
            Console.WriteLine((Math.Sin(MeasureConverter.ConvertDegreeToRadian(210))));
            Console.WriteLine(MeasureConverter.ConvertRadiansToDegrees(Math.Asin(-0.5)));
            AircraftIdData testData = new AircraftIdData();
            //AirTrafficController testController = new AirTrafficController(TrafficControllerType.Approach);
            var         testPilot         = new Person("ivan");
            Airport     testDeparturePort = new Airport("testAirport", new Position3D(0, 0, 1), new Person("disp"));
            Airport     testArrivalPort   = new Airport("testAirport2", new Position3D(10, 10, 1), new Person("disp"));
            Airport     newAirport        = new Airport("John F. Kennedy International Airport", new Position3D(-90.9187999m, 46.5482781m, 251), new Person("John Kennedy"));
            FlightRoute testRoute         = new FlightRoute();

            testRoute.AddFix(new AirspaceFix(new Position3D(2, 2, 2), false, false));
            FlightPlan testPlan     = new FlightPlan(testDeparturePort, testArrivalPort, new DateTime(), new DateTime(), 10000, testRoute, 100, FlightType.Cargo);
            Aircraft   testAircraft = new Aircraft(testData, 45);
            var        flight       = new Flight(testAircraft, testPilot, testPlan, "7382");

            Console.WriteLine(flight.CurrentPosition);

            while (true)
            {
                flight.UpdatePosition();
                Console.WriteLine(flight.CurrentPosition);
                System.Threading.Thread.Sleep(3000);
            }
        }
Пример #8
0
        private static void FillPlanes()
        {
            Aircraft    testAirplane         = new Aircraft(new AircraftIdData("K7H570BG", "Boeing 737", "Ninja Air", true), 200);
            Airport     testDepartureAirport = new Airport("John F. Kennedy International Airport", new Position3D(-90.9187999m, 46.5482781m, 251), new Person("John Kennedy"));
            Airport     testArrivalAirport   = new Airport("Saranak Lake Airport", new Position3D(-74.1m, 44.2m, 251), new Person("Whinston Churchill"));
            AirspaceFix firstFix             = new AirspaceFix(new Position3D(-87.9187999m, 44.5482781m, 251), false, false);
            AirspaceFix secondFix            = new AirspaceFix(new Position3D(-84.9187999m, 45.5482781m, 251), false, false);
            FlightRoute testRoute            = new FlightRoute();

            testRoute.AddFix(firstFix);
            testRoute.AddFix(secondFix);
            FlightPlan testFlightPlan = new FlightPlan(testDepartureAirport, testArrivalAirport, DateTime.Now, DateTime.Now.AddMinutes(30), 200, testRoute, 10000, FlightType.Scheduled);
            Flight     testFlight     = new Flight(testAirplane, new Person("Pesho"), testFlightPlan, "2213");

            flights.Add(testFlight);

            Planes.Add(new Plane
            {
                Identification = testFlight.Aircraft.Identification.Id,
                Speed          = testFlight.CurrentSpeed,
                X           = testFlight.CurrentPosition.LongitudeInNauticalMiles / 18,
                Y           = testFlight.CurrentPosition.LatitudeInNauticalMiles / 18,
                Z           = (int)testFlight.CurrentPosition.Altitude,
                Company     = "Pacific Airlines",
                Destination = "1", // testFlight.FlightPlan.ArrivalAirport.Name,
                Type        = 1
            });
        }
Пример #9
0
        public async Task StreamWriter_Should_WriteToStream_GiveVlidInput()
        {
            // Arrange
            var mockStreamer = new Mock <IStreamer>();

            var flightRoute = new FlightRoute("London", "Paris")
            {
                BaseCost                 = 50,
                BasePrice                = 100,
                LoyaltyPointsGained      = 5,
                MinimumTakeOffPercentage = 0.7
            };
            var plane = new Plane
            {
                Id            = 123,
                Name          = "Antonov AN-2",
                NumberOfSeats = 12
            };
            var flights = new List <Flight>();

            var fakeMemoryStream = new MemoryStream(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(flights)));

            mockStreamer.Setup(s => s.StreamWriter(It.IsAny <string>())).Returns(() => new StreamWriter(fakeMemoryStream));

            var sut = new FileManager <Flight>(mockStreamer.Object);
            await sut.WriteToJsonAsync("test.txt", flights);

            mockStreamer.Verify(x => x.StreamWriter(It.IsAny <string>()));
        }
Пример #10
0
        public void Setup()
        {
            _flightRoute = new FlightRoute("London", "Paris")
            {
                BasePrice                = 100,
                BaseCost                 = 50,
                LoyaltyPointsGained      = 5,
                MinimumTakeOffPercentage = 0.5D
            };

            _planes = new List <IPlane>
            {
                new Plane {
                    Id = 123, Name = "36 Bonanza", NumberOfSeats = 6
                },
                new Plane {
                    Id = 124, Name = "Piper PA-46", NumberOfSeats = 6
                },
                new Plane {
                    Id = 125, Name = "Cirrus Vision SF50 ", NumberOfSeats = 7
                },
                new Plane {
                    Id = 126, Name = "Cessna 208 Caravan", NumberOfSeats = 8
                },
                new Plane {
                    Id = 127, Name = "Antonov AN-2", NumberOfSeats = 12
                },
                new Plane {
                    Id = 128, Name = "DHC-8-102A", NumberOfSeats = 14
                },
                new Plane {
                    Id = 129, Name = "Viking DHC 6-400", NumberOfSeats = 19
                },
                new Plane {
                    Id = 130, Name = "Saab 340", NumberOfSeats = 34
                },
                new Plane {
                    Id = 131, Name = "Q400", NumberOfSeats = 68
                }
            };

            var ruleSet = new List <IRule>
            {
                new Rule {
                    RuleName = "Profitable flight", RuleType = RuleType.Profitable, RuleEnabled = true, RulePriority = 1, ResponseCode = "01", ResponseMessage = "Flight not profitable"
                },
                new Rule {
                    RuleName = "Flight Capacity", RuleType = RuleType.Capacity, RuleEnabled = true, RulePriority = 1, ResponseCode = "02", ResponseMessage = "Overbooked flight"
                },
                new Rule {
                    RuleName = "Minimum Occupancy", RuleType = RuleType.MinimumOccupancy, RuleEnabled = true, RulePriority = 1, ResponseCode = "03", ResponseMessage = "Under booked flight"
                },
                new Rule {
                    RuleName = "Airline Staff Override", RuleType = RuleType.AirlineStaffOverride, RuleEnabled = true, RulePriority = 1, ResponseCode = "04", ResponseMessage = "Not enough Airline staff"
                }
            };

            _scheduledFlight = new ScheduledFlight(_flightRoute, _planes.First(x => x.Id == 127), ruleSet);
        }
Пример #11
0
 public ScheduleService(IOptions <AppSettings> appSettingsInfo)
 {
     _flightRoute       = appSettingsInfo.Value.FlightRoute;
     _aircrafts         = appSettingsInfo.Value.Aircrafts;
     _selectedAircraft  = _aircrafts[0];
     _relaxRequirements = appSettingsInfo.Value.RelaxRequiremnts;
     Passengers         = new List <Passenger>();
 }
Пример #12
0
 public void AddRoutes(FlightRoute goRoute, DateTime backDate)
 {
     FlightRoute backRoute = new FlightRoute();
     backRoute.ArriveCity = goRoute.DepartCity;
     backRoute.DepartCity = goRoute.ArriveCity;
     backRoute.DepartDate = backDate;
     flight.Routes.Add(goRoute);
     flight.Routes.Add(backRoute);
 }
Пример #13
0
 public SingleFlightSearch(DateTime BookDate, FlightRoute route)
 {
     flight.SearchType = "S";
     flight.Routes = new List<FlightRoute>();
     flight.OrderBy = "DepartTime";
     flight.IsLowestPrice = "true";
     flight.BookDate = BookDate;
     flight.Routes.Add(route);
 }
Пример #14
0
 /// <summary>
 /// Load Flight Route Details
 /// </summary>
 public void LoadFlightRouteDetails()
 {
     FlightRoute = new FlightRoute("London", "Paris")
     {
         BaseCost                 = 50,
         BasePrice                = 100,
         LoyaltyPointsGained      = 5,
         MinimumTakeOffPercentage = 0.7
     };
 }
Пример #15
0
        public bool Pass(FlightRoute flightRoute, Plane allocatedAircraft, List <Passenger> passengers)
        {
            var nonDiscountedProfitFromFlight = passengers.Where(p => p.Type == PassengerType.General ||
                                                                 (p.Type == PassengerType.LoyaltyMember && !p.IsUsingLoyaltyPoints))
                                                .Count() * flightRoute.BasePrice;
            var discountedProfitFromFlight = passengers.Where(p => p.Type == PassengerType.Discounted)
                                             .Count() * flightRoute.BasePrice / 2D;

            return(nonDiscountedProfitFromFlight + discountedProfitFromFlight - flightRoute.BaseCost > 0);
        }
        public FlightRoute LoadFlightRoute()
        {
            var londonToParis = new FlightRoute("London", "Paris")
            {
                BaseCost                 = 50,
                BasePrice                = 100,
                LoyaltyPointsGained      = 5,
                MinimumTakeOffPercentage = 0.7
            };

            return(londonToParis);
        }
        private Pushpin createOriginPin(FlightRoute item)
        {
            Pushpin originPin = new Pushpin();

            originPin.Background = Brushes.Green;
            originPin.Location   = new Location();

            originPin.Location.Latitude  = item.latOrigin;
            originPin.Location.Longitude = item.lonOrigin;
            originPin.ToolTip            = item.originName;

            return(originPin);
        }
Пример #18
0
        private static void SetupAirlineData()
        {
            var londonToParis = new FlightRoute("London", "Paris")
            {
                BaseCost                 = 50,
                BasePrice                = 100,
                LoyaltyPointsGained      = 5,
                MinimumTakeOffPercentage = 0.7
            };

            _scheduledFlight = new ScheduledFlight(londonToParis);

            _scheduledFlight.SetAircraftForRoute(_planes[0]);
        }
        public void Profit_Surplus_Is_Negative_But_Airline_Employees_Exceed_Minimum_Percentage()
        {
            var madridToPrague = new FlightRoute("Madrid", "Prague")
            {
                BaseCost                 = 80,
                BasePrice                = 150,
                LoyaltyPointsGained      = 10,
                MinimumTakeOffPercentage = 0.3
            };

            var scheduledFlight = new ScheduledFlight(madridToPrague);

            scheduledFlight.SetAircraftForRoute(new Plane {
                Id = 124, Name = "Vader Darth-87", NumberOfSeats = 10
            });

            scheduledFlight.Passengers.Add(new Passenger {
                Type = PassengerType.AirlineEmployee, Name = "John", Age = 32, AllowedBags = 1
            });
            scheduledFlight.Passengers.Add(new Passenger {
                Type = PassengerType.AirlineEmployee, Name = "Jen", Age = 28, AllowedBags = 1
            });
            scheduledFlight.Passengers.Add(new Passenger {
                Type = PassengerType.AirlineEmployee, Name = "Tom", Age = 47, AllowedBags = 1
            });
            scheduledFlight.Passengers.Add(new Passenger {
                Type = PassengerType.LoyaltyMember, Name = "Mike", Age = 26, LoyaltyPoints = 1500, IsUsingLoyaltyPoints = true, AllowedBags = 2
            });
            scheduledFlight.Passengers.Add(new Passenger {
                Type = PassengerType.LoyaltyMember, Name = "Pan", Age = 56, LoyaltyPoints = 500, IsUsingLoyaltyPoints = false, AllowedBags = 2
            });
            scheduledFlight.Passengers.Add(new Passenger {
                Type = PassengerType.AirlineEmployee, Name = "Natalie", Age = 30, AllowedBags = 1
            });
            scheduledFlight.Passengers.Add(new Passenger {
                Type = PassengerType.Discounted, Name = "Chris", Age = 38, AllowedBags = 0
            });

            var costOfFlight = scheduledFlight.Passengers.Count * madridToPrague.BaseCost;

            var totalPriceForGeneral = scheduledFlight.Passengers.Where(p => p.Type == PassengerType.General).Count() * madridToPrague.BasePrice;
            var totalPriceForNonUsingLoyaltyPoints = scheduledFlight.Passengers.Where(p => p.Type == PassengerType.LoyaltyMember && p.IsUsingLoyaltyPoints == false).Count() * madridToPrague.BasePrice;
            var totalPriceForDiscounted            = (scheduledFlight.Passengers.Where(p => p.Type == PassengerType.Discounted).Count() * madridToPrague.BasePrice) / 2;

            var profitFromFlight = (totalPriceForGeneral + totalPriceForNonUsingLoyaltyPoints + totalPriceForDiscounted) - costOfFlight;

            var seatsTaken = scheduledFlight.Passengers.Count();

            Assert.True(scheduledFlight.CheckProfitSurplus(profitFromFlight));
        }
        private Pushpin createDestinationPin(FlightRoute item)
        {
            Pushpin destinationPin = new Pushpin();

            destinationPin.Background = Brushes.Red;
            destinationPin.Location   = new Location()
            {
                Latitude  = item.latDestination,
                Longitude = item.lonDestination
            };
            destinationPin.ToolTip = item.destinationName;

            return(destinationPin);
        }
Пример #21
0
        private static void SetupAirlineData()
        {
            var londonToParis = new FlightRoute("London", "Paris")
            {
                BaseCost                 = 50,
                BasePrice                = 100,
                LoyaltyPointsGained      = 5,
                MinimumTakeOffPercentage = 0.7
            };

            _scheduledFlight = new ScheduledFlight(londonToParis);

            _scheduledFlight.SetAircraftForRoute(new Plane {
                Id = 123, Name = "Antonov AN-2", NumberOfSeats = 12
            });
        }
        public ActionResult Create(FlightRoute FlightRoute)
        {
            //in case of the need to return to Create.cshtml view

            if (ModelState.IsValid)
            {
                //Add staff record to database
                FlightRoute.RouteID = flightrouteContext.Add(FlightRoute);
                //Redirect user to FlightRoute/Index view
                return(RedirectToAction("Index"));
            }
            else
            {
                //Input validation fails, return to the Create view
                //to display error message
                return(View(FlightRoute));
            }
        }
Пример #23
0
        private static void Setup()
        {
            var londonToParis = new FlightRoute("London", "Paris")
            {
                BaseCost                 = 50,
                BasePrice                = 100,
                LoyaltyPointsGained      = 5,
                MinimumTakeOffPercentage = 0.7
            };

            _scheduledFlight = new ScheduledFlight(
                londonToParis,
                Container.GetInstance <ISummaryBuilder>(),
                Container.GetInstance <ISummaryOutputGenerator>(),
                Container.GetInstance <IFleetRepository>());

            _scheduledFlight.SetAircraftForRoute(123);
        }
        public void Calculate_Loyalty_Points()
        {
            var madridToPrague = new FlightRoute("Madrid", "Prague")
            {
                BaseCost                 = 80,
                BasePrice                = 150,
                LoyaltyPointsGained      = 10,
                MinimumTakeOffPercentage = 0.5
            };

            var scheduledFlight = new ScheduledFlight(madridToPrague);

            scheduledFlight.SetAircraftForRoute(new Plane {
                Id = 124, Name = "Vader Darth-87", NumberOfSeats = 10
            });

            scheduledFlight.Passengers.Add(new Passenger {
                Type = PassengerType.General, Name = "John", Age = 32, AllowedBags = 1
            });
            scheduledFlight.Passengers.Add(new Passenger {
                Type = PassengerType.General, Name = "Jen", Age = 28, AllowedBags = 1
            });
            scheduledFlight.Passengers.Add(new Passenger {
                Type = PassengerType.General, Name = "Tom", Age = 47, AllowedBags = 1
            });
            scheduledFlight.Passengers.Add(new Passenger {
                Type = PassengerType.LoyaltyMember, Name = "Mike", Age = 26, LoyaltyPoints = 1500, IsUsingLoyaltyPoints = true, AllowedBags = 2
            });
            scheduledFlight.Passengers.Add(new Passenger {
                Type = PassengerType.LoyaltyMember, Name = "Pan", Age = 56, LoyaltyPoints = 500, IsUsingLoyaltyPoints = false, AllowedBags = 2
            });
            scheduledFlight.Passengers.Add(new Passenger {
                Type = PassengerType.AirlineEmployee, Name = "Natalie", Age = 30, AllowedBags = 1
            });
            scheduledFlight.Passengers.Add(new Passenger {
                Type = PassengerType.Discounted, Name = "Chris", Age = 38, AllowedBags = 0
            });

            var totalLoyaltyPointsAccrued  = scheduledFlight.Passengers.Where(p => p.Type == PassengerType.LoyaltyMember && p.IsUsingLoyaltyPoints == false).Count() * madridToPrague.LoyaltyPointsGained;
            var totalLoyaltyPointsRedeemed = scheduledFlight.Passengers.Where(p => p.Type == PassengerType.LoyaltyMember && p.IsUsingLoyaltyPoints == true).Count() * madridToPrague.BasePrice;;

            Assert.Equal(10, totalLoyaltyPointsAccrued);
            Assert.Equal(150, totalLoyaltyPointsRedeemed);
        }
        // TODO: Add method changeArrivalAirport()

        // TODO: Add method recalculateEstimatedArrivalDateTime()

        public FlightPlan(
            Airport departureAirport,
            Airport arrivalAirport,
            DateTime departureDateTime,
            DateTime estimatedArrivalDateTime,
            int preplannedSpeed,
            FlightRoute preplannedRoute,
            int enRouteAltitude,
            FlightType type)
        {
            this.DepartureAirport         = departureAirport;
            this.ArrivalAirport           = arrivalAirport;
            this.DepartureDateTime        = departureDateTime;
            this.EstimatedArrivalDateTime = estimatedArrivalDateTime;
            this.PreplannedSpeed          = preplannedSpeed;
            this.PreplannedRoute          = preplannedRoute;
            this.EnRouteAltitude          = enRouteAltitude;
            this.Type = type;
        }
Пример #26
0
        public IntlSingleFlightSearch(FlightRoute route)
        {
            flight.TripType = TripType.OW;
            flight.PassengerType = PassengerType.ADT;
            flight.PassengerCount = 1;
            flight.ClassGrade = SeatGrade.Y;
            flight.SalesType = SalesType.Online;
            flight.FareType = FareType.All;
            flight.ResultMode = ResultMode.LowestPrice;
            flight.OrderBy = OrderBy.Price;
            flight.Direction = Direction.Asc;

            SegmentInfo segmentinfo = new SegmentInfo();
            segmentinfo.DCode = route.DepartCity;
            segmentinfo.ACode = route.ArriveCity;
            segmentinfo.DDate = (DateTime) route.DepartDate;
            segmentinfo.TimePeriod = "0000-2400";

            flight.SegmentInfos.Add(segmentinfo);
        }
 public ActionResult Create(FlightSchedule flightSchedule)
 {
     //Get country list for drop-down list
     //in case of the need to return to Create.cshtml view
     ViewData["routeIDList"]    = flightRouteContext.GetRouteIDs();
     ViewData["aircraftIDList"] = flightRouteContext.GetAircraftIDs();
     if (ModelState.IsValid)
     {
         FlightRoute flightRoute = flightRouteContext.GetDetails(flightSchedule.RouteID);
         //Add staff record to database
         flightSchedule.ScheduleID = flightScheduleContext.Add(flightSchedule, flightRoute.FlightDuration);
         //Redirect user to Staff/Index view
         return(RedirectToAction("Index"));
     }
     else
     {
         //Input validation fails, return to the Create view
         //to display error message
         return(View(flightSchedule));
     }
 }
Пример #28
0
        public bool Get(double profitSurplus,
                        double costOfFlight,
                        int seatsTaken,
                        int employeesAboard,
                        Plane Aircraft,
                        FlightRoute FlightRoute)
        {
            if (seatsTaken < Aircraft.NumberOfSeats)
            {
                switch (_fluightRule)
                {
                case FlightRule.Primary:
                {
                    if (profitSurplus > 0 &&
                        seatsTaken / (double)Aircraft.NumberOfSeats > FlightRoute.MinimumTakeOffPercentage)
                    {
                        return(true);
                    }
                    break;
                }

                case FlightRule.Secondary:
                {
                    if (profitSurplus > costOfFlight &&
                        employeesAboard / (double)Aircraft.NumberOfSeats > FlightRoute.MinimumTakeOffPercentage)
                    {
                        return(true);
                    }
                }
                break;

                default:
                {
                    return(false);
                }
                }
            }

            return(false);
        }
Пример #29
0
        public async Task StreamReader_Should_GetValidFlightListFromStream()
        {
            // Arrange
            var mockStreamer = new Mock <IStreamer>();

            var flightRoute = new FlightRoute("London", "Paris")
            {
                BaseCost                 = 50,
                BasePrice                = 100,
                LoyaltyPointsGained      = 5,
                MinimumTakeOffPercentage = 0.7
            };
            var plane = new Plane
            {
                Id            = 123,
                Name          = "Antonov AN-2",
                NumberOfSeats = 12
            };
            var flights = new List <Flight>()
            {
                new Flight()
                {
                    Id          = 1,
                    Passengers  = new List <Passenger>(),
                    FlightRoute = flightRoute,
                    Plane       = plane,
                }
            };

            var fakeMemoryStream = new MemoryStream(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(flights)));

            mockStreamer.Setup(s => s.StreamReader(It.IsAny <string>())).Returns(() => new StreamReader(fakeMemoryStream));

            var sut = new FileManager <Flight>(mockStreamer.Object);

            // Acts
            var result = await sut.ReadFromJsonAsync("test.txt");

            Assert.NotEmpty(result);
        }
Пример #30
0
        public void AddRoutes(FlightRoute goRoute, DateTime departDate, DateTime backDate)
        {
            FlightRoute backRoute = new FlightRoute();
            backRoute.ArriveCity = goRoute.DepartCity;
            backRoute.DepartCity = goRoute.ArriveCity;
            backRoute.DepartDate = backDate;

            SegmentInfo goSegmentinfo = new SegmentInfo();
            goSegmentinfo.DCode = goRoute.DepartCity;
            goSegmentinfo.ACode = goRoute.ArriveCity;
            goSegmentinfo.DDate = departDate;
            goSegmentinfo.TimePeriod = "0000-2400";

            SegmentInfo backSegmentinfo = new SegmentInfo();
            backSegmentinfo.ACode = backRoute.ArriveCity;
            backSegmentinfo.DCode = backRoute.DepartCity;
            backSegmentinfo.DDate = backDate;
            backSegmentinfo.TimePeriod = "0000-2400";

            flight.SegmentInfos.Add(goSegmentinfo);
            flight.SegmentInfos.Add(backSegmentinfo);
        }
        public ActionResult Create(FlightRoute flightRoute)
        {
            if (flightRoute.FlightDuration > 18)
            {
                TempData["TooLong"] = "Flight Duration cannot exceed 18 hours";
                return(View());
            }

            if (flightRoute.DepartureCountry.All(char.IsDigit) || flightRoute.DepartureCity.All(char.IsDigit) || flightRoute.ArrivalCountry.All(char.IsDigit) || flightRoute.ArrivalCity.All(char.IsDigit))
            {
                TempData["Invalid"] = "Arrival/Departure Country/City is invalid";
                return(View());
            }

            foreach (FlightRoute fr in flightRouteContext.GetAllFlightRoute())
            {
                if (fr.ArrivalCity == flightRoute.ArrivalCity && fr.ArrivalCountry == flightRoute.ArrivalCountry && fr.DepartureCity == flightRoute.DepartureCity && fr.DepartureCountry == flightRoute.DepartureCountry)
                {
                    TempData["Exists"] = "Flight route already exists";
                    return(View());
                }
            }

            flightRoute.RouteId = flightRouteContext.GetAllFlightRoute().Count + 1;

            if (ModelState.IsValid)
            {
                flightRouteContext.Add(flightRoute);
                TempData["route_success"] = "Successfully created new route";
            }
            else
            {
                TempData["route_failure"] = "New route not created";
            }

            return(RedirectToAction("Index", "Admin"));
        }
Пример #32
0
        public FlightRoute GetDetails(int routeID)
        {
            FlightRoute flightRoute = new FlightRoute();
            //Create a SqlCommand object from connection object
            SqlCommand cmd = conn.CreateCommand();

            //Specify the SELECT SQL statement that
            //retrieves all attributes of a staff record.
            cmd.CommandText = @"SELECT * FROM FlightRoute WHERE RouteID = @selectRouteID";
            //Define the parameter used in SQL statement, value for the
            //parameter is retrieved from the method parameter “staffId”.
            cmd.Parameters.AddWithValue("@selectRouteID", routeID);
            //Open a database connection
            conn.Open();
            //Execute SELCT SQL through a DataReader
            SqlDataReader reader = cmd.ExecuteReader();

            if (reader.HasRows)
            {
                //Read the record from database
                while (reader.Read())
                {
                    // Fill staff object with values from the data reader
                    flightRoute.RouteID          = routeID;
                    flightRoute.DepartureCity    = !reader.IsDBNull(1) ? reader.GetString(1) : null;
                    flightRoute.DepartureCountry = !reader.IsDBNull(2) ? reader.GetString(2) : null;
                    flightRoute.ArrivalCity      = !reader.IsDBNull(3) ? reader.GetString(3) : null;
                    flightRoute.ArrivalCountry   = !reader.IsDBNull(4) ? reader.GetString(4) : null;
                    flightRoute.FlightDuration   = !reader.IsDBNull(5) ? reader.GetInt32(5) : 0;
                }
            }
            //Close data reader
            reader.Close();
            //Close database connection
            conn.Close();
            return(flightRoute);
        }
        public void Add(FlightRoute flightRoute)
        {
            SqlCommand cmd = conn.CreateCommand();

            cmd.CommandText = @"insert into flightRoute (DepartureCity, DepartureCountry, ArrivalCity, ArrivalCountry, FlightDuration)
                                values(@departureCity, @departureCountry, @arrivalCity, @arrivalCountry, @flightDuration)";

            cmd.Parameters.AddWithValue("@departureCity", flightRoute.DepartureCity);
            cmd.Parameters.AddWithValue("@departureCountry", flightRoute.DepartureCountry);
            cmd.Parameters.AddWithValue("@arrivalCity", flightRoute.ArrivalCity);
            cmd.Parameters.AddWithValue("@arrivalCountry", flightRoute.ArrivalCountry);
            if (flightRoute.FlightDuration == null)
            {
                cmd.Parameters.AddWithValue("@flightDuration", DBNull.Value);
            }
            else
            {
                cmd.Parameters.AddWithValue("@flightDuration", flightRoute.FlightDuration);
            }

            conn.Open();
            cmd.ExecuteScalar();
            conn.Close();
        }
Пример #34
0
 public FlightService(FlightRoute route)
 {
     FlightRoute = route;
 }
Пример #35
0
        //设置国外往返机票搜索信息
        public IntlFlightResponseList SearchIntlRoundTripFlight(String _departCity, String _arriveCity, DateTime _departDate, DateTime _backDate)
        {
            //搜索出发机票
            FlightRoute goRoute = new FlightRoute();
            CityCodeTranslator cct = new CityCodeTranslator();
            goRoute.DepartCity = cct.TranslateToCode(_departCity);
            goRoute.ArriveCity = cct.TranslateToCode(_arriveCity);
            goRoute.DepartDate = _departDate;//出发日期

            IntlRoundFlightSearch irfs = new IntlRoundFlightSearch();
            irfs.AddRoutes(goRoute, _departDate, _backDate);//返程日期
            irfs.SetReturnEntity(apiCallProxy);

            IntlFlightResponse ifr = this.GenerateResultsFromIntl(irfs.returnEntity);

            //搜索返程机票
            irfs.AddRouting(ifr.GetFlightReponseData()[0].Routings);
            irfs.SetShoppingInfoID(ifr.GetFlightReponseData()[0].ShoppingInfoID);
            irfs.SetReturnEntity(apiCallProxy);

            IntlFlightResponse ifr2 = this.GenerateResultsFromIntl(irfs.returnEntity);
            IntlFlightResponseList ifrl = new IntlFlightResponseList();
            ifrl.SetFlightResponse(ifr);
            ifrl.SetFlightResponse(ifr2);
            this.GenerateXmlFileFromIntl(ifrl);

            /*
            IntlFlightResponseList result = new IntlFlightResponseList();
            IntlFlightResponse response = new IntlFlightResponse();
            IntlFlightResponse response2 = new IntlFlightResponse();
            response.SetFlightResponseData(ifr.GetFlightReponseData()[0]);
            response.SetFlightResponseData(ifr2.GetFlightReponseData()[0]);
            result.SetFlightResponse(response);
            result.SetFlightResponse(response2);
             */

            return ifrl;
        }
Пример #36
0
        //设置国外单程机票搜索信息
        public IntlFlightResponseList SearchIntlOneWayFlight(String _departCity, String _arriveCity, DateTime _departDate)
        {
            FlightRoute route = new FlightRoute();
            CityCodeTranslator cct = new CityCodeTranslator();
            route.DepartCity = cct.TranslateToCode(_departCity);
            route.ArriveCity = cct.TranslateToCode(_arriveCity);
            route.DepartDate = _departDate;//出发日期

            IntlSingleFlightSearch isfs = new IntlSingleFlightSearch(route);
            isfs.SetReturnEntity(apiCallProxy);

            IntlFlightResponse ifr = this.GenerateResultsFromIntl(isfs.returnEntity);
            IntlFlightResponseList ifrl = new IntlFlightResponseList();
            ifrl.SetFlightResponse(ifr);
            this.GenerateXmlFileFromIntl(ifrl);

            /*
            IntlFlightResponseList result = new IntlFlightResponseList();
            IntlFlightResponse response = new IntlFlightResponse();
            response.SetFlightResponseData(ifr.GetFlightReponseData()[0]);
            result.SetFlightResponse(response);
             */

            return ifrl;
        }
Пример #37
0
        //设置国内往返机票搜索信息
        public FlightResponseList SearchDmstRoundTripFlight(String _departCity, String _arriveCity, DateTime _departDate, DateTime _backDate)
        {
            FlightRoute goRoute = new FlightRoute();
            CityCodeTranslator cct = new CityCodeTranslator();
            goRoute.DepartCity = cct.TranslateToCode(_departCity);
            goRoute.ArriveCity = cct.TranslateToCode(_arriveCity);
            goRoute.DepartDate = _departDate;//出发日期

            RoundFlightSearch rfs = new RoundFlightSearch(new DateTime(2013, 2, 20));//订票日期
            rfs.AddRoutes(goRoute, _backDate);//返程日期
            rfs.SetReturnEntity(apiCallProxy);
            FlightResponseList frl = this.GenerateResultsFromDmst(rfs.returnEntity);

            /*
            FlightResponseList result = new FlightResponseList();
            FlightResponse response = new FlightResponse();
            FlightResponse response2 = new FlightResponse();
            response.SetFlightResponseData(frl.GetFlightReponse()[0].GetFlightReponseData()[0]);
            result.SetFlightResponse(response);
            response2.SetFlightResponseData(frl.GetFlightReponse()[1].GetFlightReponseData()[0]);
            result.SetFlightResponse(response2);*/

            return frl;
        }
Пример #38
0
        //设置国内单程机票搜索信息 returnEntity
        public FlightResponseList SearchDmstOneWayFlight(String _departCity, String _arriveCity, DateTime _departDate)
        {
            FlightRoute route = new FlightRoute();
            CityCodeTranslator cct = new CityCodeTranslator();
            route.DepartCity = cct.TranslateToCode(_departCity);
            route.ArriveCity = cct.TranslateToCode(_arriveCity);
            route.DepartDate = _departDate;//出发日期

            SingleFlightSearch sfs = new SingleFlightSearch(new DateTime(), route);//订票日期
            sfs.SetReturnEntity(apiCallProxy);
            FlightResponseList frl = this.GenerateResultsFromDmst(sfs.returnEntity);

            /*
            FlightResponseList result = new FlightResponseList();
            FlightResponse response = new FlightResponse();
            response.SetFlightResponseData(frl.GetFlightReponse()[0].GetFlightReponseData()[0]);
            result.SetFlightResponse(response);*/

            return frl;
        }