private static void RepositoryDataProvider_Inserting(object sender, EntityCUDEventArgs e)
        {
            var dp = sender as RepositoryDataProvider;

            if (dp.Repository.EntityMeta.GetIsMultiTenancyEnabled())
            {
                TenantAwareEntityExtension.SetTenantId(
                    e.Entity,
                    long.Parse(TenantContext.TenantId.Value ?? "0")
                    );
            }
        }
Exemplo n.º 2
0
        private static void RepositoryDataProvider_Inserting(object sender, EntityCUDEventArgs e)
        {
            var dp = sender as RepositoryDataProvider;

            if (dp.Repository.EntityMeta.GetIsMultiTenancyEnabled())
            {
                TenantAwareEntityExtension.SetTenantId(
                    e.Entity,
                    MultiTenancyUtility.GetTenantId()
                    );
            }
        }
Exemplo n.º 3
0
        private static void RepositoryDataProvider_Deleting(object sender, EntityCUDEventArgs e)
        {
            var dp = sender as RepositoryDataProvider;

            if (dp.Repository.EntityMeta.IsPhantomEnabled)
            {
                var entity = e.Entity;

                //删除数据的主逻辑变为修改 IsPhantom
                EntityPhantomExtension.SetIsPhantom(entity, true);

                //然后调用 DataSaver 来保存数据。(不直接使用 Sql 语句,因为这里并不一定是使用 RDb 作为持久层。)
                dp.DataSaver.UpdateToPersistence(entity);

                //由于删除后的实体的状态会变为‘New’,所以需要把这个字段的值重置。
                entity.ResetProperty(EntityPhantomExtension.IsPhantomProperty);

                //不再使用默认的删除逻辑。
                e.Cancel = true;
            }
        }