public async Task <DepartmentMember> AddExistingUserAsync(int departmentId, string userId, CancellationToken cancellationToken = default(CancellationToken)) { var dms = await _departmentMembersRepository.GetAllDepartmentMemberByUserIdAsync(userId); var defaultDm = dms.FirstOrDefault(x => x.IsDefault); var activeDm = dms.FirstOrDefault(x => x.IsActive); var existingDepDm = dms.FirstOrDefault(x => x.DepartmentId == departmentId); if (existingDepDm != null) { return(null); // User already is in department } DepartmentMember dm = new DepartmentMember(); dm.DepartmentId = departmentId; dm.UserId = userId; if (defaultDm == null || defaultDm.IsDeleted) { dm.IsDefault = true; } if (activeDm == null || activeDm.IsDeleted) { dm.IsActive = true; } dm.IsAdmin = false; dm.IsDisabled = false; dm.IsHidden = false; return(await _departmentMembersRepository.SaveOrUpdateAsync(dm, cancellationToken)); }
public DepartmentMember AddUserToDepartment(int departmentId, string userId) { var currentDm = GetDepartmentMember(userId, departmentId); if (currentDm == null) { var dm = new DepartmentMember(); dm.DepartmentId = departmentId; dm.UserId = userId; dm.IsAdmin = false; dm.IsDisabled = false; dm.IsHidden = false; dm.IsDefault = true; dm.IsActive = true; _departmentMembersRepository.SaveOrUpdate(dm); _eventAggregator.SendMessage <DepartmentSettingsUpdateEvent>(new DepartmentSettingsUpdateEvent() { DepartmentId = departmentId }); InvalidateDepartmentUsersInCache(departmentId); return(dm); } return(null); }
public void AddExistingUser(int departmentId, string userId) { var dms = _departmentMembersRepository.GetAll().Where(x => x.UserId == userId).ToList(); var defaultDm = dms.FirstOrDefault(x => x.IsDefault); var activeDm = dms.FirstOrDefault(x => x.IsActive); var existingDepDm = dms.FirstOrDefault(x => x.DepartmentId == departmentId); if (existingDepDm != null) { return; // User already is in department } DepartmentMember dm = new DepartmentMember(); dm.DepartmentId = departmentId; dm.UserId = userId; if (defaultDm == null || defaultDm.IsDeleted) { dm.IsDefault = true; } if (activeDm == null || activeDm.IsDeleted) { dm.IsActive = true; } dm.IsAdmin = false; dm.IsDisabled = false; dm.IsHidden = false; _departmentMembersRepository.SaveOrUpdate(dm); }
protected void btnUpdateAccess_Click(object sender, EventArgs e) { foreach (var row in lviewMembers.Items) { if (row.ItemType == ListViewItemType.DataItem) { CheckBox cboxCommittee = row.FindControl(STR_ChkAllowCommittee) as CheckBox; CheckBox cboxFaculty = row.FindControl(STR_ChkAllowFaculty) as CheckBox; CheckBox cboxReview = row.FindControl(STR_ChkAllowReview) as CheckBox; //Get the departmental member associated with this row int departmentMemberID = (int)lviewMembers.DataKeys[row.DataItemIndex]["id"]; DepartmentMember member = DepartmentMemberBLL.GetByID(departmentMemberID); using (var ts = new TransactionScope()) { DepartmentMemberBLL.UpdateAccess(member, currentPosition, cboxCommittee.Checked, cboxFaculty.Checked, cboxReview.Checked); ts.CommitTransaction(); } } } this.bindMembers(); this.ShowUpdateAcessRegion(); //Display an update successful message lblCommitteeUpdated.Text = "Committee Membership Successfully Updated"; }
public async Task <DepartmentMember> AddUserToDepartmentAsync(int departmentId, string userId, bool isAdmin = false, CancellationToken cancellationToken = default(CancellationToken)) { var currentDm = await GetDepartmentMemberAsync(userId, departmentId, true); if (currentDm == null) { var dm = new DepartmentMember(); dm.DepartmentId = departmentId; dm.UserId = userId; dm.IsAdmin = isAdmin; dm.IsDisabled = false; dm.IsHidden = false; dm.IsDefault = true; dm.IsActive = true; var saved = await _departmentMembersRepository.SaveOrUpdateAsync(dm, cancellationToken); _eventAggregator.SendMessage <DepartmentSettingsUpdateEvent>(new DepartmentSettingsUpdateEvent() { DepartmentId = departmentId }); InvalidateDepartmentUsersInCache(departmentId); return(saved); } return(null); }
public async Task <DepartmentMember> SaveDepartmentMemberAsync(DepartmentMember departmentMember, CancellationToken cancellationToken = default(CancellationToken)) { var saved = await _departmentMembersRepository.SaveOrUpdateAsync(departmentMember, cancellationToken); InvalidateDepartmentMemberInCache(departmentMember.UserId, departmentMember.DepartmentId); InvalidateDepartmentUserInCache(departmentMember.UserId, departmentMember.User); return(saved); }
public DepartmentMember SaveDepartmentMember(DepartmentMember departmentMember) { _departmentMembersRepository.SaveOrUpdate(departmentMember); InvalidateDepartmentMemberInCache(departmentMember.UserId, departmentMember.DepartmentId); InvalidateDepartmentUserInCache(departmentMember.UserId, departmentMember.User); return(departmentMember); }
protected void btnAddMember_Click(object sender, EventArgs e) { //Create the new department member DepartmentMember member = new DepartmentMember(); member.DepartmentFIS = STR_FRAC; member.FirstName = txtFName.Text; member.LastName = txtLName.Text; member.OtherDepartmentName = string.IsNullOrEmpty(txtDepartment.Text) ? "Other" : txtDepartment.Text; member.LoginID = txtLoginID.Text.ToLower().Trim(); //Create the membership object CommitteeMember committeeAccess = new CommitteeMember(); committeeAccess.AssociatedPosition = currentPosition; committeeAccess.DepartmentMember = member; switch (dlistMemberType.SelectedValue) { case "Committee": committeeAccess.MemberType = MemberTypeBLL.GetByID((int)MemberTypes.CommitteeMember); break; case "Faculty": committeeAccess.MemberType = MemberTypeBLL.GetByID((int)MemberTypes.FacultyMember); break; case "Review": committeeAccess.MemberType = MemberTypeBLL.GetByID((int)MemberTypes.Reviewer); break; } //save the department member and add to the position committee for this position using (var ts = new TransactionScope()) { DepartmentMemberBLL.EnsurePersistent(member); committeeAccess.DepartmentMember = member; currentPosition.CommitteeMembers.Add(committeeAccess); Position position = currentPosition; PositionBLL.EnsurePersistent(position); ts.CommitTransaction(); } //Display an update successful message lblCommitteeUpdated.Text = "Committee Membership Successfully Updated"; //rebind the datagrid this.bindMembers(); this.ShowUpdateAcessRegion(); }
protected void btnRemove_Click(object sender, EventArgs e) { LinkButton lbtn = (LinkButton)sender; int departmentMemberID = int.Parse(lbtn.CommandArgument); DepartmentMember member = DepartmentMemberBLL.GetByID(departmentMemberID); using (var ts = new TransactionScope()) { member.Inactive = true; //Mark the member as inactive DepartmentMemberBLL.EnsurePersistent(member); ts.CommitTransaction(); } lviewApplications.DataBind(); }
protected void btnAddMember_Click(object sender, EventArgs e) { DepartmentMember member = new DepartmentMember(); member.LoginID = txtLoginID.Text.ToLower().Trim(); member.FirstName = txtFName.Text; member.LastName = txtLName.Text; member.DepartmentFIS = dlistDepartment.SelectedValue; using (var ts = new TransactionScope()) { DepartmentMemberBLL.EnsurePersistent(member); ts.CommitTransaction(); } //Now we have a new member, so rebind the grid lviewApplications.DataBind(); }
public async Task <DepartmentMember> JoinDepartmentAsync(int departmentId, string userId, CancellationToken cancellationToken = default(CancellationToken)) { Department d = await GetDepartmentByIdAsync(departmentId); if (d != null) { // Check to see if we are already part of this department var currentDepartments = await GetAllDepartmentsForUserAsync(userId); foreach (var department in currentDepartments) { if (department.DepartmentId == departmentId) { return(department); } } var dm = new DepartmentMember(); dm.DepartmentId = departmentId; dm.UserId = userId; dm.IsAdmin = false; dm.IsDisabled = false; dm.IsHidden = false; dm.IsActive = false; dm.IsDefault = false; var saved = await _departmentMembersRepository.SaveOrUpdateAsync(dm, cancellationToken); _eventAggregator.SendMessage <DepartmentSettingsUpdateEvent>(new DepartmentSettingsUpdateEvent() { DepartmentId = d.DepartmentId }); InvalidateDepartmentUsersInCache(d.DepartmentId); return(saved); } return(null); }
public override void LoadData() { base.LoadData(); DepartmentMember departmentMember = new DepartmentMember { DepartmentFIS = StaticProperties.TestString, FirstName = StaticProperties.TestString, LastName = StaticProperties.TestString, LoginID = StaticProperties.TestString, OtherDepartmentName = StaticProperties.TestString }; using (var ts = new TransactionScope()) { DepartmentMemberBLL.EnsurePersistent(departmentMember); for (int i = 0; i < 4; i++) { var memberType = new MemberType { Type = StaticProperties.TestString }; var committeeMember = new CommitteeMember { AssociatedPosition = PositionBLL.GetByID(StaticProperties.ExistingPositionID), DepartmentMember = departmentMember, MemberType = memberType }; MemberTypeBLL.EnsurePersistent(memberType); CommitteeMemberBLL.EnsurePersistent(committeeMember); } ts.CommitTransaction(); } }
public DepartmentMember JoinDepartment(int departmentId, string userId) { Department d = GetDepartmentById(departmentId); if (d != null) { // Check to see if we are already part of this department var currentDepartments = GetAllDepartmentsForUser(userId); foreach (var department in currentDepartments) { if (department.DepartmentId == departmentId) { return(department); } } var dm = new DepartmentMember(); dm.DepartmentId = departmentId; dm.UserId = userId; dm.IsAdmin = false; dm.IsDisabled = false; dm.IsHidden = false; dm.IsActive = false; dm.IsDefault = false; _departmentMembersRepository.SaveOrUpdate(dm); _eventAggregator.SendMessage <DepartmentSettingsUpdateEvent>(new DepartmentSettingsUpdateEvent() { DepartmentId = d.DepartmentId }); InvalidateDepartmentUsersInCache(d.DepartmentId); return(dm); } return(null); }
/// <summary> /// 부서에 직원 소속 정보를 생성합니다. /// </summary> /// <param name="department">부서</param> /// <param name="user">사용자</param> /// <param name="employeeTitle">직책 정보</param> /// <returns></returns> public DepartmentMember CreateDepartmentMember(Department department, User user, EmployeeTitle employeeTitle) { department.ShouldNotBeNull("department"); user.ShouldNotBeNull("user"); DepartmentMember member; // 1. 이미 부서에 소속되어 있다면, 정보 갱신만 하고, 반환한다. if(IsDepartmentMember(department, user)) { if(log.IsInfoEnabled) log.Info("이미 부서에 소속된 직원이므로, 새로 생성하지 않고 기존 정보를 읽어 반환합니다. department={0}, user={1}", department, user); member = department.Members.FirstOrDefault(m => m.User.Equals(user)); // member = department.Members.Where(m => m.User.Equals(user)).FirstOrDefault(); if(member != null && member.EmployeeTitle != employeeTitle) { member.EmployeeTitle = employeeTitle; Repository<DepartmentMember>.SaveOrUpdate(member); } return member; } // 2. 새로운 부서 소속 정보를 생성하고, 저장한 후 반환한다. if(IsDebugEnabled) log.Debug(@"부서에 새로운 직원을 소속시킵니다. department={0}, user={1}, employeeTitle={2}", department.Id, user.Id, employeeTitle); var company = department.Company; Guard.Assert(company != null, @"해당 Company 정보를 찾을 수 없습니다. department=[{0}]", department); member = new DepartmentMember(department, user) { EmployeeTitle = employeeTitle }; return Repository<DepartmentMember>.SaveOrUpdate(member); }
protected static void BuildUserEntities() { // // Company // var company = new Company { Name = "리얼웹", Code = CompanyCode }; Repository <Company> .SaveOrUpdate(company); UnitOfWork.Current.TransactionalFlush(); // // Department // Department parent = null; foreach (var code in GetCodes("Dept", 5)) { var dept = new Department(company, code) { Name = "부서." + code }; if (parent != null) { dept.SetParent(parent); } Repository <Department> .SaveOrUpdate(dept); parent = dept; } UnitOfWork.Current.TransactionalFlush(); // // User // var i = 0; foreach (var code in GetCodes("User", 25)) { var user = new User(company, code, code) { Password = Password }; company.AddUser(user); user.Data = "동해물과 백두산이 마르고 닳도록, 하느님이 보우하사 우리나라 만세".Replicate(10); user.Blob = Encoding.UTF8.GetBytes(user.Data); user.ActivePeriod = (i++ % 2 == 0) ? new TimeRange(DateTime.Now.AddDays(-1), null) : new TimeRange(null, DateTime.Now.AddDays(1)); user.ActiveYearWeek = new YearAndWeek(2009, 1); user.PeriodTime = new PeriodTime { Period = new MonthRange(DateTime.Now), //DateTime.Now.GetRelativeMonthRange(1), YearWeek = new YearAndWeek(2009, 50) }; Repository <User> .SaveOrUpdate(user); } UnitOfWork.Current.TransactionalFlush(); // // DepartmentMember // var depts = Repository <Department> .FindAll(); var users = Repository <User> .FindAll(); foreach (var dept in depts) { foreach (var user in users) { var deptMember = new DepartmentMember(dept, user) { IsActive = true }; Repository <DepartmentMember> .SaveOrUpdate(deptMember); } } UnitOfWork.Current.TransactionalFlush(); }
public List <CommitteeMember> GetMemberAssociationsByPosition(Position associatedPosition, DepartmentMember member) { ICriteria criteria = NHibernateSessionManager.Instance.GetSession().CreateCriteria(typeof(CommitteeMember)) .Add(Expression.Eq("AssociatedPosition", associatedPosition)) .Add(Expression.Eq("DepartmentMember", member)); return(criteria.List <CommitteeMember>() as List <CommitteeMember>); }
public static List <CommitteeMember> GetByAssociationsPosition(Position associatedPosition, DepartmentMember member) { return(daoFactory.GetCommitteeMemberDao().GetMemberAssociationsByPosition(associatedPosition, member)); }
protected static void BuildUserEntities() { // // Company // var company = new Company { Name = "리얼웹", Code = CompanyCode }; Repository<Company>.SaveOrUpdate(company); UnitOfWork.Current.TransactionalFlush(); // // Department // Department parent = null; foreach(var code in GetCodes("Dept", 5)) { var dept = new Department(company, code) { Name = "부서." + code }; if(parent != null) dept.SetParent(parent); Repository<Department>.SaveOrUpdate(dept); parent = dept; } UnitOfWork.Current.TransactionalFlush(); // // User // var i = 0; foreach(var code in GetCodes("User", 25)) { var user = new User(company, code, code) { Password = Password }; company.AddUser(user); user.Data = "동해물과 백두산이 마르고 닳도록, 하느님이 보우하사 우리나라 만세".Replicate(10); user.Blob = Encoding.UTF8.GetBytes(user.Data); user.ActivePeriod = (i++ % 2 == 0) ? new TimeRange(DateTime.Now.AddDays(-1), null) : new TimeRange(null, DateTime.Now.AddDays(1)); user.ActiveYearWeek = new YearAndWeek(2009, 1); user.PeriodTime = new PeriodTime { Period = new MonthRange(DateTime.Now), //DateTime.Now.GetRelativeMonthRange(1), YearWeek = new YearAndWeek(2009, 50) }; Repository<User>.SaveOrUpdate(user); } UnitOfWork.Current.TransactionalFlush(); // // DepartmentMember // var depts = Repository<Department>.FindAll(); var users = Repository<User>.FindAll(); foreach(var dept in depts) { foreach(var user in users) { var deptMember = new DepartmentMember(dept, user) { IsActive = true }; Repository<DepartmentMember>.SaveOrUpdate(deptMember); } } UnitOfWork.Current.TransactionalFlush(); }
/// <summary> /// 부서-직원 소속 정보를 제거합니다. /// </summary> /// <param name="member"></param> /// <returns></returns> public bool DeleteDepartmentMember(DepartmentMember member) { member.ShouldNotBeNull("member"); if(log.IsDebugEnabled) log.Debug(@"부서-직원 소속 정보를 제거합니다. departmentMember=" + member); var department = member.Department; if(department != null) { department.Members.Remove(member); Session.SaveOrUpdate(department); } DeleteEntityTransactional(member); return true; }