Browse Source

Use propertyEntry.IsModified instead of the Equals method of the object.

pull/2652/head
maliming 7 years ago
parent
commit
3cc29f7ca6
  1. 3
      framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/EntityHistory/EntityHistoryHelper.cs
  2. 1
      framework/test/Volo.Abp.Auditing.Tests/Volo/Abp/Auditing/AbpAuditingTestBase.cs
  3. 26
      framework/test/Volo.Abp.Auditing.Tests/Volo/Abp/Auditing/App/Entities/AppEntityWithAuditedAndPropertyHasDisableAuditing.cs
  4. 2
      framework/test/Volo.Abp.Auditing.Tests/Volo/Abp/Auditing/App/EntityFrameworkCore/AbpAuditingTestDbContext.cs
  5. 19
      framework/test/Volo.Abp.Auditing.Tests/Volo/Abp/Auditing/Auditing_Tests.cs

3
framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/EntityHistory/EntityHistoryHelper.cs

@ -265,8 +265,7 @@ namespace Volo.Abp.EntityFrameworkCore.EntityHistory
}
}
var isModified = !(propertyEntry.OriginalValue?.Equals(propertyEntry.CurrentValue) ?? propertyEntry.CurrentValue == null);
if (isModified)
if (propertyEntry.IsModified)
{
return true;
}

1
framework/test/Volo.Abp.Auditing.Tests/Volo/Abp/Auditing/AbpAuditingTestBase.cs

@ -2,7 +2,6 @@
namespace Volo.Abp.Auditing
{
public class AbpAuditingTestBase : AbpIntegratedTest<AbpAuditingTestModule>
{
protected override void SetAbpApplicationCreationOptions(AbpApplicationCreationOptions options)

26
framework/test/Volo.Abp.Auditing.Tests/Volo/Abp/Auditing/App/Entities/AppEntityWithAuditedAndPropertyHasDisableAuditing.cs

@ -0,0 +1,26 @@
using System;
using Volo.Abp.Domain.Entities;
namespace Volo.Abp.Auditing.App.Entities
{
[Audited]
public class AppEntityWithAuditedAndPropertyHasDisableAuditing : AggregateRoot<Guid>
{
protected AppEntityWithAuditedAndPropertyHasDisableAuditing()
{
}
public AppEntityWithAuditedAndPropertyHasDisableAuditing(Guid id, string name, string name2)
: base(id)
{
Name = name;
Name2 = name2;
}
public string Name { get; set; }
[DisableAuditing]
public string Name2 { get; set; }
}
}

2
framework/test/Volo.Abp.Auditing.Tests/Volo/Abp/Auditing/App/EntityFrameworkCore/AbpAuditingTestDbContext.cs

@ -8,6 +8,8 @@ namespace Volo.Abp.Auditing.App.EntityFrameworkCore
{
public DbSet<AppEntityWithAudited> AppEntityWithAudited { get; set; }
public DbSet<AppEntityWithAuditedAndPropertyHasDisableAuditing> AppEntityWithAuditedAndPropertyHasDisableAuditing { get; set; }
public DbSet<AppEntityWithDisableAuditing> AppEntityWithDisableAuditing { get; set; }
public DbSet<AppEntityWithDisableAuditingAndPropertyHasAudited> AppEntityWithDisableAuditingAndPropertyHasAudited { get; set; }

19
framework/test/Volo.Abp.Auditing.Tests/Volo/Abp/Auditing/Auditing_Tests.cs

@ -1,4 +1,5 @@
using System;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection.Extensions;
@ -88,6 +89,24 @@ namespace Volo.Abp.Auditing
#pragma warning restore 4014
}
[Fact]
public virtual async Task Should_Not_Write_AuditLog_For_Property_That_Has_DisableAuditing_Attribute()
{
using (var scope = _auditingManager.BeginScope())
{
var repository = ServiceProvider.GetRequiredService<IBasicRepository<AppEntityWithAuditedAndPropertyHasDisableAuditing, Guid>>();
await repository.InsertAsync(new AppEntityWithAuditedAndPropertyHasDisableAuditing(Guid.NewGuid(), "test name", "test name2")).ConfigureAwait(false);
await scope.SaveAsync().ConfigureAwait(false);
}
#pragma warning disable 4014
_auditingStore.Received().SaveAsync(Arg.Is<AuditLogInfo>(x =>
x.EntityChanges.Count == 1 &&
!(x.EntityChanges[0].PropertyChanges.Any(p =>
p.PropertyName == nameof(AppEntityWithDisableAuditingAndPropertyHasAudited.Name2)))));
#pragma warning restore 4014
}
[Fact]
public virtual async Task Should_Not_Write_AuditLog_For_Entity_That_Has_DisableAuditing_Attribute()
{

Loading…
Cancel
Save