public void InsertRoleUserTest() { #region arrange RoleUserDTO roleUserDTO = new RoleUserDTO() { RoleID = 1, UserID = 1 }; SqlConnection conn = new SqlConnection(); SqlTransaction tran = null; int reNumber = 1; _dataAccess.Stub(o => o.ExcuteSQL(Arg <string> .Is.Anything, ref Arg <SqlConnection> .Ref(Is.Anything(), null).Dummy, ref Arg <SqlTransaction> .Ref(Is.Anything(), null).Dummy, Arg <object[]> .Is.Anything)).Return(reNumber); #endregion #region act var result = _target.InsertRoleUser(roleUserDTO, ref conn, ref tran); #endregion #region assert Assert.AreEqual(result, reNumber); #endregion }
/// <summary> /// 透過角色ID新增RoleUser的資料 /// </summary> /// <param name="roleUserDTO"></param> /// <param name="conn"></param> /// <param name="tran"></param> /// <returns></returns> public int InsertRoleUser(RoleUserDTO roleUserDTO) { Insert(new RoleUser() { RoleID = roleUserDTO.RoleID, UserID = roleUserDTO.UserID }); return(SaveChanges()); }
/// <summary> /// 角色編輯使用者 /// 儲存勾選使用者時的變更 /// </summary> /// <param name="userCheckVO"></param> /// <returns></returns> public string SaveRoleUserSetting(IEnumerable <UserCheckVO> userCheckVO) { string result = string.Empty; string roleID; if (userCheckVO != null && userCheckVO.Any()) { roleID = userCheckVO.First().RoleID.ToString(); List <RoleUserDTO> roleUserDTOs = new List <RoleUserDTO>(); foreach (var item in userCheckVO) { RoleUserDTO roleUserDTO = new RoleUserDTO(); roleUserDTO.RoleID = item.RoleID; roleUserDTO.UserID = item.UserID; roleUserDTOs.Add(roleUserDTO); } SQLConnTran sqlConnTran = _sqlConnectionHelper.BeginTransaction(); int deleteResult = _roleUserRepo.DeleteRoleUserByRoleID(roleID, ref sqlConnTran.SqlConn, ref sqlConnTran.SqlTrans); if (deleteResult < 0) { _sqlConnectionHelper.Rollback();// tran.Rollback(); result = "刪除失敗。"; return(result); } int insertResult = 0; foreach (var item in roleUserDTOs) { insertResult += _roleUserRepo.InsertRoleUser(item, ref sqlConnTran.SqlConn, ref sqlConnTran.SqlTrans); } _sqlConnectionHelper.Commit(); if (insertResult < 0) { _sqlConnectionHelper.Rollback();// tran.Rollback(); result = "設定失敗。"; } } return(result); }
/// <summary> /// 角色編輯使用者 /// 儲存勾選使用者時的變更 /// </summary> /// <param name="userCheckVO"></param> /// <returns></returns> public string SaveRoleUserSetting(IEnumerable <UserCheckVO> userCheckVO) { string result = string.Empty; string roleID; if (userCheckVO != null && userCheckVO.Any()) { roleID = userCheckVO.First().RoleID.ToString(); List <RoleUserDTO> roleUserDTOs = new List <RoleUserDTO>(); foreach (var item in userCheckVO) { RoleUserDTO roleUserDTO = new RoleUserDTO(); roleUserDTO.RoleID = item.RoleID; roleUserDTO.UserID = item.UserID; roleUserDTOs.Add(roleUserDTO); } using (TransactionScope ts = new TransactionScope()) { int deleteResult = _roleUserEfRepo.DeleteRoleUserByRoleID(roleID); if (deleteResult < 0) { result = "刪除失敗。"; return(result); } int insertResult = 0; foreach (var item in roleUserDTOs) { insertResult += _roleUserEfRepo.InsertRoleUser(item); } ts.Complete(); if (insertResult < 0) { result = "設定失敗。"; } } } return(result); }
/// <summary> /// 透過角色ID新增RoleUser的資料 /// </summary> /// <param name="roleUserDTO"></param> /// <param name="conn"></param> /// <param name="tran"></param> /// <returns></returns> public int InsertRoleUser(RoleUserDTO roleUserDTO, ref SqlConnection conn, ref SqlTransaction tran) { try { List <string> param1 = new List <string>(); string sqlStr1 = @"Insert Into [dbo].[RoleUser] (RoleID,UserID) Values(@p0,@p1)"; param1.Add(roleUserDTO.RoleID.ToString()); param1.Add(roleUserDTO.UserID.ToString()); return(_dataAccess.ExcuteSQL(sqlStr1, ref conn, ref tran, param1.ToArray())); } catch (Exception ex) { tran.Rollback(); throw; } }
public bool Update(RoleUserDTO role) { var oRole = DAL.GetRoleUserDTO(role.RoleID); var tran = DbHelperSQL.GetTransaction(); try { DAL.Update(role, tran); oRole.UserList.ForEach(x => { if (role.UserList.Find(n => x.UserID == n.UserID) == null) { DAL.DeleteUser(role.RoleID, x.UserID, tran); } }); role.UserList.ForEach(x => { if (oRole.UserList.Find(n => x.UserID == n.UserID) == null) { DAL.AddUser(role.RoleID, x.UserID, tran); } }); tran.Commit(); return(true); } catch (Exception ex) { tran.Rollback(); throw ex; } }