public CCategories AddCategory(string strCategory)
        {
            try
            {
                CDatabase   Database      = new CDatabase();
                CCategories Category      = new CCategories();
                int         intCategoryID = Database.InsertCategory(strCategory);

                if (intCategoryID > 0)
                {
                    Category.intCategoryID = intCategoryID;
                    Category.strCategory   = strCategory;
                    Category.ActionStatus  = CCategories.ActionStatusTypes.CategoryAdded;
                }
                else
                {
                    Category.ActionStatus = CCategories.ActionStatusTypes.CategoryAddFailed;
                }

                return(Category);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
        // Get User \/
        public List <CCategories> GetCategories(int intCategoryID = 0)
        {
            SqlConnection      Connection   = new SqlConnection();
            List <CCategories> CategoryList = new List <CCategories>();

            try
            {
                if (OpenDBConnection(ref Connection) == 0)
                {
                    SqlDataAdapter da = new SqlDataAdapter("uspSelectCategory", Connection);
                    da.SelectCommand.CommandType = System.Data.CommandType.StoredProcedure;
                    DataSet ds = new DataSet();

                    if (intCategoryID != 0)
                    {
                        SetParameter(ref da, "@intCategoryID", intCategoryID, SqlDbType.Int);
                    }
                    else
                    {
                        SetParameter(ref da, "@intCategoryID", null, SqlDbType.Int);
                    }

                    try
                    {
                        da.Fill(ds);

                        foreach (DataTable dt in ds.Tables)
                        {
                            foreach (DataRow dr in dt.Rows)
                            {
                                CCategories Category = new CCategories();
                                Category.intCategoryID = Convert.ToInt32((dr["intCategoryID"]));
                                Category.strCategory   = (dr["strCategory"]).ToString();

                                CategoryList.Add(Category);
                            }
                        }
                    }
                    finally
                    {
                        CloseDBConnection(ref Connection);
                    }
                }
                // return CategoryList;
                return(CategoryList);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
        public int AddAddress(CAddress Address)
        {
            try
            {
                CDatabase   Database     = new CDatabase();
                CCategories Category     = new CCategories();
                int         intAddressID = Database.InsertAddress(Address);

                return(intAddressID);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
        // Insert Category \
        public int InsertCategory(string strCategory)
        {
            try
            {
                SqlConnection Connection = null;

                if (OpenDBConnection(ref Connection) == 0)
                {
                    CCategories category    = new CCategories();
                    int         intReturnID = 0;

                    SqlCommand cm = new SqlCommand("uspAddCategory", Connection);

                    SetParameter(ref cm, "@strCategory", strCategory, SqlDbType.VarChar);
                    SetParameter(ref cm, "ReturnValue", 0, SqlDbType.Int, Direction: ParameterDirection.ReturnValue);

                    cm.ExecuteReader();

                    CloseDBConnection(ref Connection);

                    if (!Convert.IsDBNull(cm.Parameters["ReturnValue"].Value))
                    {
                        intReturnID = (int)cm.Parameters["ReturnValue"].Value;
                    }

                    return(intReturnID); //success
                }
                else
                {
                    return(-1); // No database connection
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }