public static TSWCatalogsList GetAllMarkets(TSWCatalogs parItem)
    {
        TSWCatalogsList retval = new TSWCatalogsList();

        using (SqlDataReader reader = SqlHelper.ExecuteReader(Helper.ConnectionString, CommandType.StoredProcedure, "usp_Markets"))
        {
            while (reader.Read())
            {
                retval.Add(Read(reader));
            }
        }
        return retval;
    }
    public static TSWCatalogsList GetAllPersonnelNamesPerSite(TSWCatalogs parItem)
    {
        TSWCatalogsList retval = new TSWCatalogsList();

        SqlParameter[] param = new SqlParameter[]{
            new SqlParameter("@FromLive", parItem.FromLive),
            new SqlParameter("@SiteID", parItem.SiteID),
            new SqlParameter("@TitleID", 1), //Per Angel if we pass a number different than 46 should bring all the personnel for that site.

        };

        using (SqlDataReader reader = SqlHelper.ExecuteReader(Helper.ConnectionString, CommandType.StoredProcedure, "ws_usp_SearchForPersonnel", param))
        {
            while (reader.Read())
            {
                retval.Add(Read(reader));
            }
        }

        return retval;
    }
    public static TSWCatalogsList GetCampaigns(TSWCatalogs paritem)
    {
        TSWCatalogsList retval = new TSWCatalogsList();

        //SqlParameter pOut = new SqlParameter("@Count", SqlDbType.Int, 4);
        //pOut.Direction = ParameterDirection.Output;

        SqlParameter[] param = new SqlParameter[]{
            new SqlParameter("@FromLive", paritem.FromLive),
            new SqlParameter("@SiteID", paritem.SiteID)
            //pOut
        };

        using (SqlDataReader reader = SqlHelper.ExecuteReader(Helper.ConnectionString, CommandType.StoredProcedure, "ws_usp_GetCampaigns", param))
        {
            while (reader.Read())
            {
                retval.Add(Read(reader));
            }
        }
        //count = Helper.ToInt32(pOut.Value);
        return retval;
    }
    //public static TSWCatalogsList GetMarkets()
    //{
    //    TSWCatalogsList retval = new TSWCatalogsList();
    //    //SqlParameter pOut = new SqlParameter("@Count", SqlDbType.Int, 4);
    //    //pOut.Direction = ParameterDirection.Output;
    //    using (SqlDataReader reader = SqlHelper.ExecuteReader(Helper.ConnectionString, CommandType.StoredProcedure, "ws_usp_SearchForPersonnel", param))
    //    {
    //        while (reader.Read())
    //        {
    //            retval.Add(Read(reader));
    //        }
    //    }
    //    //count = Helper.ToInt32(pOut.Value);
    //    return retval;
    //}
    public static TSWCatalogs Read(SqlDataReader reader)
    {
        TSWCatalogs retval = new TSWCatalogs();

        for (int i = 0; i < reader.FieldCount; i++)
        {
            switch (reader.GetName(i))
            {
                case "SiteID":
                    retval.SiteID = Helper.ToInt32(reader[i]);
                    break;
                case "tourlocationid":
                    retval.TourLocationID = Helper.ToInt32(reader[i]);
                    break;
                case "location": //tourLocation
                    retval.TourLocation = Helper.ToString(reader[i]);
                    break;
                case "TourDescription":
                    retval.TourDescription = Helper.ToString(reader[i]);
                    break;
                case "PersonnelID":
                    retval.PersonnelID = Helper.ToString(reader[i]);
                    break;
                case "LastName":
                    retval.LastName = Helper.ToString(reader[i]);
                    break;
                case "FirstName":
                    retval.FirstName = Helper.ToString(reader[i]);
                    break;
                case "CampaignID":
                    retval.CampaignID = Helper.ToString(reader[i]);
                    break;
                case "CampaignName":
                    retval.CampaignName = Helper.ToString(reader[i]);
                    break;
                case "PremInvID":
                    retval.PremInvID= Helper.ToString(reader[i]);
                    break;
                case "PremInvTypeID":
                    retval.PremInvTypeID = Helper.ToInt32(reader[i]);
                    break;
                case "PremName":
                    retval.PremDesc = Helper.ToString(reader[i]);
                    break;
                case "Description":
                    retval.Description = Helper.ToString(reader[i]);
                    break;
                case "CLookupID":
                    retval.CLookUpID = Helper.ToString(reader[i]);
                    break;
                case "HotelDescription":
                    retval.HotelDescription = Helper.ToString(reader[i]);
                    break;
                case "MaritalID":
                    retval.CLookUpID = Helper.ToString(reader[i]);
                    break;
                case "MaritalStatus":
                    retval.Description = Helper.ToString(reader[i]);
                    break;
                case "OccupationID":
                    retval.CLookUpID = Helper.ToString(reader[i]);
                    break;
                case "Occupation":
                    retval.Description = Helper.ToString(reader[i]);
                    break;
                case "IncomeID":
                    retval.CLookUpID = Helper.ToString(reader[i]);
                    break;
                case "IncomeDescription":
                    retval.Description = Helper.ToString(reader[i]);
                    break;
                case "LookupID":
                    retval.CLookUpID = Helper.ToString(reader[i]);
                    break;
                case "InfoValue":
                    retval.Description = Helper.ToString(reader[i]);
                    break;
                case "SIHOTHotelCode":
                    retval.SIHOTHotelCode = Helper.ToInt32(reader[i]);
                    break;
                case "SIHOTVCCode":
                    retval.SIHOTVCCode = Helper.ToInt32(reader[i]);
                    break;
                case "NQTypesID":
                    retval.NQTypesID = Helper.ToInt32(reader[i]);
                    break;
                case "NQTypes":
                    retval.NQTypes = Helper.ToString(reader[i]);
                    break;
                case "PromisedByName":
                    retval.PromisedByName = Helper.ToString(reader[i]);
                    break;
                case  "Quantity":
                    retval.Quantity = Helper.ToInt32(reader[i]);
                    break;
                case "Amount":
                    retval.Amount = Helper.ToDecimal(reader[i]);
                    break;
                case "AuditDate":
                    retval.AuditDate = Helper.ToDateTime(reader[i]);
                    break;
                case "mkN":
                    retval.MarketDesc = Helper.ToString(reader[i]);
                    break;
                case "mkID":
                    retval.MarketCode = Helper.ToString(reader[i]);
                    break;
                case "Agency":
                    retval.Agency= Helper.ToString(reader[i]);
                    break;

                case "TSWStateID":
                    retval.TSWStateID = Helper.ToString(reader[i]);
                    break;
                case "TSWCountryID":
                    retval.TSWCountryID = Helper.ToString(reader[i]);
                    break;
                case "StateID":
                    retval.StateID = Helper.ToString(reader[i]);
                    break;
                case "CountryID":
                    retval.CountryID = Helper.ToString(reader[i]);
                    break;
                case "CountryName":
                    retval.CountryName = Helper.ToString(reader[i]).Trim();
                    break;
                case "State":
                    retval.State = Helper.ToString(reader[i]).Trim();
                    break;
                    //****
                case "EmailTypeID":
                    retval.EmailTypeId = Helper.ToString(reader[i]).Trim();
                    break;
                case "EmailType":
                    retval.EmailType = Helper.ToString(reader[i]).Trim();
                    break;
                case "PhoneTypeID":
                    retval.PhoneTypeId = Helper.ToString(reader[i]).Trim();
                    break;
                case "PhoneType":
                    retval.PhoneType = Helper.ToString(reader[i]).Trim();
                    break;
                case "StateShort":
                    retval.StateShort = Helper.ToString(reader[i]).Trim();
                    break;
            }

        }

        return retval;
    }
    private void PopulateAgencySegmentation(DropDownList ddlParameter)
    {
        TSWCatalogs parItem = new TSWCatalogs();
        parItem.FromLive = 1;

        TSWCatalogsList list = TSWCatalogsDB.GetAllAgencies(parItem);
        ddlParameter.Items.Clear();
        ddlParameter.Items.Add(new ListItem("Select..", ""));
        //throw new Exception(list.Count.ToString());
        foreach (TSWCatalogs item in list)
        {
            ddlParameter.Items.Add(new ListItem(item.Agency, item.Agency));
        }
    }
    //Fills out with all the names after everything is filled out.
    private void PopulatePromotorName(DropDownList ddlParameter)
    {
        TSWCatalogs parItem = new TSWCatalogs();
        parItem.SiteID = SiteId;
        parItem.FromLive = m_FromLive;

        TSWCatalogsList list = TSWCatalogsDB.GetAllPersonnelNamesPerSite(parItem);
        ddlParameter.Items.Clear();
        ddlParameter.Items.Add(new ListItem("Select..", ""));
        //throw new Exception(list.Count.ToString());
        foreach (TSWCatalogs item in list)
        {
            ddlParameter.Items.Add(new ListItem(item.LastName + ", " + item.FirstName, item.PersonnelID.ToString()));
        }
    }
    private void PopulateOccupations()
    {
        TSWCatalogs item = new TSWCatalogs();
        item.FromLive = m_FromLive;
        item.SiteID = SiteId;
        item.CLookUpName = "occupation";

        TSWCatalogsList list = TSWCatalogsDB.GetOcuppations(item);

        ddlOccupation.Items.Add(new ListItem("Select..", ""));
        //throw new Exception(list.Count.ToString());
        foreach (TSWCatalogs items in list)
        {
           this.ddlOccupation.Items.Add(new ListItem(items.Description, items.CLookUpID.ToString()));
        }
    }
    private void PopulateIncome()
    {
        TSWCatalogs itemIncome = new TSWCatalogs();
        itemIncome.FromLive = m_FromLive;
        itemIncome.SiteID = SiteId;

        TSWCatalogsList list = TSWCatalogsDB.GetIncome(itemIncome);
        ddlIncome.Items.Add(new ListItem("Select..", ""));
        //throw new Exception(list.Count.ToString());
        foreach (TSWCatalogs item in list)
        {
            this.ddlIncome.Items.Add(new ListItem(item.Description, item.CLookUpID.ToString()));
        }
    }
    public static TSWCatalogsList GetPromotorNames(TSWCatalogs parItem)
    {
        TSWCatalogsList retval = new TSWCatalogsList();

        //SqlParameter pOut = new SqlParameter("@Count", SqlDbType.Int, 4);
        //pOut.Direction = ParameterDirection.Output;

        SqlParameter[] param = new SqlParameter[]{
            new SqlParameter("@FromLive", parItem.FromLive),
            new SqlParameter("@SiteID", parItem.SiteID),
            new SqlParameter("@TitleID", 46), //Meaning VC Concierge it's ok to leave it like this 6/24
            //new SqlParameter("@TeamID", 11) //GMC Marketing. We don't need it any more 6/24
            //pOut
        };

        using (SqlDataReader reader = SqlHelper.ExecuteReader(Helper.ConnectionString, CommandType.StoredProcedure, "ws_usp_SearchForPersonnel", param))

        {
            while (reader.Read())
            {
                retval.Add(Read(reader));
            }
        }

        //count = Helper.ToInt32(pOut.Value);
        return retval;
    }
    public static TSWCatalogsList GetOcuppations(TSWCatalogs value)
    {
        TSWCatalogsList retval = new TSWCatalogsList();

        //SqlParameter pOut = new SqlParameter("@Count", SqlDbType.Int, 4);
        //pOut.Direction = ParameterDirection.Output;

        SqlParameter[] param = new SqlParameter[]{
            new SqlParameter("@parSiteId", value.SiteID),
            new SqlParameter("@FromLive", value.FromLive),
        };

        using (SqlDataReader reader = SqlHelper.ExecuteReader(Helper.ConnectionString, CommandType.StoredProcedure, "ws_usp_GetOccupations"))
        {
            while (reader.Read())
            {
                retval.Add(Read(reader));
            }
        }
        return retval;
    }
    public static TSWCatalogsList GetMaritalStatus1(TSWCatalogs value)
    {
        TSWCatalogsList retval = new TSWCatalogsList();

        SqlParameter[] param = new SqlParameter[]{
            new SqlParameter("@parSiteId", value.SiteID)
        };

        using (SqlDataReader reader = SqlHelper.ExecuteReader(Helper.ConnectionString, CommandType.StoredProcedure, "Select_MaritalStatus"))
        {
            while (reader.Read())
            {
                retval.Add(Read(reader));
            }
        }
        return retval;
    }
    public static TSWCatalogsList GetIncome(TSWCatalogs value)
    {
        TSWCatalogsList retval = new TSWCatalogsList();

        SqlParameter[] param = new SqlParameter[]{
            new SqlParameter("@FromLive", value.FromLive),
            new SqlParameter("@SiteID", value.SiteID)

        };

        using (SqlDataReader reader = SqlHelper.ExecuteReader(Helper.ConnectionString, CommandType.StoredProcedure, "ws_usp_GetIncomeBySite", param))
        {
            //throw new Exception(reader.GetSqlValues());
            while (reader.Read())
            {
                retval.Add(Read(reader));
            }
        }
        return retval;
    }
    public static TSWCatalogs GetHotelDescription(int parHotelCode, string parOrigin)
    {
        TSWCatalogs retval = new TSWCatalogs();

        //SqlParameter pOut = new SqlParameter("@Count", SqlDbType.Int, 4);
        //pOut.Direction = ParameterDirection.Output;
        //throw new Exception(parHotelCode.ToString() +", "+  parOrigin.ToString());
        SqlParameter[] param = new SqlParameter[]{
            new SqlParameter("@ParHotelCode", parHotelCode),
            new SqlParameter("@ParOrigin", parOrigin.Trim())

        };

        using (SqlDataReader reader = SqlHelper.ExecuteReader(Helper.ConnectionString, CommandType.StoredProcedure, "Select_tblPMS_HotelDescription", param))
        {
            if (reader.Read())
            {
                retval = Read(reader);
                //retval.Add(Read(reader));
            }
        }
        return retval;
    }
    private void PopulateMarket(DropDownList ddlParameter)
    {
        TSWCatalogs parItem = new TSWCatalogs();
        parItem.SiteID = SiteId;
        parItem.FromLive = 1;

        TSWCatalogsList list = TSWCatalogsDB.GetAllMarkets(parItem);
        ddlParameter.Items.Clear();
        ddlParameter.Items.Add(new ListItem("Select..", ""));
        //throw new Exception(list.Count.ToString());
        foreach (TSWCatalogs item in list)
        {
            ddlParameter.Items.Add(new ListItem(item.MarketDesc, item.MarketDesc));
        }
    }
    public static TSWCatalogsList GetCatalogs(TSWCatalogs value)
    {
        TSWCatalogsList retval = new TSWCatalogsList();

        SqlParameter[] param = new SqlParameter[]{
            new SqlParameter("@inSiteId ", value.SiteID),
            new SqlParameter("@inLookupName", value.CLookUpName),
            new SqlParameter("@FromLive", value.FromLive)
           };

        //WebAPI_GetMaritalStatus
        using (SqlDataReader reader = SqlHelper.ExecuteReader(Helper.ConnectionString, CommandType.StoredProcedure, "Select_TSW_Catalogs", param))
        {
            while (reader.Read())
            {
                retval.Add(Read(reader));
            }
        }
        return retval;
    }
 private void PopulateCampaing()
 {
     TSWCatalogs paritem = new TSWCatalogs();
     paritem.FromLive = m_FromLive;
     paritem.SiteID = SiteId;
     TSWCatalogsList list = TSWCatalogsDB.GetCampaigns(paritem);
     ddlCampaign.Items.Clear();
     ddlCampaign.Items.Add(new ListItem("Select..", ""));
     //throw new Exception(list.Count.ToString());
     foreach (TSWCatalogs item in list)
     {
       this.ddlCampaign.Items.Add(new ListItem(item.CampaignName, item.CampaignID.ToString()));
     }
 }
    public static TSWCatalogsList GetTourLocations(TSWCatalogs parItem)
    {
        TSWCatalogsList retval = new TSWCatalogsList();

        //SqlParameter pOut = new SqlParameter("@Count", SqlDbType.Int, 4);
        //pOut.Direction = ParameterDirection.Output;

        SqlParameter[] param = new SqlParameter[]{
            new SqlParameter("@inDBName", parItem.DBName),
            new SqlParameter("@SiteId", parItem.SiteID)
        };

        using (SqlDataReader reader = SqlHelper.ExecuteReader(Helper.ConnectionString, CommandType.StoredProcedure, "ws_usp_GetTourLocations", param))
        {
            while (reader.Read())
            {
                retval.Add(Read(reader));
            }
        }
        return retval;
    }
    private void PopulateMaritalStatus1()
    {
        TSWCatalogs paritem = new TSWCatalogs();
        paritem.SiteID = SiteId;
        paritem.FromLive = m_FromLive;

        TSWCatalogsList list = TSWCatalogsDB.GetMaritalStatus1(paritem);
        ddlMarital1.Items.Add(new ListItem("Select...",""));

        //throw new Exception(list.Count.ToString());
        foreach (TSWCatalogs item in list)
        {
            ddlMarital1.Items.Add(new ListItem(item.Description, item.CLookUpID));
        }
    }
    public static TSWCatalogsList GetTSWCountriesAndStates(TSWCatalogs value)
    {
        TSWCatalogsList retval = new TSWCatalogsList();

        SqlParameter[] param = new SqlParameter[]{
            new SqlParameter("@TSWStateID", value.TSWStateID),
            new SqlParameter("@TSWCountryID", value.TSWCountryID),
        };

        using (SqlDataReader reader = SqlHelper.ExecuteReader(Helper.ConnectionString, CommandType.StoredProcedure, "sel_Rel_States_Ctry"))
        {
            while (reader.Read())
            {
                retval.Add(Read(reader));
            }
        }
        return retval;
    }
    private void PopulatePrizes()
    {
        TSWCatalogs parItem= new TSWCatalogs();
        parItem.FromLive = m_FromLive;
        parItem.CampaignID = ddlCampaign.SelectedValue;
        parItem.SiteID = SiteId; //2
        parItem.TourLocationID = Helper.ToInt32(ddlTourLocation.SelectedValue);

        TSWCatalogsList list = TSWCatalogsDB.GetPrizes(parItem);
        rptrPremiums.DataSource = list;
        rptrPremiums.DataBind();
        litPremiumsQty.Text = "<font color='blue' size='1' face='Arial' >" + rptrPremiums.Items.Count + " premiums available. </font>";
        litPremiumsCaveat.Text = "<font color='blue' size='1' face='Arial'>To save your premiums, type in the amounts and click Book on the Booking Tab.</font>";
    }
    public static TSWCatalogs Get_RelationalStatesAndCountries_By_TSWStateID(int TSWStateID)
    {
        TSWCatalogs retval = new TSWCatalogs();

        SqlParameter[] param = new SqlParameter[]{
            new SqlParameter("@TSWStateID", TSWStateID)
        };

        using (SqlDataReader reader = SqlHelper.ExecuteReader(Helper.ConnectionString, CommandType.StoredProcedure, "Sel_RelationalStatesAndCountries_By_TSWStateID", param))
        {
            if (reader.Read())
            {
                retval = Read(reader);
                //retval.Add(Read(reader));
            }
        }
        return retval;
    }
    private void PopulateTourLocations()
    {
        TSWCatalogs paritem = new TSWCatalogs();
        paritem.SiteID = SiteId;
        if (m_FromLive == 0)
            paritem.DBName = "tswpracticeSP1";
        else
            paritem.DBName = "TSWDATA";

        ddlTourLocation.Items.Clear();
        TSWCatalogsList list = TSWCatalogsDB.GetTourLocations(paritem);

        ddlTourLocation.Items.Add(new ListItem("Select..", ""));
        //throw new Exception(list.Count.ToString());
        foreach (TSWCatalogs item in list)
        {
            ddlTourLocation.Items.Add(new ListItem(item.TourLocation, item.TourLocationID.ToString()));
        }
    }
    //Fills out the states.
    private void PopulateStates(DropDownList ddlParameter)
    {
        TSWCatalogs parItem = new TSWCatalogs();

        TSWCatalogsList list = TSWCatalogsDB.Get_TSW_States();
        ddlParameter.Items.Clear();
        ddlParameter.Items.Add(new ListItem("Select..", ""));
        //throw new Exception(list.Count.ToString());
        foreach (TSWCatalogs item in list)
        {
            ddlParameter.Items.Add(new ListItem(item.State, item.StateID));
        }
    }