public void AddPackageImages(PackageImages objPackageImages)
        {
            try
            {
                _logger.addMessage.Add("AddPackageImages", "AddPackageImages Method is going to Execute");
                Dictionary <string, object> objparamlist = new Dictionary <string, object>();
                _logger.addMessage.Add("CompanyID", objPackageImages.CompanyID);
                objparamlist.Add("CompanyID", objPackageImages.CompanyID);

                _logger.addMessage.Add("PackageCode", objPackageImages.PackageCode);
                objparamlist.Add("PackageCode", objPackageImages.PackageCode);

                _logger.addMessage.Add("PackageImageName", objPackageImages.PackageImageName);
                objparamlist.Add("PackageImageName", objPackageImages.PackageImageName);

                _logger.addMessage.Add("PackageImageTitle", objPackageImages.PackageImageTitle);
                objparamlist.Add("PackageImageTitle", objPackageImages.PackageImageTitle);

                IConnector objConnector = new Connector();
                bool       status       = objConnector.ExecuteNonQuery("PackageModule", "InsertPackageImages", objparamlist);
                _logger.addMessage.Add("AddPackageImages", "Package Images Saved Successfully");
            }
            catch (Exception ex)
            {
                AsyncLogger.LogEventVwr("UpdatePackageHotelCosting", ex.ToString(), ex.StackTrace);
                _logger.addMessage.Add("AddPackageImages", "Error during Add Package Images Method Execution:" + ex.ToString());
            }
            finally
            {
                AsyncLogger.LogMessage(_logger);
            }
        }
        public void InsertPackageCancellationPolicy(PackageDetails objPackageCancellationPolicy)
        {
            try
            {
                _logger.addMessage.Add("InsertPackageCancellationPolicy", "InsertPackageCancellationPolicy Method is going to Execute");
                Dictionary <string, object> objparamlist = new Dictionary <string, object>();

                _logger.addMessage.Add("CompanyID", objPackageCancellationPolicy.CompanyID);
                objparamlist.Add("CompanyID", objPackageCancellationPolicy.CompanyID);

                _logger.addMessage.Add("PackageCode", objPackageCancellationPolicy.BasicPackageDetails.PackageCode.ToString());
                objparamlist.Add("PackageCode", objPackageCancellationPolicy.BasicPackageDetails.PackageCode);

                _logger.addMessage.Add("PackageViewFormat", objPackageCancellationPolicy.PackageCancellationPolicy.ViewFormat.ToString());
                objparamlist.Add("ViewFormat", objPackageCancellationPolicy.PackageCancellationPolicy.ViewFormat);

                _logger.addMessage.Add("CancellationPolicyText", objPackageCancellationPolicy.PackageCancellationPolicy.CancellationPolicyText.ToString());
                objparamlist.Add("CancellationPolicyText", objPackageCancellationPolicy.PackageCancellationPolicy.CancellationPolicyText);
                IConnector objConnector = new Connector();
                bool       status       = objConnector.ExecuteNonQuery("PackageModule", "FSP_InsertCancellationPolicy", objparamlist);
                _logger.addMessage.Add("InsertPackageCancellationPolicy", "Cancellation policy inserted or updated successfully");
            }
            catch (Exception ex)
            {
                _logger.addMessage.Add("InsertPackageCancellationPolicy", "Error during Insert Package Cancellation Policy Method Execution:" + ex.ToString());
            }
            finally
            {
                AsyncLogger.LogMessage(_logger);
            }
        }
        /// <summary>
        /// Get Hotel Saved Costing info for package pecific
        /// </summary>
        /// <param name="objHotelCosting"></param>
        /// <returns></returns>
        public List <HotelCosting> GetPackageHotelCosting(HotelCostingRequest objHotelCostingRequest)
        {
            List <HotelCosting> objlstHotelCosting = null;

            try
            {
                _logger.addMessage.Add("UpdatePackageHotelCosting", "Package Hotel costing updated successfully");

                Dictionary <string, object> objparamlist = new Dictionary <string, object>();
                _logger.addMessage.Add("CompanyID", objHotelCostingRequest.CompanyID);
                objparamlist.Add("CompanyID", objHotelCostingRequest.CompanyID);

                _logger.addMessage.Add("PackageCode", objHotelCostingRequest.PackageCode);
                objparamlist.Add("PackageCode", objHotelCostingRequest.PackageCode);

                _logger.addMessage.Add("PackageLanguage", objHotelCostingRequest.PackageLanguage);
                objparamlist.Add("PackageLanguage", objHotelCostingRequest.PackageLanguage);
                IConnector objConnector          = new Connector();
                DataTable  dtPackageHotelCosting = objConnector.ExecuteDataTable("PackageModule", "FSP_GetPkgHotelCosting", objparamlist);
                _logger.addMessage.Add("GetHotelCosting", "Package costing fetch Successfully");
                if (dtPackageHotelCosting.Rows.Count > 0)
                {
                    objlstHotelCosting = new List <HotelCosting>();

                    for (int i = 0; i < dtPackageHotelCosting.Rows.Count; i++)
                    {
                        HotelCosting objHotelCosting = new HotelCosting();
                        objHotelCosting.CompanyID       = objHotelCostingRequest.CompanyID;
                        objHotelCosting.PackageCode     = objHotelCostingRequest.PackageCode;
                        objHotelCosting.Currency        = dtPackageHotelCosting.Rows[i]["Currency"].ToString();
                        objHotelCosting.AdultCost       = Convert.ToDouble(dtPackageHotelCosting.Rows[i]["AdultCost"]);
                        objHotelCosting.ChildCost       = Convert.ToDouble(dtPackageHotelCosting.Rows[i]["ChildCost"]);
                        objHotelCosting.HotelCityName   = dtPackageHotelCosting.Rows[i]["HotelCityName"].ToString();
                        objHotelCosting.HotelName       = dtPackageHotelCosting.Rows[i]["HotelName"].ToString();
                        objHotelCosting.RoomType        = dtPackageHotelCosting.Rows[i]["RoomType"].ToString();
                        objHotelCosting.PackageLanguage = dtPackageHotelCosting.Rows[i]["PackageLanguage"].ToString();
                        objHotelCosting.id = Convert.ToInt16(dtPackageHotelCosting.Rows[i]["id"]);
                        objlstHotelCosting.Add(item: objHotelCosting);
                    }
                    _logger.addMessage.Add("GetHotelCosting", "GetHotelCosting Method result" + JsonConvert.SerializeObject(objlstHotelCosting));
                }
                else
                {
                    _logger.addMessage.Add("GetHotelCosting", "No Package Hotel Costing find for Package Code=" + objHotelCostingRequest.PackageCode);
                }
            }
            catch (Exception ex)
            {
                AsyncLogger.LogEventVwr("UpdatePackageHotelCosting", ex.ToString(), ex.StackTrace);
                _logger.ExceptionError = true;
                _logger.addMessage.Add("GetHotelCosting", "Error during get Package hotel costing Method Execution:" + ex.ToString());
            }
            finally
            {
                AsyncLogger.LogMessage(_logger);
            }
            return(objlstHotelCosting);
        }
        public List <PackageImages> GetPackageImages(string PackageCode, string CompanyID)
        {
            List <PackageImages> objlstPackageImages = null;

            try
            {
                _logger.addMessage.Add("GetPackageImages", "GetPackageImages Method is going to Execute");
                Dictionary <string, object> objparamlist = new Dictionary <string, object>();
                _logger.addMessage.Add("CompanyID", CompanyID);
                objparamlist.Add("CompanyID", CompanyID);

                _logger.addMessage.Add("PackageCode", PackageCode);
                objparamlist.Add("PackageCode", PackageCode);


                IConnector objConnector       = new Connector();
                DataTable  dtPackageImageList = objConnector.ExecuteDataTable("PackageModule", "GetPackageImages", objparamlist);
                _logger.addMessage.Add("GetPackageImages", "Package Images find Successfully");
                if (dtPackageImageList.Rows.Count > 0)
                {
                    objlstPackageImages = new List <PackageImages>();

                    for (int i = 0; i < dtPackageImageList.Rows.Count; i++)
                    {
                        PackageImages objPackageImages = new PackageImages();
                        objPackageImages.CompanyID           = CompanyID;
                        objPackageImages.PackageCode         = PackageCode;
                        objPackageImages.PackageImageName    = dtPackageImageList.Rows[i]["Name"].ToString();
                        objPackageImages.PackageImageTitle   = dtPackageImageList.Rows[i]["Title"].ToString();
                        objPackageImages.PackageVirtualImage = Convert.ToBoolean(dtPackageImageList.Rows[i]["PackageVirtualImage"]);
                        objlstPackageImages.Add(objPackageImages);
                    }
                }
                else
                {
                    _logger.addMessage.Add("GetPackageImages", "No Package Images find for Package Code=" + PackageCode);
                }
            }
            catch (Exception ex)
            {
                AsyncLogger.LogEventVwr("UpdatePackageHotelCosting", ex.ToString(), ex.StackTrace);
                _logger.addMessage.Add("GetPackageImages", "Error during Get Package Images Method Execution:" + ex.ToString());
            }
            finally
            {
                AsyncLogger.LogMessage(_logger);
            }
            return(objlstPackageImages);
        }
        public string GetPackageCode()
        {
            string PackageCode = "";

            try
            {
                _logger.addMessage.Add("AddPackage", "AddPackage Method is going to Execute");
                IConnector objConnector = new Connector();
                PackageCode = Convert.ToString(objConnector.ExecuteScalar("PackageModule", "GetPackageCode"));
                _logger.addMessage.Add("Registeruser", "Agent User sign up successfully");
            }
            catch (Exception ex)
            {
                _logger.addMessage.Add("Registeruser", "Error during Register user Method Execution:" + ex.ToString());
            }
            finally
            {
                AsyncLogger.LogMessage(_logger);
            }
            return(PackageCode);
        }
        public string GetPackageDetails(PackageList objPackageList)
        {
            try
            {
                _logger.addMessage.Add("GetPackageDetails", "GetPackageDetails Method is going to Execute");
                Dictionary <string, object> objparamlist = new Dictionary <string, object>();

                _logger.addMessage.Add("CompanyID", objPackageList.CompanyID);
                objparamlist.Add("CompanyID", objPackageList.CompanyID);

                _logger.addMessage.Add("PackageLanguage", objPackageList.PackageLanguage);
                objparamlist.Add("PackageLanguage", objPackageList.PackageLanguage);

                _logger.addMessage.Add("PackageCode", objPackageList.PackageCode);
                objparamlist.Add("PackageCode", objPackageList.PackageCode);


                _logger.addMessage.Add("GetPackageDetails", "FSP_GetPackageDetails is going to call");

                IConnector objConnector  = new Connector();
                DataSet    dtPackageList = objConnector.ExecuteDataSet("PackageModule", "FSP_GetPackageDetails", objparamlist);
                _logger.addMessage.Add("GetPackageDetails", "Get Package Details Get successfully");
                dtPackageList.Tables[0].TableName = "BasicPackageDetails";
                dtPackageList.Tables[1].TableName = "BasicPackageCreteria";
                dtPackageList.Tables[2].TableName = "PackageCancellationPolicy";
                string JSONResult = CommonUtility.DataSettoJSON(dtPackageList);
                _logger.addMessage.Add("GetPackageDetails", "Converted JSON Result" + JSONResult);
                return(JSONResult);
            }
            catch (Exception ex)
            {
                _logger.addMessage.Add("GetPackageDetails", "Error during GetPackageDetails Method Execution:" + ex.ToString());
            }
            finally
            {
                AsyncLogger.LogMessage(_logger);
            }
            return(null);
        }
        public string GetAirportList(AirportList objAirportList)
        {
            try
            {
                _logger.addMessage.Add("GetAirportList", "GetAirportList Method is going to Execute");
                Dictionary <string, object> objparamlist = new Dictionary <string, object>();

                _logger.addMessage.Add("CompanyID", objAirportList.CompanyID);
                objparamlist.Add("CompanyID", objAirportList.CompanyID);

                //_logger.addMessage.Add("LanguageCode", objPackageList.PackageLanguage);
                //objparamlist.Add("LanguageCode", objPackageList.PackageLanguage);

                _logger.addMessage.Add("Query", objAirportList.query);
                objparamlist.Add("Query", objAirportList.query);


                _logger.addMessage.Add("GetAirportList", "FSP_GetAirportList is going to call");

                IConnector objConnector  = new Connector();
                DataTable  dtPackageList = objConnector.ExecuteDataTable("CompanyAdmin", "FSP_GetAirportList", objparamlist);
                _logger.addMessage.Add("GetAirportList", "Get Airport List successfully");

                string JSONResult = CommonUtility.GetDataTableToJSON(dtPackageList);
                _logger.addMessage.Add("GetAirportList", "Converted JSON Result" + JSONResult);
                return(JSONResult);
            }
            catch (Exception ex)
            {
                _logger.addMessage.Add("GetAirportList", "Error during GetAirportList Method Execution:" + ex.ToString());
            }
            finally
            {
                AsyncLogger.LogMessage(_logger);
            }
            return(null);
        }
        public bool UpdatePackageHotelCosting(List <HotelCosting> objHotelCosting)
        {
            bool status = false;

            try
            {
                _logger.addMessage.Add("UpdatePackageHotelCosting", "UpdatePackageHotelCosting Method is going to Execute");
                string CurrencyCode = System.Configuration.ConfigurationManager.AppSettings["CompanyCurrency"].ToString();
                //Before updating hotel costing remove existing costing for that package
                if (objHotelCosting != null && objHotelCosting.Count > 0)
                {
                    _logger.addMessage.Add("UpdatePackageHotelCosting", "Before updating hotel costing remove existing costing for that package is going to Execute");
                    Dictionary <string, object> objparamlist = new Dictionary <string, object>();
                    _logger.addMessage.Add("CompanyID", objHotelCosting[0].CompanyID);
                    objparamlist.Add("CompanyID", objHotelCosting[0].CompanyID);

                    _logger.addMessage.Add("PackageCode", objHotelCosting[0].PackageCode);
                    objparamlist.Add("PackageCode", objHotelCosting[0].PackageCode);

                    _logger.addMessage.Add("PackageLanguage", objHotelCosting[0].PackageLanguage.ToString());
                    objparamlist.Add("PackageLanguage", objHotelCosting[0].PackageLanguage.ToString());
                    _logger.addMessage.Add("UpdatePackageHotelCosting", "FSP_deletePkgHotelCosting procedure is going to execute to remove existing hotel costing for the same package.");
                    IConnector objConnector = new Connector();
                    status = objConnector.ExecuteNonQuery("PackageModule", "FSP_deletePkgHotelCosting", objparamlist);

                    if (status)
                    {
                        _logger.addMessage.Add("UpdatePackageHotelCosting", "FSP_deletePkgHotelCosting procedure executed successfully.");
                        foreach (var item in objHotelCosting)
                        {
                            objparamlist = new Dictionary <string, object>();
                            _logger.addMessage.Add("CompanyID", item.CompanyID);
                            objparamlist.Add("CompanyID", item.CompanyID);

                            _logger.addMessage.Add("PackageCode", item.PackageCode);
                            objparamlist.Add("PackageCode", item.PackageCode);

                            _logger.addMessage.Add("HID", item.id.ToString());
                            objparamlist.Add("HID", item.id.ToString());

                            _logger.addMessage.Add("RoomType", item.RoomType);
                            objparamlist.Add("RoomType", item.RoomType);

                            _logger.addMessage.Add("HotelName", item.HotelName);
                            objparamlist.Add("HotelName", item.HotelName);

                            _logger.addMessage.Add("HotelCityName", item.HotelCityName);
                            objparamlist.Add("HotelCityName", item.HotelCityName);

                            _logger.addMessage.Add("AdultCost", item.AdultCost.ToString());
                            objparamlist.Add("AdultCost", item.AdultCost);

                            _logger.addMessage.Add("ChildCost", item.ChildCost.ToString());
                            objparamlist.Add("ChildCost", item.ChildCost);

                            _logger.addMessage.Add("CurrencyCode", CurrencyCode);
                            objparamlist.Add("CurrencyCode", CurrencyCode);

                            _logger.addMessage.Add("PackageLanguage", item.PackageLanguage.ToString());
                            objparamlist.Add("PackageLanguage", item.PackageLanguage);


                            //IConnector objConnector = new Connector();
                            status = objConnector.ExecuteNonQuery("PackageModule", "FSP_InsertPkgHotelCosting", objparamlist);
                        }
                    }
                }
                else
                {
                    _logger.addMessage.Add("UpdatePackageHotelCosting", "No costing available for update");
                }
                _logger.addMessage.Add("UpdatePackageHotelCosting", "Package Hotel costing updated successfully");
            }
            catch (Exception ex)
            {
                AsyncLogger.LogEventVwr("UpdatePackageHotelCosting", ex.ToString(), ex.StackTrace);
                _logger.ExceptionError = true;
                _logger.addMessage.Add("UpdatePackageHotelCosting", "Error during Update Package hotel costing Method Execution:" + ex.ToString());
            }
            finally
            {
                AsyncLogger.LogMessage(_logger);
            }
            return(status);
        }
        public string GetRoeRate(string BaseCurrency, string SupplierCurrency)
        {
            string path;

            try
            {
                if (System.Configuration.ConfigurationManager.AppSettings.AllKeys.Contains("CurrencyManagementType") && System.Configuration.ConfigurationManager.AppSettings["CurrencyManagementType"].ToString().ToUpper() == "FILE")
                {
                    _logger.addMessage.Add("CurrencyManagementType", "File");
                    if (System.Configuration.ConfigurationManager.AppSettings.AllKeys.Contains("CurrencyROEPath"))
                    {
                        path = System.Configuration.ConfigurationManager.AppSettings["CurrencyROEPath"].ToString();
                        _logger.addMessage.Add("CurrencyROEPath", path);
                        _logger.addMessage.Add("Base Currency", BaseCurrency);
                        _logger.addMessage.Add("Supplier Currency", SupplierCurrency);
                        string LangConversion = "";
                        string mapPath        = System.Web.HttpContext.Current.Server.MapPath(@"~/App_Data/" + BaseCurrency + ".json");
                        if (!File.Exists(mapPath))
                        {
                            _logger.addMessage.Add("CurrencyROEPath", "No Currency File Available For this Base Currency.");
                            _logger.ExceptionError = true;
                            return(null);
                        }
                        using (StreamReader r = new StreamReader(mapPath))
                        {
                            LangConversion = r.ReadToEnd();
                        }
                        List <CurrencyManagement> objAllList            = JsonConvert.DeserializeObject <List <CurrencyManagement> >(LangConversion);
                        IEnumerable <string>      objCurrencyManagement = objAllList.Where(m => m.CurrencyCode == SupplierCurrency).Select(m => m.ROE);
                        foreach (var item in objCurrencyManagement)
                        {
                            return(item);
                        }
                    }
                    else
                    {
                        _logger.addMessage.Add("CurrencyROEPath", "Kindly configure CurrencyROEPath in Web.Config..If it is not there!!!!");
                        _logger.ExceptionError = true;

                        throw new Exception("Kindly configure CurrencyROEPath in Web.Config..If it is not there!!!!");
                        // Key doesn't exist
                    }
                }
                else
                {
                    _logger.addMessage.Add("CurrencyROEPath", "Kindly configure CurrencyROEPath in Web.Config..If it is not there!!!!");
                    _logger.ExceptionError = true;

                    throw new Exception("Kindly configure CurrencyROEPath in Web.Config..If it is not there!!!!");
                    // Key doesn't e
                }
            }
            catch (Exception ex)
            {
                _logger.addMessage.Add("GetRoeRate", "Error during Get Roe Method Execution :" + ex.ToString());

                _logger.ExceptionError = true;
            }
            finally
            {
                AsyncLogger.LogMessage(_logger, "", "CurrencyManager");
            }
            return(null);
        }
        public void AddPackage(PackageDetails objPackageDetails)
        {
            try
            {
                _logger.addMessage.Add("AddPackage", "AddPackage Method is going to Execute");
                Dictionary <string, object> objparamlist = new Dictionary <string, object>();

                _logger.addMessage.Add("CompanyID", objPackageDetails.CompanyID);
                objparamlist.Add("CompanyID", objPackageDetails.CompanyID);

                _logger.addMessage.Add("PackageCode", objPackageDetails.BasicPackageDetails.PackageCode.ToString());
                objparamlist.Add("PackageCode", objPackageDetails.BasicPackageDetails.PackageCode);
                _logger.addMessage.Add("PackageName", objPackageDetails.BasicPackageDetails.PackageName.ToString());
                objparamlist.Add("PackageName", objPackageDetails.BasicPackageDetails.PackageName);
                _logger.addMessage.Add("PackageLanguage", objPackageDetails.BasicPackageDetails.PackageLanguage.ToString());
                objparamlist.Add("PackageLanguage", objPackageDetails.BasicPackageDetails.PackageLanguage);
                _logger.addMessage.Add("PackageTitle", objPackageDetails.BasicPackageDetails.PackageTitle.ToString());
                objparamlist.Add("PackageTitle", objPackageDetails.BasicPackageDetails.PackageTitle);
                _logger.addMessage.Add("PackageMarket", objPackageDetails.BasicPackageCreteria.PackageMarket.ToString());
                objparamlist.Add("PackageMarket", objPackageDetails.BasicPackageCreteria.PackageMarket);

                _logger.addMessage.Add("PackageSaleMarket", objPackageDetails.BasicPackageCreteria.PackageSaleMarket.ToString());
                objparamlist.Add("PackageSaleMarket", objPackageDetails.BasicPackageCreteria.PackageSaleMarket);
                _logger.addMessage.Add("PackageValidityStartDate", objPackageDetails.BasicPackageCreteria.PackageValidityStartDate.ToString());
                objparamlist.Add("PackageValidityStartDate", objPackageDetails.BasicPackageCreteria.PackageValidityStartDate);

                _logger.addMessage.Add("PackageValidityEndDate", objPackageDetails.BasicPackageCreteria.PackageValidityEndDate.ToString());
                objparamlist.Add("PackageValidityEndDate", objPackageDetails.BasicPackageCreteria.PackageValidityEndDate);


                _logger.addMessage.Add("PackageBookingStartDate", objPackageDetails.BasicPackageCreteria.PackageBookingStartDate.ToString());
                objparamlist.Add("PackageBookingStartDate", objPackageDetails.BasicPackageCreteria.PackageBookingStartDate);

                _logger.addMessage.Add("PackageBookingEndDate", objPackageDetails.BasicPackageCreteria.PackageBookingEndDate.ToString());
                objparamlist.Add("PackageBookingEndDate", objPackageDetails.BasicPackageCreteria.PackageBookingEndDate);

                _logger.addMessage.Add("PackageDuration", objPackageDetails.BasicPackageCreteria.PackageDuration.ToString());
                objparamlist.Add("PackageDuration", objPackageDetails.BasicPackageCreteria.PackageDuration);


                _logger.addMessage.Add("ChildMinAge", objPackageDetails.BasicPackageCreteria.ChildMinAge.ToString());
                objparamlist.Add("ChildMinAge", objPackageDetails.BasicPackageCreteria.ChildMinAge);
                _logger.addMessage.Add("ChildMaxAge", objPackageDetails.BasicPackageCreteria.ChildMaxAge.ToString());
                objparamlist.Add("ChildMaxAge", objPackageDetails.BasicPackageCreteria.ChildMaxAge);

                _logger.addMessage.Add("PackageLastPaymentDue", objPackageDetails.BasicPackageCreteria.PackageLastPaymentDue.ToString());
                objparamlist.Add("PackageLastPaymentDue", objPackageDetails.BasicPackageCreteria.PackageLastPaymentDue);

                _logger.addMessage.Add("PackagePaymentCutOffDay", objPackageDetails.BasicPackageCreteria.PackagePaymentCutOffDay.ToString());
                objparamlist.Add("PackagePaymentCutOffDay", objPackageDetails.BasicPackageCreteria.PackagePaymentCutOffDay);


                _logger.addMessage.Add("DiscountonFullPayment", objPackageDetails.BasicPackageCreteria.DiscountonFullPayment.ToString());
                objparamlist.Add("DiscountonFullPayment", objPackageDetails.BasicPackageCreteria.DiscountonFullPayment);



                IConnector objConnector = new Connector();
                bool       status       = objConnector.ExecuteNonQuery("PackageModule", "FSP_InsertPackageDetails", objparamlist);
                _logger.addMessage.Add("AddPackage", "Package Detail Inserted or updated succesfully.");
            }
            catch (Exception ex)
            {
                _logger.ExceptionError = true;
                _logger.addMessage.Add("AddPackage", "Error during AddPackage  Method Execution:" + ex.ToString());
            }
            finally
            {
                AsyncLogger.LogMessage(_logger);
            }
        }