/// <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 == CustomizationProfileUserEntity.ClassName) { CustomizationProfileUserEntity retVal = new CustomizationProfileUserEntity(); 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 == CustomizationProfileUserEntity.ClassName) { CustomizationProfileUserEntity retVal = new CustomizationProfileUserEntity(); retVal.PrimaryKeyId = primaryKeyId; return retVal; } return base.CreateEntityObject(metaClassName, primaryKeyId); }
/// <summary> /// Predelete inside transaction. /// </summary> /// <param name="context">The context.</param> protected override void PreDeleteInsideTransaction(BusinessContext context) { base.PreDeleteInsideTransaction(context); CustomizationProfileUserEntity entity = (CustomizationProfileUserEntity)BusinessManager.Load(CustomizationProfileUserEntity.ClassName, context.GetTargetPrimaryKeyId().Value); if (entity != null) { DataCache.RemoveByUser(entity.PrincipalId.ToString()); } }
/// <summary> /// Creates the specified context. /// </summary> /// <param name="context">The context.</param> protected override void Create(BusinessContext context) { CustomizationProfileUserEntity newEntity = (CustomizationProfileUserEntity)context.Request.Target; if (newEntity.ProfileId > 0) { base.Create(context); } else // for default profile we don't need to create a new record { context.SetResponse(new CreateResponse(PrimaryKeyId.Empty)); } }
protected override void PreCreateInsideTransaction(BusinessContext context) { base.PreCreateInsideTransaction(context); CustomizationProfileUserEntity newEntity = (CustomizationProfileUserEntity)context.Request.Target; // OZ: нужна уникальность по PrincipalId. foreach (EntityObject item in BusinessManager.List(CustomizationProfileUserEntity.ClassName, new FilterElement[] { FilterElement.EqualElement(CustomizationProfileUserEntity.FieldPrincipalId, newEntity.PrincipalId) })) { BusinessManager.Delete(item); } }
/// <summary> /// Postcreate inside transaction. /// </summary> /// <param name="context">The context.</param> protected override void PostCreateInsideTransaction(BusinessContext context) { base.PostCreateInsideTransaction(context); int userId = (int)(PrimaryKeyId)context.Request.Target.Properties[CustomizationProfileUserEntity.FieldPrincipalId].Value; // New profile defines new Left Menu so we should empty cache. DataCache.RemoveByUser(userId.ToString()); // Check WorkspacePersonalization flag in profile and clear user settings for dashboards if the value is False. CustomizationProfileUserEntity profileUserEntity = (CustomizationProfileUserEntity)context.Request.Target; PrimaryKeyId profileId = profileUserEntity.ProfileId; CustomizationProfileEntity profileEntity = (CustomizationProfileEntity)BusinessManager.Load(CustomizationProfileEntity.ClassName, profileId); if (!profileEntity.WorkspacePersonalization) { FilterElementCollection filters = new FilterElementCollection(); filters.Add(FilterElement.EqualElement(CustomPageEntity.FieldUserId, userId)); foreach (EntityObject page in BusinessManager.List(CustomPageEntity.ClassName, filters.ToArray())) BusinessManager.Delete(page); } }