//public bool IssueTicket(Int64 PNRId, int UserId) //{ // string GDSRefNo = ent.PNRs.Where(x => x.PNRId == PNRId).FirstOrDefault().GDSRefrenceNumber; // Abacus.Ticketing.TicketIssueManager manager = new Abacus.Ticketing.TicketIssueManager(); // try // { // var retriveData = BookingManager.RetrievePNR(GDSRefNo); // if (string.IsNullOrEmpty(retriveData.PassengerList.FirstOrDefault().TicketNumber)) // { // retriveData = manager.IssueTicket(GDSRefNo, (decimal)0); // } // int TicketStatusId = ent.PNRs.Where(x => x.PNRId == PNRId).FirstOrDefault().TicketStatusId; // if (TicketStatusId != 4) // { // var dbPassengerList = ent.Passengers.Where(x => x.PNRId == PNRId && x.isDeleted == false).ToArray(); // int paxCounter = 0; // foreach (var item in retriveData.PassengerList) // { // Passengers pass = dbPassengerList.ElementAt(paxCounter); // pass.TicketNumber = item.TicketNumber; // ent.ApplyCurrentValues(pass.EntityKey.EntitySetName, pass); // ent.SaveChanges(); // paxCounter++; // } // ent.Air_IssueTickets(PNRId, UserId); // } // return true; // } // catch (GDS.GDSException ex) // { // throw ex; // } // catch (Exception ex) // { // throw ex; // } //} public bool IssueTicket(Int64 PNRId, int UserId) { var result = ent.PNRs.Where(x => x.PNRId == PNRId).FirstOrDefault(); if (result != null) { string GDSRefNo = result.GDSRefrenceNumber; Abacus.Ticketing.TicketIssueManager manager = new Abacus.Ticketing.TicketIssueManager(); try { var retriveData = BookingManager.RetrievePNR(GDSRefNo, null); if (string.IsNullOrEmpty(retriveData.PassengerList.FirstOrDefault().TicketNumber)) { retriveData = manager.IssueTicket(GDSRefNo, (decimal)0); } int TicketStatusId = ent.PNRs.Where(x => x.PNRId == PNRId).FirstOrDefault().TicketStatusId; if (TicketStatusId != 4) { var dbPassengerList = ent.Passengers.Where(x => x.PNRId == PNRId && x.isDeleted == false).ToArray(); int paxCounter = 0; foreach (var item in retriveData.PassengerList) { Passengers pass = dbPassengerList.ElementAt(paxCounter); pass.TicketNumber = item.TicketNumber; ent.ApplyCurrentValues(pass.EntityKey.EntitySetName, pass); ent.SaveChanges(); paxCounter++; } ent.Air_IssueTickets(PNRId, UserId); } return(true); } catch (GDS.GDSException ex) { throw ex; } catch (Exception ex) { throw ex; } } else { string GDSRefNo = ent.TBO_PNRs.Where(x => x.MPNRId == PNRId).FirstOrDefault().RecLoc; Abacus.Ticketing.TicketIssueManager manager = new Abacus.Ticketing.TicketIssueManager(); try { var retriveData = BookingManager.RetrievePNR(GDSRefNo, null); if (string.IsNullOrEmpty(retriveData.PassengerList.FirstOrDefault().TicketNumber)) { retriveData = manager.IssueTicket(GDSRefNo, (decimal)0); } int TicketStatusId = ent.TBO_MasterPNRs.Where(x => x.MPNRId == PNRId).FirstOrDefault().TicketStatusId; if (TicketStatusId != 4 || TicketStatusId != 16 || TicketStatusId != 19) { var dbPassengerList = ent.TBO_Passengers.Where(x => x.MPNRId == PNRId && x.IsDeleted == false).ToArray(); int paxCounter = 0; foreach (var item in retriveData.PassengerList) { TBO_Passengers pass = dbPassengerList.ElementAt(paxCounter); TBO_PNRTickets tickets = pass.TBO_PNRTickets.FirstOrDefault(); tickets.TicketNumber = item.TicketNumber; ent.ApplyCurrentValues(tickets.EntityKey.EntitySetName, tickets); ent.SaveChanges(); paxCounter++; } ent.TBO_Air_IssueTickets(PNRId, UserId); } return(true); } catch (GDS.GDSException ex) { throw ex; } catch (Exception ex) { throw ex; } } }