public async Task LoadFareQuotationAsync(int CustomerId, IBooking _booking, IMarkup _markup, DBContext _context) { _booking.CustomerId = CustomerId; this.FareQuotResponse = new List <mdlFareQuotResponse>(); this.FareRule = new List <mdlFareRuleResponse>(); //Check Is Flight is Already Booked Coreponding to this TraceID if (_context.tblFlightBookingSegmentMaster.Where(p => p.TraceId == FareQuoteRequest.TraceId && p.BookingStatus != enmBookingStatus.Pending).Count() > 0) { throw new Exception("Flight Ticket is already Booked"); } this.FareQuotResponse.AddRange(await _booking.FareQuoteAsync(FareQuoteRequest)); foreach (var md in FareQuotResponse) { if (md.Results != null) { _markup.CustomerId = CustomerId; _markup.CustomerMarkup(md.Results, CustomerId); _markup.WingMarkupAmount(md.Results, md.SearchQuery.AdultCount, md.SearchQuery.ChildCount, md.SearchQuery.InfantCount); if (this.travellerInfo == null) { this.travellerInfo = new List <mdlTravellerinfo>(); for (int i = 0; i < md.SearchQuery.AdultCount; i++) { this.travellerInfo.Add(new mdlTravellerinfo() { Title = "MR", passengerType = enmPassengerType.Adult, FirstName = string.Empty, LastName = string.Empty, cabinclass = md.Results?.FirstOrDefault()?.FirstOrDefault()?.TotalPriceList?.FirstOrDefault()?.ADULT.CabinClass.ToString(), bookingclass = md.Results?.FirstOrDefault()?.FirstOrDefault()?.TotalPriceList?.FirstOrDefault()?.ADULT.ClassOfBooking.ToString(), farebasis = md.Results?.FirstOrDefault()?.FirstOrDefault()?.TotalPriceList?.FirstOrDefault()?.ADULT.FareBasis.ToString() }); } for (int i = 0; i < md.SearchQuery.ChildCount; i++) { this.travellerInfo.Add(new mdlTravellerinfo() { Title = "MASTER", passengerType = enmPassengerType.Child, FirstName = string.Empty, LastName = string.Empty, cabinclass = md.Results?.FirstOrDefault()?.FirstOrDefault()?.TotalPriceList?.FirstOrDefault()?.CHILD.CabinClass.ToString(), bookingclass = md.Results?.FirstOrDefault()?.FirstOrDefault()?.TotalPriceList?.FirstOrDefault()?.CHILD.ClassOfBooking.ToString(), farebasis = md.Results?.FirstOrDefault()?.FirstOrDefault()?.TotalPriceList?.FirstOrDefault()?.CHILD.FareBasis.ToString() }); } for (int i = 0; i < md.SearchQuery.InfantCount; i++) { this.travellerInfo.Add(new mdlTravellerinfo() { Title = "MASTER", passengerType = enmPassengerType.Infant, FirstName = string.Empty, LastName = string.Empty, cabinclass = md.Results?.FirstOrDefault()?.FirstOrDefault()?.TotalPriceList?.FirstOrDefault()?.INFANT.CabinClass.ToString(), bookingclass = md.Results?.FirstOrDefault()?.FirstOrDefault()?.TotalPriceList?.FirstOrDefault()?.INFANT.ClassOfBooking.ToString(), farebasis = md.Results?.FirstOrDefault()?.FirstOrDefault()?.TotalPriceList?.FirstOrDefault()?.INFANT.FareBasis.ToString() }); } } _markup.WingConvenienceAmount(md, this.travellerInfo); _markup.WingDiscountAmount(md, this.travellerInfo); _markup.CalculateTotalPriceAfterMarkup(md.Results, md.SearchQuery.AdultCount, md.SearchQuery.ChildCount, md.SearchQuery.InfantCount, "review"); } } await _booking.CustomerFlightDetailSave(FareQuoteRequest.TraceId, FareQuotResponse); }