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)); } }
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); }
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)); }
/// <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); } }
public SummaryView(FlightResponse ticket) { InitializeComponent(); InitFields(ticket); this.ticket = ticket; }