public bool Enroll(string user, long structure, long container, string roleType) { var userObj = Get(_dbContext, user); if (userObj == null) throw new ArgumentException("\"user\" is a invalid argument"); var containerObj = ContainerManager.Get(_dbContext, container); if (containerObj == null) throw new ArgumentException( "\"structure\" or \"containerPrototype\" or \"container\" is a invalid argument"); var roleTypeObj = RoleTypeManager.Get(_dbContext, structure, roleType); if (roleTypeObj == null) throw new ArgumentException("\"structure\" or \"roleType\" is a invalid argument"); var enroll = new Enroll() { User = userObj, Container = containerObj, RoleType = roleTypeObj }; _dbContext.Enrolls.Add(enroll); var changes = _dbContext.SaveChanges() != 0; if (changes) InvokeOnEnrollUser(null); return changes; }
private void InvokeOnEnrollUser(Enroll enroll) { var eventArgs = new EnrollEventArgs(enroll, enroll.Container); if (_onEnrollUser != null) try { _onEnrollUser(this, eventArgs); }catch(Exception e) { DataBaseManager.Logger.Log(String.Format("InvokeOnEnrollUser fail - {0}", e.Message)); } }
public bool Enroll(string user, long structure, long container, string roleType, string password = null) { var userObj = Get(user); var containerObj = _db.Container.Get(container); var roleTypeObj = _db.RoleType.Get(structure, roleType); if (!ExisteRole(containerObj, roleTypeObj)) return false; //TODO throw exception var pass = _db.DbContext.EnrollPassWords.Find(container, roleType, structure); if (pass != null) if (password == null || pass.Credential != AuthenticationManager.EncryptPassword(password)) return false; var enroll = _db.DbContext.Enrolls.Find(user, container, roleType, structure); if (enroll != null) { if (!enroll.Inherited) return false; //TODO throw exception enroll.Inherited = false; }else { enroll = new Enroll() { User = userObj, Container = containerObj, RoleType = roleTypeObj, Inherited = false, InheritedCount = 0 }; _db.DbContext.Enrolls.Add(enroll); InvokeOnEnrollUser(enroll); } InheritedEnrollChilds(userObj, containerObj, roleTypeObj); InheritedEnrollParents(userObj, containerObj.Parent, roleTypeObj); return _db.DbContext.SaveChanges() != 0; }
private bool EnrollInherited(User user, Container container, RoleType roleType) { var enroll = _db.DbContext.Enrolls.Find(user.Name, container.Id, roleType.Name, container.Type.StructureId); if (enroll != null) { enroll.InheritedCount += 1; return true; } enroll = new Enroll() { User = user, Container = container, RoleType = roleType, Inherited = true, InheritedCount = 1 }; _db.DbContext.Enrolls.Add(enroll); InvokeOnEnrollUser(enroll); return true; }
public EnrollEventArgs(Enroll enroll, Container container) { Enroll = enroll; Container = container; }