Exemplo n.º 1
0
        public DataSet Booking(DataTable dtTicketInfo, DataSet dsTentativeInfo, string referenceNumber, out string api,
                                out string status, out string statusReason)
        {
            try
            {
                DataSet dsBookingResult = null;
                string str = dtTicketInfo.Rows[0]["OtherInfo"].ToString();
                string[] strArray = str.Split(';');

                api = ""; status = ""; statusReason = "";

                api = strArray[0].ToString();

                #region KesineniBooking
                if (api == "Kes")
                {
                    int sourceStationId = 0; int destinationStationId = 0; string journeyDate = ""; long serviceId = 0;
                    int coachTypeId = 0; int noOfSeats = 0; string seatNumbersList = ""; string firstNameList = "";
                    string lastNameList = ""; string genderList = ""; string ageList = ""; string contactNumberList = "";
                    string boardingPointIdList = ""; string droppingPointId = ""; string ticketFare = ""; string emailId = "";
                    string address = ""; string photoIdType = ""; string photoIdNo = ""; string photoIdIssuingAuthority = "";
                    decimal totalBasicFare = 0; decimal serviceTaxPercentage = 0; string discountcode = "";

                    sourceStationId = Convert.ToInt32(strArray[1].ToString());
                    destinationStationId = Convert.ToInt32(strArray[2].ToString());
                    journeyDate = strArray[3].ToString();
                    serviceId = Convert.ToInt64(strArray[4].ToString());
                    coachTypeId = Convert.ToInt32(strArray[5].ToString());
                    noOfSeats = Convert.ToInt32(strArray[7].ToString());
                    seatNumbersList = strArray[8].ToString();
                    boardingPointIdList = strArray[9].ToString();
                    ticketFare = Convert.ToString(strArray[6].ToString());
                    droppingPointId = strArray[11].ToString();
                    emailId = dtTicketInfo.Rows[0]["EmailId"].ToString();
                    address = dtTicketInfo.Rows[0]["Address"].ToString();

                    photoIdType = "photoIdType";
                    photoIdNo = referenceNumber;
                    photoIdIssuingAuthority = "photoIdIssuingAuthority";
                    totalBasicFare = Convert.ToDecimal(strArray[10].ToString());
                    serviceTaxPercentage = Convert.ToDecimal(0);
                    discountcode = "0";

                    if (dtTicketInfo.Columns.Contains("FullNameList") &&
                       dtTicketInfo.Columns.Contains("PhoneNoList") &&
                       dtTicketInfo.Columns.Contains("AgeList") &&
                       dtTicketInfo.Columns.Contains("GenderList"))
                    {
                        if (dtTicketInfo.Rows[0]["FullNameList"].ToString() != "" &&
                            dtTicketInfo.Rows[0]["PhoneNoList"].ToString() != "" &&
                            dtTicketInfo.Rows[0]["AgeList"].ToString() != "" &&
                            dtTicketInfo.Rows[0]["GenderList"].ToString() != "")
                        {
                            firstNameList = dtTicketInfo.Rows[0]["FullNameList"].ToString();
                            lastNameList = dtTicketInfo.Rows[0]["FullNameList"].ToString();
                            genderList = dtTicketInfo.Rows[0]["GenderList"].ToString();
                            ageList = dtTicketInfo.Rows[0]["AgeList"].ToString();
                            contactNumberList = dtTicketInfo.Rows[0]["PhoneNoList"].ToString();
                        }
                        else
                        {
                            firstNameList = dtTicketInfo.Rows[0]["FullName"].ToString();
                            lastNameList = dtTicketInfo.Rows[0]["FullName"].ToString();
                            genderList = dtTicketInfo.Rows[0]["Title"].ToString();
                            ageList = dtTicketInfo.Rows[0]["Age"].ToString();
                            contactNumberList = dtTicketInfo.Rows[0]["PhoneNo"].ToString();

                            if (noOfSeats > 1)
                            {
                                for (int i = 0; i < noOfSeats - 1; i++)
                                {
                                    firstNameList = firstNameList + "," + dtTicketInfo.Rows[0]["FullName"].ToString();
                                    lastNameList = lastNameList + "," + dtTicketInfo.Rows[0]["FullName"].ToString();
                                    contactNumberList = contactNumberList + "," + dtTicketInfo.Rows[0]["PhoneNo"].ToString();
                                    ageList = ageList + "," + dtTicketInfo.Rows[0]["Age"].ToString();
                                    genderList = genderList + "," + dtTicketInfo.Rows[0]["Title"].ToString();
                                }
                            }
                        }
                    }

                    else
                    {
                        firstNameList = dtTicketInfo.Rows[0]["FullName"].ToString();
                        lastNameList = dtTicketInfo.Rows[0]["FullName"].ToString();
                        genderList = dtTicketInfo.Rows[0]["Title"].ToString();
                        ageList = dtTicketInfo.Rows[0]["Age"].ToString();
                        contactNumberList = dtTicketInfo.Rows[0]["PhoneNo"].ToString();

                        if (noOfSeats > 1)
                        {
                            for (int i = 0; i < noOfSeats - 1; i++)
                            {
                                firstNameList = firstNameList + "," + dtTicketInfo.Rows[0]["FullName"].ToString();
                                lastNameList = lastNameList + "," + dtTicketInfo.Rows[0]["FullName"].ToString();
                                contactNumberList = contactNumberList + "," + dtTicketInfo.Rows[0]["PhoneNo"].ToString();
                                ageList = ageList + "," + dtTicketInfo.Rows[0]["Age"].ToString();
                                genderList = genderList + "," + dtTicketInfo.Rows[0]["Title"].ToString();
                            }
                        }
                    }

                    if (dtTicketInfo.Columns.Contains("IdType") &&
                      dtTicketInfo.Columns.Contains("IdNo") &&
                      dtTicketInfo.Columns.Contains("IdIssuedBy"))
                    {
                        if (dtTicketInfo.Rows[0]["IdType"].ToString() != "" &&
                           dtTicketInfo.Rows[0]["IdNo"].ToString() != "")
                        {
                            photoIdType = dtTicketInfo.Rows[0]["IdType"].ToString();
                            photoIdNo = dtTicketInfo.Rows[0]["IdNo"].ToString();
                            photoIdIssuingAuthority = dtTicketInfo.Rows[0]["IdIssuedBy"].ToString();
                        }
                    }

                    DataSet ds = dsTentativeInfo;
                    if (ds != null)
                    {
                        if (ds.Tables[0].Rows.Count > 0 && ds.Tables[0].Columns.Count > 1)
                        {
                            int serviceTransId = 0;
                            long blockedTicketId = 0;
                            serviceTransId = Convert.ToInt32(ds.Tables[0].Rows[0]["ServiceTransDateID"].ToString());
                            blockedTicketId = Convert.ToInt64(ds.Tables[0].Rows[0]["BlockedTicketID"].ToString());
                            dsBookingResult = objKesineniAPILayer.BookTicketsConfirmationOnwardJourney(sourceStationId, destinationStationId, journeyDate,
                                serviceId, serviceTransId, noOfSeats, blockedTicketId, GenerateManabusRefNo(), GenerateManabusRefNo());
                            status = "Success"; statusReason = "";
                        }
                    }
                    else
                    {
                        status = "Fail"; statusReason = "Need to write.";
                    }
                }
                #endregion

                #region BitlaBooking
                if (api == "Bit")
                {
                    objBitlaAPILayer.ReservationId = strArray[1].ToString();
                    objBitlaAPILayer.OriginId = strArray[2].ToString();
                    objBitlaAPILayer.DestinationId = strArray[3].ToString();
                    objBitlaAPILayer.BoardingAt = strArray[5].ToString();
                    objBitlaAPILayer.NoOfSeats = strArray[4].ToString();
                    objBitlaAPILayer.RefNumber = referenceNumber;
                    int noOfSeats = Convert.ToInt32(strArray[4].ToString());
                    string selectedSeats = strArray[6].ToString();
                    string[] selectedSeatsArray = selectedSeats.Split(',');

                    book_ticket bookTicket = new book_ticket();
                    object[] obj = new object[2];

                    book_ticketSeat_detailsSeat_detail[] sD = new book_ticketSeat_detailsSeat_detail[noOfSeats];

                    if (dtTicketInfo.Columns.Contains("FullNameList") &&
                        dtTicketInfo.Columns.Contains("PhoneNoList") &&
                        dtTicketInfo.Columns.Contains("AgeList") &&
                        dtTicketInfo.Columns.Contains("GenderList") &&
                        dtTicketInfo.Columns.Contains("IdType") &&
                        dtTicketInfo.Columns.Contains("IdNo") &&
                        dtTicketInfo.Columns.Contains("IdIssuedBy"))
                    {
                        if (dtTicketInfo.Rows[0]["FullNameList"].ToString() != "" &&
                            dtTicketInfo.Rows[0]["PhoneNoList"].ToString() != "" &&
                            dtTicketInfo.Rows[0]["AgeList"].ToString() != "" &&
                            dtTicketInfo.Rows[0]["GenderList"].ToString() != "" &&
                            dtTicketInfo.Rows[0]["IdType"].ToString() != "" &&
                            dtTicketInfo.Rows[0]["IdNo"].ToString() != "" &&
                            dtTicketInfo.Rows[0]["IdIssuedBy"].ToString() != "")
                        {
                            string[] fullNameListArray = dtTicketInfo.Rows[0]["FullNameList"].ToString().Split(',');
                            string[] phoneNoListArray = dtTicketInfo.Rows[0]["PhoneNoList"].ToString().Split(',');
                            string[] ageListArray = dtTicketInfo.Rows[0]["AgeList"].ToString().Split(',');
                            string[] genderListArray = dtTicketInfo.Rows[0]["GenderList"].ToString().Split(',');

                            string address = dtTicketInfo.Rows[0]["Address"].ToString();
                            string idType = dtTicketInfo.Rows[0]["IdType"].ToString();
                            string idNo = dtTicketInfo.Rows[0]["IdNo"].ToString();
                            string idIssuedBy = dtTicketInfo.Rows[0]["IdIssuedBy"].ToString();

                            for (int i = 0; i < noOfSeats; i++)
                            {
                                book_ticketSeat_detailsSeat_detail sdd = new book_ticketSeat_detailsSeat_detail();
                                sdd.seat_number = selectedSeatsArray[i].ToString();
                                sdd.title = genderListArray[i].ToString();
                                sdd.name = fullNameListArray[i].ToString();
                                sdd.age = ageListArray[i].ToString();
                                sdd.sex = genderListArray[i].ToString();

                                if (i == 0) { sdd.is_primary = "true"; }
                                else { sdd.is_primary = "false"; }

                                sdd.address = address;

                                string id = "";//1 -> Pan Card, 2 -> D/L, 3 -> Passport, 4 -> Voter, 5 -> Aadhar Card
                                if (idType.ToString().ToLower().Contains("pan"))
                                {
                                    id = "1";
                                }
                                else if (idType.ToString().ToLower().Contains("dri"))
                                {
                                    id = "2";
                                }
                                else if (idType.ToString().ToLower().Contains("pass"))
                                {
                                    id = "3";
                                }
                                else if (idType.ToString().ToLower().Contains("voter"))
                                {
                                    id = "4";
                                }
                                else if (idType.ToString().ToLower().Contains("adhar"))
                                {
                                    id = "5";
                                }
                                else if (idType.ToString().ToLower().Contains("ration"))
                                {
                                    id = "4";
                                }

                                sdd.id_card_type = id;

                                sdd.id_card_number = idNo;
                                sdd.id_card_issued_by = idIssuedBy;

                                sD[i] = sdd;
                            }
                        }
                        else
                        {
                            for (int i = 0; i < noOfSeats; i++)
                            {
                                book_ticketSeat_detailsSeat_detail sdd = new book_ticketSeat_detailsSeat_detail();
                                sdd.seat_number = selectedSeatsArray[i].ToString();
                                sdd.title = "Mr";
                                sdd.name = dtTicketInfo.Rows[0]["FullName"].ToString();
                                sdd.age = dtTicketInfo.Rows[0]["Age"].ToString();
                                sdd.sex = dtTicketInfo.Rows[0]["Title"].ToString();
                                if (i == 0) { sdd.is_primary = "true"; }
                                else { sdd.is_primary = "false"; }

                                sdd.address = "";
                                sdd.id_card_type = "";//1 -> Pan Card, 2 -> D/L, 3 -> Passport, 4 -> Voter, 5 -> Aadhar Card
                                sdd.id_card_number = "";
                                sdd.id_card_issued_by = "";

                                sD[i] = sdd;
                            }
                        }
                    }
                    else
                    {
                        for (int i = 0; i < noOfSeats; i++)
                        {
                            book_ticketSeat_detailsSeat_detail sdd = new book_ticketSeat_detailsSeat_detail();
                            sdd.seat_number = selectedSeatsArray[i].ToString();
                            sdd.title = "Mr";
                            sdd.name = dtTicketInfo.Rows[0]["FullName"].ToString();
                            sdd.age = dtTicketInfo.Rows[0]["Age"].ToString();
                            sdd.sex = dtTicketInfo.Rows[0]["Title"].ToString();
                            if (i == 0) { sdd.is_primary = "true"; }
                            else { sdd.is_primary = "false"; }

                            sdd.address = "";
                            sdd.id_card_type = "";//1 -> Pan Card, 2 -> D/L, 3 -> Passport, 4 -> Voter, 5 -> Aadhar Card
                            sdd.id_card_number = "";
                            sdd.id_card_issued_by = "";

                            sD[i] = sdd;
                        }
                    }

                    book_ticketSeat_details ss = new book_ticketSeat_details();
                    ss.seat_detail = sD;
                    book_ticketContact_detail cc = new book_ticketContact_detail();
                    cc.mobile_number = dtTicketInfo.Rows[0]["PhoneNo"].ToString();
                    cc.email = dtTicketInfo.Rows[0]["EmailId"].ToString();
                    cc.emergency_name = dtTicketInfo.Rows[0]["PhoneNo"].ToString();
                    obj[0] = ss;
                    obj[1] = cc;
                    bookTicket.Items = obj;

                    objBitlaAPILayer.TicketDetails = bookTicket;
                    DataSet dsBookTicket = dsTentativeInfo;
                    DataSet dsBookTicket2 = objBitlaAPILayer.BookTicket();
                    if (dsBookTicket2 != null)
                    {
                        if (dsBookTicket2.Tables[0].Rows.Count > 0)
                        {
                            status = "Success"; statusReason = "";
                            dsBookingResult = dsBookTicket2;
                        }
                        else
                        {
                            status = "Fail"; statusReason = "Need to write.";
                        }
                    }
                    else
                    {
                        status = "Fail"; statusReason = "Need to write.";
                    }
                }
                #endregion

                #region AbhiBusBooking
                if (api == "Abh")
                {
                    string jDate = ""; string sId = ""; string dId = ""; string serviceId = ""; string selectedSeats = "";
                    int noOfSeats = 0; string bId = ""; string genderType = ""; string psgrName = "";
                    jDate = strArray[1].ToString();
                    sId = strArray[2].ToString();
                    dId = strArray[3].ToString();
                    serviceId = strArray[4].ToString();
                    selectedSeats = strArray[5].ToString();
                    bId = strArray[6].ToString();
                    noOfSeats = Convert.ToInt32(strArray[7].ToString());
                    genderType = dtTicketInfo.Rows[0]["Title"].ToString();
                    psgrName = dtTicketInfo.Rows[0]["FullName"].ToString();
                    if (noOfSeats > 1)
                    {
                        for (int i = 0; i < noOfSeats - 1; i++)
                        {
                            psgrName = psgrName + "," + dtTicketInfo.Rows[0]["FullName"].ToString();
                            genderType = genderType + "," + dtTicketInfo.Rows[0]["Title"].ToString();
                        }
                    }
                    DataSet ds11 = dsTentativeInfo;
                    DataTable dt1 = ds11.Tables[0];
                    if (dt1 != null && dt1.Columns.Count > 0 && dt1.Rows.Count > 0)
                    {
                        string sel_seats = dt1.Rows[0]["sel_seats"].ToString();
                        string sel_seat_row_cols = dt1.Rows[0]["sel_seat_row_cols"].ToString();
                        string total_fare = dt1.Rows[0]["total_fare"].ToString();
                        if (sel_seats != "" && sel_seat_row_cols != "" && total_fare != "")
                        {
                            DataTable dt2 = objAbhiBusAPILayer.SeatBooking(jDate, sId, dId, serviceId, selectedSeats, genderType, psgrName,
                            bId, dtTicketInfo.Rows[0]["Address"].ToString(), dtTicketInfo.Rows[0]["FullName"].ToString(),
                            dtTicketInfo.Rows[0]["PhoneNo"].ToString(), dtTicketInfo.Rows[0]["EmailId"].ToString(), referenceNumber);
                            status = "Success"; statusReason = "Need to write";
                            dsBookingResult = new DataSet();
                            dsBookingResult.Tables.Add(dt2);
                        }
                    }
                    else
                    {
                        status = "Fail"; statusReason = "Need to write";
                    }
                }
                #endregion

                #region KalladaBooking
                if (api == "Kal")
                {
                    string jDate = ""; string sId = ""; string dId = ""; string serviceId = ""; string selectedSeats = "";
                    int noOfSeats = 0; string bId = ""; string genderType = ""; string psgrName = "";
                    jDate = strArray[1].ToString();
                    sId = strArray[2].ToString();
                    dId = strArray[3].ToString();
                    serviceId = strArray[4].ToString();
                    selectedSeats = strArray[5].ToString();
                    bId = strArray[6].ToString();
                    noOfSeats = Convert.ToInt32(strArray[7].ToString());
                    genderType = dtTicketInfo.Rows[0]["Title"].ToString();
                    psgrName = dtTicketInfo.Rows[0]["FullName"].ToString();
                    if (noOfSeats > 1)
                    {
                        for (int i = 0; i < noOfSeats - 1; i++)
                        {
                            psgrName = psgrName + "," + dtTicketInfo.Rows[0]["FullName"].ToString();
                            genderType = genderType + "," + dtTicketInfo.Rows[0]["Title"].ToString();
                        }
                    }
                    DataSet ds11 = dsTentativeInfo;
                    DataTable dt1 = ds11.Tables[0];
                    if (dt1 != null && dt1.Columns.Count > 0 && dt1.Rows.Count > 0)
                    {
                        string sel_seats = dt1.Rows[0]["sel_seats"].ToString();
                        string sel_seat_row_cols = dt1.Rows[0]["sel_seat_row_cols"].ToString();
                        string total_fare = dt1.Rows[0]["total_fare"].ToString();
                        if (sel_seats != "" && sel_seat_row_cols != "" && total_fare != "")
                        {
                            DataTable dt2 = objKalladaAPILayer.SeatBooking(jDate, sId, dId, serviceId, selectedSeats, genderType, psgrName,
                            bId, dtTicketInfo.Rows[0]["Address"].ToString(), dtTicketInfo.Rows[0]["FullName"].ToString(),
                            dtTicketInfo.Rows[0]["PhoneNo"].ToString(), dtTicketInfo.Rows[0]["EmailId"].ToString(), referenceNumber);
                            status = "Success"; statusReason = "Need to write";
                            dsBookingResult = new DataSet();
                            dsBookingResult.Tables.Add(dt2);
                        }
                    }
                    else
                    {
                        status = "Fail"; statusReason = "Need to write";
                    }
                }
                #endregion

                return dsBookingResult;
            }
            catch (Exception)
            {
                throw;
            }
        }
Exemplo n.º 2
0
        public DataSet TentativeBooking(DataTable dtTicketInfo, string referenceNumber, out string api, out string status, out string statusReason)
        {
            try
            {
                DataSet ds = null;

                string str = dtTicketInfo.Rows[0]["OtherInfo"].ToString();
                string[] strArray = str.Split(';');

                api = ""; status = ""; statusReason = "";

                api = strArray[0].ToString();

                #region KesneniTentativeBooking
                if (api == "Kes")
                {
                    int sourceStationId = 0; int destinationStationId = 0; string journeyDate = ""; long serviceId = 0;
                    int coachTypeId = 0; int noOfSeats = 0; string seatNumbersList = ""; string firstNameList = "";
                    string lastNameList = ""; string genderList = ""; string ageList = ""; string contactNumberList = "";
                    string boardingPointIdList = ""; string droppingPointId = ""; string ticketFare = ""; string emailId = "";
                    string address = ""; string photoIdType = ""; string photoIdNo = ""; string photoIdIssuingAuthority = "";
                    decimal totalBasicFare = 0; decimal serviceTaxPercentage = 0; string discountcode = ""; string travels = "";
                    string sourcename = ""; string destinationname = ""; string bustype = "";
                    string boardingPoint = ""; int age = 0;

                    sourceStationId = Convert.ToInt32(strArray[1].ToString());
                    destinationStationId = Convert.ToInt32(strArray[2].ToString());
                    journeyDate = strArray[3].ToString();
                    serviceId = Convert.ToInt64(strArray[4].ToString());
                    coachTypeId = Convert.ToInt32(strArray[5].ToString());
                    noOfSeats = Convert.ToInt32(strArray[7].ToString());
                    seatNumbersList = strArray[8].ToString();
                    boardingPointIdList = strArray[9].ToString();
                    ticketFare = Convert.ToString(strArray[6].ToString());
                    droppingPointId = strArray[11].ToString();
                    emailId = dtTicketInfo.Rows[0]["EmailId"].ToString();
                    address = dtTicketInfo.Rows[0]["Address"].ToString();
                    travels = dtTicketInfo.Rows[0]["Travels"].ToString();
                    bustype = dtTicketInfo.Rows[0]["BusType"].ToString();
                    //sourcename = ViewState["From"].ToString();
                    //destinationname = ViewState["To"].ToString();
                    boardingPoint = dtTicketInfo.Rows[0]["BoardingPoint"].ToString();
                    age = Convert.ToInt32(dtTicketInfo.Rows[0]["Age"].ToString());
                    string firstname = dtTicketInfo.Rows[0]["FullName"].ToString();
                    string contactno = dtTicketInfo.Rows[0]["PhoneNo"].ToString();
                    photoIdType = "photoIdType";
                    photoIdNo = referenceNumber;
                    photoIdIssuingAuthority = "photoIdIssuingAuthority";
                    totalBasicFare = Convert.ToDecimal(strArray[10].ToString());
                    serviceTaxPercentage = Convert.ToDecimal(0);
                    discountcode = "0";

                    if (dtTicketInfo.Columns.Contains("FullNameList") &&
                        dtTicketInfo.Columns.Contains("PhoneNoList") &&
                        dtTicketInfo.Columns.Contains("AgeList") &&
                        dtTicketInfo.Columns.Contains("GenderList"))
                    {
                        if (dtTicketInfo.Rows[0]["FullNameList"].ToString() != "" &&
                            dtTicketInfo.Rows[0]["PhoneNoList"].ToString() != "" &&
                            dtTicketInfo.Rows[0]["AgeList"].ToString() != "" &&
                            dtTicketInfo.Rows[0]["GenderList"].ToString() != "")
                        {
                            firstNameList = dtTicketInfo.Rows[0]["FullNameList"].ToString();
                            lastNameList = dtTicketInfo.Rows[0]["FullNameList"].ToString();
                            genderList = dtTicketInfo.Rows[0]["GenderList"].ToString();
                            ageList = dtTicketInfo.Rows[0]["AgeList"].ToString();
                            contactNumberList = dtTicketInfo.Rows[0]["PhoneNoList"].ToString();
                        }
                        else
                        {
                            firstNameList = dtTicketInfo.Rows[0]["FullName"].ToString();
                            lastNameList = dtTicketInfo.Rows[0]["FullName"].ToString();
                            genderList = dtTicketInfo.Rows[0]["Title"].ToString();
                            ageList = dtTicketInfo.Rows[0]["Age"].ToString();
                            contactNumberList = dtTicketInfo.Rows[0]["PhoneNo"].ToString();

                            if (noOfSeats > 1)
                            {
                                for (int i = 0; i < noOfSeats - 1; i++)
                                {
                                    firstNameList = firstNameList + "," + dtTicketInfo.Rows[0]["FullName"].ToString();
                                    lastNameList = lastNameList + "," + dtTicketInfo.Rows[0]["FullName"].ToString();
                                    contactNumberList = contactNumberList + "," + dtTicketInfo.Rows[0]["PhoneNo"].ToString();
                                    ageList = ageList + "," + dtTicketInfo.Rows[0]["Age"].ToString();
                                    genderList = genderList + "," + dtTicketInfo.Rows[0]["Title"].ToString();
                                }
                            }
                        }
                    }

                    else
                    {
                        firstNameList = dtTicketInfo.Rows[0]["FullName"].ToString();
                        lastNameList = dtTicketInfo.Rows[0]["FullName"].ToString();
                        genderList = dtTicketInfo.Rows[0]["Title"].ToString();
                        ageList = dtTicketInfo.Rows[0]["Age"].ToString();
                        contactNumberList = dtTicketInfo.Rows[0]["PhoneNo"].ToString();

                        if (noOfSeats > 1)
                        {
                            for (int i = 0; i < noOfSeats - 1; i++)
                            {
                                firstNameList = firstNameList + "," + dtTicketInfo.Rows[0]["FullName"].ToString();
                                lastNameList = lastNameList + "," + dtTicketInfo.Rows[0]["FullName"].ToString();
                                contactNumberList = contactNumberList + "," + dtTicketInfo.Rows[0]["PhoneNo"].ToString();
                                ageList = ageList + "," + dtTicketInfo.Rows[0]["Age"].ToString();
                                genderList = genderList + "," + dtTicketInfo.Rows[0]["Title"].ToString();
                            }
                        }
                    }

                    if (dtTicketInfo.Columns.Contains("IdType") &&
                       dtTicketInfo.Columns.Contains("IdNo") &&
                       dtTicketInfo.Columns.Contains("IdIssuedBy"))
                    {
                        if (dtTicketInfo.Rows[0]["IdType"].ToString() != "" &&
                            dtTicketInfo.Rows[0]["IdNo"].ToString() != "" &&
                            dtTicketInfo.Rows[0]["IdIssuedBy"].ToString() != "")
                        {
                            photoIdType = dtTicketInfo.Rows[0]["IdType"].ToString();
                            photoIdNo = dtTicketInfo.Rows[0]["IdNo"].ToString();
                            photoIdIssuingAuthority = dtTicketInfo.Rows[0]["IdIssuedBy"].ToString();
                        }
                    }

                    ds = objKesineniAPILayer.BookTicketsOnwardJourney(sourceStationId, destinationStationId, journeyDate,
                        serviceId, coachTypeId, noOfSeats, seatNumbersList, firstNameList, lastNameList, genderList,
                        ageList, contactNumberList, boardingPointIdList, droppingPointId, ticketFare, emailId, address,
                        photoIdType, photoIdNo, photoIdIssuingAuthority, totalBasicFare, serviceTaxPercentage, discountcode);

                    if (ds != null && ds.Tables[0].Rows.Count > 0 && ds.Tables[0].Columns.Count > 1)
                    {
                        status = "Success";
                        statusReason = "";
                    }
                    if (ds.Tables[0].Columns.Count == 1)
                    {
                        status = "Fail";
                        statusReason = ds.Tables[0].Rows[0]["Message"].ToString();
                    }
                }
                #endregion

                #region BitlaTentativeBooking
                if (api == "Bit")
                {
                    objBitlaAPILayer.ReservationId = strArray[1].ToString();
                    objBitlaAPILayer.OriginId = strArray[2].ToString();
                    objBitlaAPILayer.DestinationId = strArray[3].ToString();
                    objBitlaAPILayer.BoardingAt = strArray[5].ToString();
                    objBitlaAPILayer.NoOfSeats = strArray[4].ToString();
                    objBitlaAPILayer.RefNumber = referenceNumber;
                    int noOfSeats = Convert.ToInt32(strArray[4].ToString());
                    string selectedSeats = strArray[6].ToString();
                    string[] selectedSeatsArray = selectedSeats.Split(',');

                    book_ticket bookTicket = new book_ticket();
                    object[] obj = new object[2];

                    book_ticketSeat_detailsSeat_detail[] sD = new book_ticketSeat_detailsSeat_detail[noOfSeats];

                    if (dtTicketInfo.Columns.Contains("FullNameList") &&
                        dtTicketInfo.Columns.Contains("PhoneNoList") &&
                        dtTicketInfo.Columns.Contains("AgeList") &&
                        dtTicketInfo.Columns.Contains("GenderList") &&
                        dtTicketInfo.Columns.Contains("IdType") &&
                        dtTicketInfo.Columns.Contains("IdNo") &&
                        dtTicketInfo.Columns.Contains("IdIssuedBy"))
                    {
                        if (dtTicketInfo.Rows[0]["FullNameList"].ToString() != "" &&
                            dtTicketInfo.Rows[0]["PhoneNoList"].ToString() != "" &&
                            dtTicketInfo.Rows[0]["AgeList"].ToString() != "" &&
                            dtTicketInfo.Rows[0]["GenderList"].ToString() != "" &&
                            dtTicketInfo.Rows[0]["IdType"].ToString() != "" &&
                            dtTicketInfo.Rows[0]["IdNo"].ToString() != "" &&
                            dtTicketInfo.Rows[0]["IdIssuedBy"].ToString() != "")
                        {
                            string[] fullNameListArray = dtTicketInfo.Rows[0]["FullNameList"].ToString().Split(',');
                            string[] phoneNoListArray = dtTicketInfo.Rows[0]["PhoneNoList"].ToString().Split(',');
                            string[] ageListArray = dtTicketInfo.Rows[0]["AgeList"].ToString().Split(',');
                            string[] genderListArray = dtTicketInfo.Rows[0]["GenderList"].ToString().Split(',');

                            string address = dtTicketInfo.Rows[0]["Address"].ToString();
                            string idType = dtTicketInfo.Rows[0]["IdType"].ToString();
                            string idNo = dtTicketInfo.Rows[0]["IdNo"].ToString();
                            string idIssuedBy = dtTicketInfo.Rows[0]["IdIssuedBy"].ToString();

                            for (int i = 0; i < noOfSeats; i++)
                            {
                                book_ticketSeat_detailsSeat_detail sdd = new book_ticketSeat_detailsSeat_detail();
                                sdd.seat_number = selectedSeatsArray[i].ToString();
                                sdd.title = genderListArray[i].ToString();
                                sdd.name = fullNameListArray[i].ToString();
                                sdd.age = ageListArray[i].ToString();
                                sdd.sex = genderListArray[i].ToString();

                                if (i == 0) { sdd.is_primary = "true"; }
                                else { sdd.is_primary = "false"; }

                                sdd.address = address;

                                string id = "";//1 -> Pan Card, 2 -> D/L, 3 -> Passport, 4 -> Voter, 5 -> Aadhar Card
                                if (idType.ToString().ToLower().Contains("pan"))
                                {
                                    id = "1";
                                }
                                else if (idType.ToString().ToLower().Contains("dri"))
                                {
                                    id = "2";
                                }
                                else if (idType.ToString().ToLower().Contains("pass"))
                                {
                                    id = "3";
                                }
                                else if (idType.ToString().ToLower().Contains("voter"))
                                {
                                    id = "4";
                                }
                                else if (idType.ToString().ToLower().Contains("adhar"))
                                {
                                    id = "5";
                                }
                                else if (idType.ToString().ToLower().Contains("ration"))
                                {
                                    id = "4";
                                }

                                sdd.id_card_type = id;

                                sdd.id_card_number = idNo;
                                sdd.id_card_issued_by = idIssuedBy;

                                sD[i] = sdd;
                            }
                        }
                        else
                        {
                            for (int i = 0; i < noOfSeats; i++)
                            {
                                book_ticketSeat_detailsSeat_detail sdd = new book_ticketSeat_detailsSeat_detail();
                                sdd.seat_number = selectedSeatsArray[i].ToString();
                                sdd.title = "Mr";
                                sdd.name = dtTicketInfo.Rows[0]["FullName"].ToString();
                                sdd.age = dtTicketInfo.Rows[0]["Age"].ToString();
                                sdd.sex = dtTicketInfo.Rows[0]["Title"].ToString();
                                if (i == 0) { sdd.is_primary = "true"; }
                                else { sdd.is_primary = "false"; }

                                sdd.address = "";
                                sdd.id_card_type = "";//1 -> Pan Card, 2 -> D/L, 3 -> Passport, 4 -> Voter, 5 -> Aadhar Card
                                sdd.id_card_number = "";
                                sdd.id_card_issued_by = "";

                                sD[i] = sdd;
                            }
                        }
                    }
                    else
                    {
                        for (int i = 0; i < noOfSeats; i++)
                        {
                            book_ticketSeat_detailsSeat_detail sdd = new book_ticketSeat_detailsSeat_detail();
                            sdd.seat_number = selectedSeatsArray[i].ToString();
                            sdd.title = "Mr";
                            sdd.name = dtTicketInfo.Rows[0]["FullName"].ToString();
                            sdd.age = dtTicketInfo.Rows[0]["Age"].ToString();
                            sdd.sex = dtTicketInfo.Rows[0]["Title"].ToString();
                            if (i == 0) { sdd.is_primary = "true"; }
                            else { sdd.is_primary = "false"; }

                            sdd.address = "";
                            sdd.id_card_type = "";//1 -> Pan Card, 2 -> D/L, 3 -> Passport, 4 -> Voter, 5 -> Aadhar Card
                            sdd.id_card_number = "";
                            sdd.id_card_issued_by = "";

                            sD[i] = sdd;
                        }
                    }
                    book_ticketSeat_details ss = new book_ticketSeat_details();
                    ss.seat_detail = sD;
                    book_ticketContact_detail cc = new book_ticketContact_detail();
                    cc.mobile_number = dtTicketInfo.Rows[0]["PhoneNo"].ToString();
                    cc.email = dtTicketInfo.Rows[0]["EmailId"].ToString();
                    cc.emergency_name = dtTicketInfo.Rows[0]["PhoneNo"].ToString();
                    obj[0] = ss;
                    obj[1] = cc;
                    bookTicket.Items = obj;

                    objBitlaAPILayer.TicketDetails = bookTicket;
                    ds = objBitlaAPILayer.ValidateBookTicket();

                    string strValidateBookTicket = "";
                    if (ds != null)
                    {
                        if (ds.Tables[0].Rows.Count > 0 && ds.Tables[0].Columns.Count == 2)
                        {
                            strValidateBookTicket = ds.Tables[0].Rows[0]["message"].ToString();
                        }
                    }
                    if (strValidateBookTicket == "Success! You can book this ticket.")
                    {
                        status = "Success";
                        statusReason = "";
                    }
                    else
                    {
                        status = "Fail";
                        statusReason = ds.Tables[0].Rows[0]["message"].ToString();
                    }
                }
                #endregion

                #region AbhiBusTentativeBooking
                if (api == "Abh")
                {
                    string jDate = ""; string sId = ""; string dId = ""; string serviceId = ""; string selectedSeats = "";
                    int noOfSeats = 0; string bId = ""; string genderType = ""; string psgrName = "";
                    jDate = strArray[1].ToString();
                    sId = strArray[2].ToString();
                    dId = strArray[3].ToString();
                    serviceId = strArray[4].ToString();
                    selectedSeats = strArray[5].ToString();
                    bId = strArray[6].ToString();
                    noOfSeats = Convert.ToInt32(strArray[7].ToString());
                    genderType = dtTicketInfo.Rows[0]["Title"].ToString();
                    psgrName = dtTicketInfo.Rows[0]["FullName"].ToString();
                    if (noOfSeats > 1)
                    {
                        for (int i = 0; i < noOfSeats - 1; i++)
                        {
                            psgrName = psgrName + "," + dtTicketInfo.Rows[0]["FullName"].ToString();
                            genderType = genderType + "," + dtTicketInfo.Rows[0]["Title"].ToString();
                        }
                    }
                    DataTable dt1 = objAbhiBusAPILayer.SeatBlocking(jDate, sId, dId, serviceId, selectedSeats);
                    ds = new DataSet();
                    ds.Tables.Add(dt1);

                    if (dt1 != null && dt1.Columns.Count > 0 && dt1.Rows.Count > 0)
                    {
                        string sel_seats = dt1.Rows[0]["sel_seats"].ToString();
                        string sel_seat_row_cols = dt1.Rows[0]["sel_seat_row_cols"].ToString();
                        string total_fare = dt1.Rows[0]["total_fare"].ToString();
                        if (sel_seats != "" && total_fare != "")
                        {
                            status = "Success";
                            statusReason = "";
                        }
                        else
                        {
                            status = "Fail";
                            statusReason = "Your given seat numbers are already booked or not available in seat layout.";
                        }
                    }
                    else
                    {
                        status = "Fail";
                        statusReason = "Your given seat numbers are already booked or not available in seat layout.";
                    }
                }
                #endregion

                #region KalladaTentativeBooking
                if (api == "Kal")
                {
                    string jDate = ""; string sId = ""; string dId = ""; string serviceId = ""; string selectedSeats = "";
                    int noOfSeats = 0; string bId = ""; string genderType = ""; string psgrName = "";
                    jDate = strArray[1].ToString();
                    sId = strArray[2].ToString();
                    dId = strArray[3].ToString();
                    serviceId = strArray[4].ToString();
                    selectedSeats = strArray[5].ToString();
                    bId = strArray[6].ToString();
                    noOfSeats = Convert.ToInt32(strArray[7].ToString());
                    genderType = dtTicketInfo.Rows[0]["Title"].ToString();
                    psgrName = dtTicketInfo.Rows[0]["FullName"].ToString();
                    if (noOfSeats > 1)
                    {
                        for (int i = 0; i < noOfSeats - 1; i++)
                        {
                            psgrName = psgrName + "," + dtTicketInfo.Rows[0]["FullName"].ToString();
                            genderType = genderType + "," + dtTicketInfo.Rows[0]["Title"].ToString();
                        }
                    }
                    DataTable dt1 = objKalladaAPILayer.SeatBlocking(jDate, sId, dId, serviceId, selectedSeats);
                    ds = new DataSet();
                    ds.Tables.Add(dt1);

                    if (dt1 != null && dt1.Columns.Count > 0 && dt1.Rows.Count > 0)
                    {
                        string sel_seats = dt1.Rows[0]["sel_seats"].ToString();
                        string sel_seat_row_cols = dt1.Rows[0]["sel_seat_row_cols"].ToString();
                        string total_fare = dt1.Rows[0]["total_fare"].ToString();
                        if (sel_seats != "" && total_fare != "")
                        {
                            status = "Success";
                            statusReason = "";
                        }
                        else
                        {
                            status = "Fail";
                            statusReason = "Your given seat numbers are already booked or not available in seat layout.";
                        }
                    }
                    else
                    {
                        status = "Fail";
                        statusReason = "Your given seat numbers are already booked or not available in seat layout.";
                    }
                }
                #endregion

                #region TicketGooseBooking
                if (api == "Tig")
                {
                    string scheduleId = ""; string TravelDate = ""; string FromStationId = "";
                    string ToStationId = ""; string boardingPointId = ""; string emailId = "";
                    string mobileNbr = ""; string address = "";

                    string[] otherInfo = dtTicketInfo.Rows[0]["OtherInfo"].ToString().Split(';');

                    FromStationId = otherInfo[1].ToString();
                    ToStationId = otherInfo[2].ToString();
                    TravelDate = otherInfo[3].ToString();
                    scheduleId = otherInfo[4].ToString();
                    boardingPointId = otherInfo[5].ToString();

                    emailId = dtTicketInfo.Rows[0]["EmailId"].ToString();
                    mobileNbr = dtTicketInfo.Rows[0]["PhoneNo"].ToString();
                    address = dtTicketInfo.Rows[0]["Address"].ToString();

                    string[] seatNos = dtTicketInfo.Rows[0]["SeatNos"].ToString().Split(',');
                    string[] ages = dtTicketInfo.Rows[0]["AgeList"].ToString().Split(',');
                    string[] genders = dtTicketInfo.Rows[0]["GenderList"].ToString().Split(',');
                    string[] names = dtTicketInfo.Rows[0]["FullNameList"].ToString().Split(',');

                    PassengerDetailDTO[] PassengerDetailDT = new PassengerDetailDTO[seatNos.Length];

                    for (int i = 0; i < seatNos.Length; i++)
                    {
                        PassengerDetailDTO PassengerDetailDTO1 = new PassengerDetailDTO();
                        PassengerDetailDTO1.age = ages[i].ToString();
                        PassengerDetailDTO1.name = names[i].ToString();
                        PassengerDetailDTO1.seatNbr = seatNos[i].ToString();
                        PassengerDetailDTO1.sex = genders[i].ToString();
                        PassengerDetailDT[i] = PassengerDetailDTO1;
                    }

                    DataTable dt = objTicketGooseAPILayer.BlockSeatsForBooking(scheduleId, TravelDate, FromStationId, ToStationId,
                        boardingPointId, emailId, mobileNbr, address, PassengerDetailDT);
                    ds = new DataSet();
                    ds.Tables.Add(dt);

                    if (dt != null)
                    {
                        if (dt.Rows.Count > 0)
                        {
                            if (dt.Columns.Contains("BookingId"))
                            {
                                status = "Success";
                                statusReason = "";
                            }
                            else
                            {
                                status = "Fail";
                                statusReason = "Your given seat numbers are already booked or not available in seat layout.";
                            }
                        }
                        else
                        {
                            status = "Fail";
                            statusReason = "Your given seat numbers are already booked or not available in seat layout.";
                        }
                    }
                    else
                    {
                        status = "Fail";
                        statusReason = "Your given seat numbers are already booked or not available in seat layout.";
                    }
                }
                #endregion

                return ds;
            }
            catch (Exception)
            {
                throw;
            }
        }
    protected void BookTicket()
    {
        try
        {
            int sourceStationId = 0; int destinationStationId = 0; string journeyDate = "";
            long serviceId = 0; int serviceTransId = 0; int noOfSeats = 0; string address = ""; string contactNo = ""; string emailID = "";
            long blockedTicketId = 0; string apiname = ""; string boradingpointid = ""; int k = 0;
            string status = ""; string api = "";
            DataSet dsbookresult = null;
            if (Session["manabusrefno"] != null)
            {
                ObjBAL = new ClsBAL();
                ObjBAL.manabusRefNo = Session["manabusrefno"].ToString();
                _objDataSetBook = (DataSet)ObjBAL.GetTcktDetByMRefNo();
                if (_objDataSetBook != null)
                {
                    if (_objDataSetBook.Tables.Count > 0)
                    {
                        if (_objDataSetBook.Tables[0].Rows.Count > 0)
                        {
                            if (_objDataSetBook.Tables[0].Rows.Count < 3)
                            {
                                #region Book Ticket
                                foreach (DataRow dr in _objDataSetBook.Tables[0].Rows)
                                {
                                    string manabusrefNo = dr["OnewayMBRefNo"].ToString();
                                    apiname = dr["APIName"].ToString();
                                    sourceStationId = Convert.ToInt32(dr["SourceId"].ToString());
                                    destinationStationId = Convert.ToInt32(dr["DestinationId"].ToString());
                                    DateTime doj = Convert.ToDateTime(dr["DateOfJourney"]);
                                    boradingpointid = dr["BoardingPointID"].ToString();

                                    if (apiname == "Abhibus" || apiname == "Kallada")
                                    {
                                        journeyDate = doj.ToString("yyyy-MM-dd");
                                    }
                                    else
                                    {
                                        journeyDate = doj.ToString("yyyy/MM/dd");
                                    }

                                    if (dr["ServiceID"].ToString() == "")
                                    {
                                        serviceId = 0;
                                    }
                                    else
                                    {
                                        serviceId = Convert.ToInt64(dr["ServiceID"].ToString());
                                    }
                                    string bookinId = "";

                                    address = dr["Address"].ToString();
                                    contactNo = dr["ContactNo"].ToString();
                                    emailID = dr["EmailId"].ToString();
                                    if (dr["ServiceTranDateID"].ToString() == "")
                                    {
                                        serviceTransId = 0;
                                    }
                                    else
                                    {
                                        serviceTransId = Convert.ToInt32(dr["ServiceTranDateID"].ToString());
                                    }
                                    noOfSeats = Convert.ToInt32(dr["NoOfSeats"].ToString());
                                    if (apiname != "TicketGoose")
                                    {
                                        if (dr["BlockedId"].ToString() == "")
                                        {
                                            blockedTicketId = 0;
                                        }
                                        else
                                        {
                                            blockedTicketId = Convert.ToInt64(dr["BlockedId"].ToString());
                                        }
                                    }
                                    else { blockedTicketId = 0; bookinId = Convert.ToString(dr["BlockedId"].ToString()); }
                                    string seatNos = dr["SeatNos"].ToString();
                                    string gendertype = dr["Gender"].ToString();
                                    string psgrname = dr["FullName"].ToString();
                                    string idType = dr["IDType"].ToString();
                                    string idNo = dr["IDNumber"].ToString();
                                    string idIssuedBy = dr["IDIssuedBy"].ToString();
                                    string[] selectedSeatsArray = seatNos.Split(',');
                                    book_ticket bookTicket = new book_ticket();
                                    object[] obj = new object[2];

                                    book_ticketSeat_detailsSeat_detail[] sD = new book_ticketSeat_detailsSeat_detail[noOfSeats];

                                    string strPassengers = dr["PassengerDetails"].ToString();
                                    string[] strPassengersArray = strPassengers.Split(',');

                                    for (int i = 0; i < noOfSeats; i++)
                                    {
                                        book_ticketSeat_detailsSeat_detail sdd = new book_ticketSeat_detailsSeat_detail();
                                        sdd.seat_number = selectedSeatsArray[i].ToString();

                                        string strPassenger = strPassengersArray[i].ToString();
                                        string[] strPassengerArray = strPassenger.Split('-');

                                        sdd.title = strPassengerArray[1].ToString();

                                        if (strPassengerArray[1].ToString() == "Mr")
                                        {
                                            sdd.sex = "M";
                                        }
                                        else { sdd.sex = "F"; }

                                        if (i == 0) { sdd.is_primary = "true"; }
                                        else { sdd.is_primary = "false"; }
                                        sdd.address = address;

                                        string id = "";//1 -> Pan Card, 2 -> D/L, 3 -> Passport, 4 -> Voter, 5 -> Aadhar Card
                                        if (idType.ToString().ToLower().Contains("pan"))
                                        {
                                            id = "1";
                                        }
                                        else if (idType.ToString().ToLower().Contains("dri"))
                                        {
                                            id = "2";
                                        }
                                        else if (idType.ToString().ToLower().Contains("pass"))
                                        {
                                            id = "3";
                                        }
                                        else if (idType.ToString().ToLower().Contains("voter"))
                                        {
                                            id = "4";
                                        }
                                        else if (idType.ToString().ToLower().Contains("adhar"))
                                        {
                                            id = "5";
                                        }
                                        else if (idType.ToString().ToLower().Contains("ration"))
                                        {
                                            id = "4";
                                        }

                                        sdd.id_card_type = id;

                                        sdd.id_card_number = idNo;
                                        sdd.id_card_issued_by = idIssuedBy;
                                        sD[i] = sdd;
                                    }

                                    book_ticketSeat_details ss = new book_ticketSeat_details();
                                    ss.seat_detail = sD;
                                    book_ticketContact_detail cc = new book_ticketContact_detail();
                                    cc.mobile_number = contactNo;
                                    cc.email = emailID;
                                    cc.emergency_name = contactNo;
                                    obj[0] = ss;
                                    bookTicket.Items = obj;

                                    dsbookresult = CommonBookticket(sourceStationId, destinationStationId, journeyDate, serviceId, serviceTransId,
                                        blockedTicketId, boradingpointid, bookTicket, noOfSeats, seatNos, gendertype, psgrname, address,
                                        dr["FullName"].ToString(), contactNo, emailID, Session["manabusrefno"].ToString(), manabusrefNo,
                                        apiname, out api, out status, bookinId);
                                    if (status == "Success")
                                    {
                                        InsertBookedTicketDetails(dsbookresult, manabusrefNo, api);
                                    }
                                    else
                                    {
                                        lblReturnMsg.Text = "Failed to book. Please contact administartor of LoveJourney.";
                                        lblReturnMsg.Visible = true;
                                    }
                                }
                                #endregion

                                #region GetTicketDetails
                                if (status == "Success")
                                {
                                    #region Update Cash Coupon
                                    UpdateCashCoupon(Session["manabusrefno"].ToString(), emailID);
                                    #endregion
                                    GetTicketDetails();
                                }
                                #endregion
                            }
                        }
                    }
                }
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }