public List<UserBranchesDetailsBO> LoadAllUserBranchesByUserID(int userId)
        {
            List<UserBranchesDetailsBO> userBranchesList=new List<UserBranchesDetailsBO>();
                UserBranchesDetailsBO userBranch = new UserBranchesDetailsBO();
                DBEgine dbEgine = new DBEgine();
                try{

                        SqlParameter[] parms = new SqlParameter[1];

                        SqlParameter p1 = new SqlParameter();
                        p1.ParameterName = "UserID";
                        p1.SqlDbType = SqlDbType.Int;
                        p1.Direction = ParameterDirection.Input;
                        p1.Value = userId;
                        parms[0] = p1;

                        dbEgine.DBOpen();
                        SqlDataReader drUserBranches = dbEgine.ExecuteReader("UserManagement.UM_LoadUserBranchesByUserID", parms);
                        if (drUserBranches != null && drUserBranches.HasRows )
                        {
                           while(drUserBranches.Read()){
                               userBranch=FillUserBranches(drUserBranches);
                               userBranchesList.Add(userBranch);
                           }
                        }

                    return userBranchesList;
                }
                catch{
                 throw;
                }
                finally{
                  dbEgine.DBClose();
                }
        }
        public int AddUserBranchDetails(DBEgine dbEgine,int userId,UserBranchesDetailsBO obj)
        {
            try {
                    SqlParameter[] paramArray = new SqlParameter[3];

                    SqlParameter branchIDParam = new SqlParameter();
                    branchIDParam.ParameterName = "@BranchID";
                    branchIDParam.SqlDbType = SqlDbType.Int;
                    branchIDParam.Direction = ParameterDirection.Input;
                    branchIDParam.Value = obj.BranchID;
                    paramArray[0] = branchIDParam;

                    SqlParameter userIDParam = new SqlParameter();
                    userIDParam.ParameterName = "@UserID";
                    userIDParam.SqlDbType = SqlDbType.Int;
                    userIDParam.Direction = ParameterDirection.Input;
                    userIDParam.Value = obj.UserID;
                    paramArray[1] = userIDParam;

                    SqlParameter isPrimaryParam = new SqlParameter();
                    isPrimaryParam.ParameterName = "@IsPrimary";
                    isPrimaryParam.SqlDbType = SqlDbType.Bit;
                    isPrimaryParam.Direction = ParameterDirection.Input;
                    isPrimaryParam.Value = obj.IsPrimary;
                    paramArray[2] = isPrimaryParam;

                    dbEgine.ExecNonQueryStoredProc("UserManagement.UM_AddUserBranchesDetails", paramArray);
                    return obj.BranchID;
                }
                catch
                {
                    throw;
                }
        }
        private UserBranchesDetailsBO FillUserBranches(SqlDataReader reader)
        {
            var userBranches = new UserBranchesDetailsBO();
                     userBranches.UserBranchID=reader.GetInt32( reader.GetOrdinal("UserBranchID"));
                     userBranches.UserID = reader.GetInt32(reader.GetOrdinal("UserID"));
                     userBranches.BranchID = reader.GetInt32(reader.GetOrdinal("BranchID"));
                     userBranches.IsPrimary = reader.GetBoolean(reader.GetOrdinal("IsPrimary"));

                     return userBranches;
        }
        public UserBranchesDetailsBO LoadUserBrancheByUserIDANDBranchID(int userId,int branchId)
        {
            List<UserBranchesDetailsBO> userBranchesList = new List<UserBranchesDetailsBO>();
                UserBranchesDetailsBO userBranch = new UserBranchesDetailsBO();
                DBEgine dbEgine = new DBEgine();
                try
                {

                    SqlParameter[] parms = new SqlParameter[2];

                    SqlParameter p1 = new SqlParameter();
                    p1.ParameterName = "UserID";
                    p1.SqlDbType = SqlDbType.Int;
                    p1.Direction = ParameterDirection.Input;
                    p1.Value = userId;
                    parms[0] = p1;

                    SqlParameter p2 = new SqlParameter();
                    p2.ParameterName = "BranchID";
                    p2.SqlDbType = SqlDbType.Int;
                    p2.Direction = ParameterDirection.Input;
                    p2.Value = branchId;
                    parms[1] = p2;

                    dbEgine.DBOpen();
                    SqlDataReader drUserBranches = dbEgine.ExecuteReader("UserManagement.UM_LoadUserBranchByUserIDANDBranchID", parms);
                    if (drUserBranches != null && drUserBranches.HasRows && drUserBranches.Read())
                    {
                        userBranch = FillUserBranches(drUserBranches);
                    }

                    return userBranch;
                }
                catch
                {
                    throw;
                }
                finally
                {
                    dbEgine.DBClose();
                }
        }