Esempio n. 1
0
        public FlightResponse UpdateFlightCombination(string Instance, string SessionId, string Version, FlightDetail FlightDetail)
        {
            const string   FUNCTION_NAME = "UpdateFlightCombination";
            FlightResponse ReturnValue   = new FlightResponse();

            SICTLogger.WriteInfo(CLASS_NAME, FUNCTION_NAME, "Start");
            try
            {
                UserDetailsBusiness ObjSessionValidation  = new FactoryBusiness().GetUserDetailsBusiness(BusinessConstants.VERSION_BASE);
                ManagementBusiness  ObjManagementBusiness = new FactoryBusiness().GetManagementBusiness(Version);
                if (ObjSessionValidation.IsSessionIdValid(SessionId))
                {
                    ReturnValue = ObjManagementBusiness.UpdateFlightComination(Instance, FlightDetail);
                }
                else
                {
                    ReturnValue.ReturnCode    = 0;
                    ReturnValue.ReturnMessage = "Invalid session";
                    SICTLogger.WriteWarning(CLASS_NAME, FUNCTION_NAME, "Invalid session ");
                }
            }
            catch (Exception ex)
            {
                ReturnValue.ReturnCode    = -1;
                ReturnValue.ReturnMessage = "Error in API Execution";
                SICTLogger.WriteException(CLASS_NAME, FUNCTION_NAME, ex);
            }
            SICTLogger.WriteInfo(CLASS_NAME, FUNCTION_NAME, "End");
            return(ReturnValue);
        }
        private static IFlightResponse ParseResponse(IFlightRequest modelQuoteRequest, SkyscannerBrowseQuoteResponse response,
                                                     Quote quote)
        {
            IFlightItinerary outboundItinerary = GetItinerary(response, quote.OutboundLeg);
            IFlightItinerary inboundItinerary  = GetItinerary(response, quote.InboundLeg);

            var flightItineraries = new List <IFlightItinerary>();

            if (inboundItinerary != null)
            {
                flightItineraries.Add(inboundItinerary);
            }
            if (outboundItinerary != null)
            {
                flightItineraries.Add(outboundItinerary);
            }

            IFlightResponse aFlightResponse = new FlightResponse()
            {
                QuoteSource       = "Skyscanner",
                TripTotalPrice    = TryGetCost(quote.MinPrice) ?? quote.MinPrice,
                BookingLink       = GetBookingLink(modelQuoteRequest),
                FlightItineraries = flightItineraries
            };

            return(aFlightResponse);
        }
 public IHttpActionResult GetAvailableFlights(FlightRequest flightRequest)
 {
     if (!ModelState.IsValid)
     {
         return(BadRequest("Inavlid request"));
     }
     try
     {
         var flights     = _service.GetFlights(flightRequest.StartDate, flightRequest.EndDate);
         var helicopters = _service.GetAllHelicopter().ToDictionary(x => x.Id, x => x);
         var cities      = _service.GetAllCities().ToDictionary(x => x.Id, x => x);
         var response    = new List <FlightResponse>();
         flights.ForEach(f =>
         {
             var temp = new FlightResponse
             {
                 BookedSeats  = f.BookedSeats,
                 Capacity     = helicopters[f.HelicopterId].Capacity,
                 Destination  = cities[f.DestinationId],
                 Source       = cities[f.SourceId],
                 FlightNumber = f.FlightNumber
             };
             if (temp.Available >= flightRequest.Pax)
             {
                 response.Add(temp);
             }
         });
         return(Ok(response));
     }
     catch (Exception ex)
     {
         return(InternalServerError(ex));
     }
 }
Esempio n. 4
0
        public void GetQuotes_WhenCall_ReturnQuotes()
        {
            //arrange
            IFlightRequest myFlightRequest = new FlightRequest();

            IFlightResponse aKayakFlight = new FlightResponse();
            var             kayakFlights = new List <IFlightResponse>()
            {
                aKayakFlight
            };

            mockKayakServices.Setup(_ => _.BrowseQuotesAsync(myFlightRequest)).Returns(Task.FromResult(kayakFlights));

            IFlightResponse aSkyscannerFlight = new FlightResponse();
            var             skyscannerFlights = new List <IFlightResponse>()
            {
                aSkyscannerFlight
            };

            mockSkyscannerServices.Setup(_ => _.BrowseQuotesAsync(myFlightRequest)).Returns(Task.FromResult(skyscannerFlights));

            //act
            var repository = new FlightRepository(new List <IFlightResponseReader>()
            {
                mockKayakServices.Object, mockSkyscannerServices.Object
            });
            IEnumerable <IFlightResponse> quoteResponses = repository.BrowseQuotes(myFlightRequest);

            var expectedResponses = new List <IFlightResponse>()
            {
                aKayakFlight, aSkyscannerFlight
            };
            var expectedLogInfCount = 6;

            //assert
            Assert.IsNotNull(quoteResponses);
            Assert.AreEqual(quoteResponses.Count(), expectedResponses.Count);
            Assert.IsTrue(quoteResponses.Contains(expectedResponses[0]));
            Assert.IsTrue(quoteResponses.Contains(expectedResponses[1]));

            //assert log information
            mockILog.Verify(_ => _.Info(It.IsAny <string>()), Times.Exactly(expectedLogInfCount));

            //assert no log error
            mockILog.Verify(_ => _.Error(It.IsAny <string>()), Times.Never);
        }
Esempio n. 5
0
 private void InitFields(FlightResponse ticket)
 {
     try
     {
         this.code.Content        = ticket.code.ToString();
         this.date.Content        = ticket.flight.date;
         this.price.Content       = ticket.flight.price;
         this.passenger.Content   = $"{ticket.userDTO.firstName} {ticket.userDTO.lastName}";
         this.email.Content       = ticket.userDTO.email;
         this.fromAirPort.Content = ticket.flight.airPortFrom.airPortName;
         this.fromAddress.Content = $"{ticket.flight.airPortFrom.city}, {ticket.flight.airPortFrom.country}";
         this.toAirPort.Content   = ticket.flight.airPortTo.airPortName;
         this.toAddress.Content   = $"{ticket.flight.airPortTo.city}, {ticket.flight.airPortTo.country}";
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
     }
 }
        public async Task <IActionResult> Post([FromBody] CreateFlightRequest request)
        {
            if (request == null)
            {
                throw new Exception("Request if f*****g null");
            }

            var flight = new Flight
            {
                Departure = DateTime.ParseExact(request.Departure, "dd-MM-yyyy HH:mm:ss", CultureInfo.InvariantCulture),
                FromId    = request.FromId,
                From      = await _countryService.GetCountryByIdAsync(request.FromId),
                ToId      = request.ToId,
                To        = await _countryService.GetCountryByIdAsync(request.ToId)
            };

            await _flightService.CreateFlightAsync(flight);

            var url = String.Format(
                "{0}://{1}{2}",
                HttpContext.Request.Scheme,
                HttpContext.Request.Host.ToUriComponent(),
                ApiRoutes.Flight.Get.Replace("{id}", flight.Id.ToString())
                );

            var response = new FlightResponse
            {
                Id        = flight.Id,
                Departure = flight.Departure,
                From      = new CountryResponse
                {
                    Id   = flight.From.Id,
                    Name = flight.From.Name
                },
                To = new CountryResponse
                {
                    Id   = flight.To.Id,
                    Name = flight.To.Name
                }
            };

            return(Created(url, response));
        }
Esempio n. 7
0
        /// <summary>
        /// Load real-time flights prices
        /// </summary>
        /// <param name="modelQuoteRequest">model representing the users flight request</param>
        /// <param name="flights">list of flight to append results to the end</param>
        /// <returns></returns>
        private async Task LoadQuotes(IFlightRequest modelQuoteRequest, List <IFlightResponse> flights)
        {
            var kayakLoader = new KayakLoader(modelQuoteRequest);

            IHtmlCollection <IElement> searchResults = await kayakLoader.GetFlightCollection();

            if (searchResults == null)
            {
                return;
            }
            foreach (IElement searchResult in searchResults)
            {
                var flight = new FlightResponse
                {
                    QuoteSource       = "Kayak",
                    TripTotalPrice    = KayakLoader.GetFlightCost(searchResult),
                    BookingLink       = kayakLoader.RequestUrl,
                    FlightItineraries = KayakLoader.GetFlightItineraries(searchResult)
                };

                flights.Add(flight);
            }
        }
Esempio n. 8
0
 public SummaryView(FlightResponse ticket)
 {
     InitializeComponent();
     InitFields(ticket);
     this.ticket = ticket;
 }