public static string GetBookingNumberAndManageBooking(CheckOutData data)
        {
            try
            {
                CurrencyManager currencyManager = new CurrencyManager();
                var             BaseCur         = ConfigurationSettings.AppSettings["BaseCur"];

                double ExcahngeRate = currencyManager.GetCurrencyConversion(BaseCur, data.Currency, data.Sid);
                data.SellPrice = Math.Round(data.SellPrice * ExcahngeRate, 3);
                string BookingNum = null;
                BookingNum = BookingRepo.checkbookingnumberavailability(data.Sid);
                if (BookingNum == null)
                {
                    BookingNum = "";


                    BookingNum = BookingRepo.GetBookingNumber(data.Sid, data.Src, data.Pid);

                    if (BookingNum != null)
                    {
                        var tasks        = new List <Task>();
                        var tokenSource1 = new CancellationTokenSource();
                        var tokenSource2 = new CancellationTokenSource();
                        var token1       = tokenSource1.Token;
                        var token2       = tokenSource2.Token;

                        tasks.Add(Task.Factory.StartNew(() =>
                        {
                            data = fillAllTrivellers(data);
                            BookingRepo.SaveBookingResult(data, BookingNum);
                        }
                                                        , token1));
                        //tasks.Add(Task.Factory.StartNew(() =>
                        //{
                        //    SearchstatisticDA searchstatistic = new SearchstatisticDA();
                        //searchstatistic.AddMetaSearchStatistic(data, BookingNum);
                        //}
                        //            , token2));
                        //call save Delivary*****************
                        Task.WaitAll(tasks.ToArray());
                    }

                    return(BookingNum);
                }

                else
                {
                    BookingRepo.EditBookingPaxes(data, BookingNum);

                    return(BookingNum);
                }
            }
            catch (Exception ex)
            {
                LoggingHelper.WriteToFile("SaveBookingController/Errors/", "SaveBookingController" + "BLL" + data.Sid, ex.InnerException?.Message, ex.Message + ex.StackTrace);

                return(null);
            }
        }