protected override void PreDeleteInsideTransaction(BusinessContext context) { base.PreDeleteInsideTransaction(context); DirectoryOrganizationalUnitEntity entity = (DirectoryOrganizationalUnitEntity)BusinessManager.Load(DirectoryOrganizationalUnitEntity.ClassName, context.GetTargetPrimaryKeyId().Value); if (entity.ParentId == null) { throw new AccessDeniedException("Can not delete root."); } // TODO: Child Business Unit // TODO: Delete Users // TODO: Delete Team // TODO: Delete Role // Remove BusinessUnit From Principal DirectoryManager.DeletePrincipal(context.GetTargetPrimaryKeyId().Value); // Remove BusinessUnitScopeId From Principal DirectoryManager.DeletePrincipal((PrimaryKeyId)entity.OrganizationalUnitScopeId); }
/// <summary> /// Compares the specified x unit. /// </summary> /// <param name="xUnit">The x unit.</param> /// <param name="yUnit">The y unit.</param> /// <returns></returns> protected virtual int Compare(DirectoryOrganizationalUnitEntity xUnit, DirectoryOrganizationalUnitEntity yUnit) { // Root Should be First if (xUnit == yUnit) { return(0); } if (xUnit.ParentId == null) { return(-1); } if (yUnit.ParentId == null) { return(1); } if (xUnit.OutlineLevel == yUnit.OutlineLevel) { if (xUnit.ParentId == yUnit.ParentId) { return(xUnit.Name.CompareTo(yUnit.Name)); } else { return(Compare(this.InnerDictionary[xUnit.ParentId.Value], this.InnerDictionary[yUnit.ParentId.Value])); } } else if (xUnit.OutlineLevel > yUnit.OutlineLevel) { DirectoryOrganizationalUnitEntity xUnitParent = xUnit; for (int index = 0; index < (xUnit.OutlineLevel - yUnit.OutlineLevel); index++) { xUnitParent = this.InnerDictionary[xUnitParent.ParentId.Value]; } int iCompareResult = Compare(xUnitParent, yUnit); return(iCompareResult == 0?1:iCompareResult); } else if (xUnit.OutlineLevel < yUnit.OutlineLevel) { DirectoryOrganizationalUnitEntity yUnitParent = yUnit; for (int index = 0; index < (yUnit.OutlineLevel - xUnit.OutlineLevel); index++) { yUnitParent = this.InnerDictionary[yUnitParent.ParentId.Value]; } int iCompareResult = Compare(xUnit, yUnitParent); return(iCompareResult == 0 ? -1 : iCompareResult); } return(0); }
/// <summary> /// Creates the entity object. /// </summary> /// <param name="metaClassName">Name of the meta class.</param> /// <param name="primaryKeyId">The primary key id.</param> /// <returns></returns> protected override EntityObject CreateEntityObject(string metaClassName, PrimaryKeyId?primaryKeyId) { if (metaClassName == DirectoryOrganizationalUnitEntity.ClassName) { DirectoryOrganizationalUnitEntity retVal = new DirectoryOrganizationalUnitEntity(); retVal.PrimaryKeyId = primaryKeyId; return(retVal); } return(base.CreateEntityObject(metaClassName, primaryKeyId)); }
/// <summary> /// Creates the entity object. /// </summary> /// <param name="metaClassName">Name of the meta class.</param> /// <param name="primaryKeyId">The primary key id.</param> /// <returns></returns> protected override EntityObject CreateEntityObject(string metaClassName, PrimaryKeyId? primaryKeyId) { if (metaClassName == DirectoryOrganizationalUnitEntity.ClassName) { DirectoryOrganizationalUnitEntity retVal = new DirectoryOrganizationalUnitEntity(); retVal.PrimaryKeyId = primaryKeyId; return retVal; } return base.CreateEntityObject(metaClassName, primaryKeyId); }
protected override void PreCreate(BusinessContext context) { base.PreCreate(context); // Check ParentId should be not null DirectoryOrganizationalUnitEntity target = ((DirectoryOrganizationalUnitEntity)context.Request.Target); if (target.ParentId == null) { throw new ArgumentNullException("target.ParentId"); } }
protected override void Create(BusinessContext context) { base.Create(context); // Append to tree DirectoryOrganizationalUnitEntity target = ((DirectoryOrganizationalUnitEntity)context.Request.Target); BusinessObject newElement = (BusinessObject)context.Items[MetaObjectRequestHandler.SourceMetaObjectKey]; BusinessObject parent = (BusinessObject)MetaObjectActivator.CreateInstance(DirectoryOrganizationalUnitEntity.ClassName, target.ParentId.Value); TreeNode node = parent.GetService <TreeService>().AppendChild(newElement); parent.Save(); }
protected override void PreCreateInsideTransaction(BusinessContext context) { base.PreCreateInsideTransaction(context); // Update Icon from parent DirectoryOrganizationalUnitEntity target = ((DirectoryOrganizationalUnitEntity)context.Request.Target); if (target.Icon == null) { // Load Icon From Parent DirectoryOrganizationalUnitEntity parent = (DirectoryOrganizationalUnitEntity)BusinessManager.Load(DirectoryOrganizationalUnitEntity.ClassName, target.ParentId.Value); target.Icon = new FileInfo(parent.Icon.Name, parent.Icon.OpenRead()); } }
protected override void PostUpdateInsideTransaction(BusinessContext context) { base.PostUpdateInsideTransaction(context); // Principal if (context.Request.Target.Properties.Contains(DirectoryOrganizationalUnitEntity.FieldName)) { DirectoryOrganizationalUnitEntity entity = (DirectoryOrganizationalUnitEntity)BusinessManager.Load(DirectoryOrganizationalUnitEntity.ClassName, context.GetTargetPrimaryKeyId().Value); DirectoryManager.UpdatePrincipal(context.GetTargetPrimaryKeyId().Value, (string)context.Request.Target[DirectoryOrganizationalUnitEntity.FieldName]); DirectoryManager.UpdatePrincipal((PrimaryKeyId)entity.OrganizationalUnitScopeId, (string)context.Request.Target[DirectoryOrganizationalUnitEntity.FieldName]); } }
/// <summary> /// Initializes a new instance of the <see cref="MoveTreeNodeRequest"/> class. /// </summary> /// <param name="target">The target.</param> public MoveTreeNodeRequest(DirectoryOrganizationalUnitEntity target) : base(DirectoryOrganizationalUnitMethod.Move, target) { }
/// <summary> /// Initializes a new instance of the <see cref="MoveTreeNodeRequest"/> class. /// </summary> /// <param name="target">The target.</param> public MoveTreeNodeRequest(DirectoryOrganizationalUnitEntity target) : base(DirectoryOrganizationalUnitMethod.Move, target) { }