Browse Source

Added ResetToDefaultAsync action

pull/14514/head
malik masis 4 years ago
parent
commit
a3f37a7d73
  1. 2
      modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo/Abp/FeatureManagement/IFeatureAppService.cs
  2. 10
      modules/feature-management/src/Volo.Abp.FeatureManagement.Application/Volo/Abp/FeatureManagement/FeatureAppService.cs
  3. 3
      modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/IFeatureValueRepository.cs
  4. 8
      modules/feature-management/src/Volo.Abp.FeatureManagement.EntityFrameworkCore/Volo/Abp/FeatureManagement/EntityFrameworkCore/EfCoreFeatureValueRepository.cs
  5. 5
      modules/feature-management/src/Volo.Abp.FeatureManagement.HttpApi/Volo/Abp/FeatureManagement/FeaturesController.cs
  6. 9
      modules/feature-management/src/Volo.Abp.FeatureManagement.MongoDB/Volo/Abp/FeatureManagement/MongoDB/MongoFeatureValueRepository.cs

2
modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo/Abp/FeatureManagement/IFeatureAppService.cs

@ -9,4 +9,6 @@ public interface IFeatureAppService : IApplicationService
Task<GetFeatureListResultDto> GetAsync([NotNull] string providerName, string providerKey);
Task UpdateAsync([NotNull] string providerName, string providerKey, UpdateFeaturesDto input);
Task ResetToDefaultAsync();
}

10
modules/feature-management/src/Volo.Abp.FeatureManagement.Application/Volo/Abp/FeatureManagement/FeatureAppService.cs

@ -15,15 +15,18 @@ public class FeatureAppService : FeatureManagementAppServiceBase, IFeatureAppSer
{
protected FeatureManagementOptions Options { get; }
protected IFeatureManager FeatureManager { get; }
protected IFeatureValueRepository FeatureValueRepository { get; }
protected IFeatureDefinitionManager FeatureDefinitionManager { get; }
public FeatureAppService(IFeatureManager featureManager,
IFeatureDefinitionManager featureDefinitionManager,
IOptions<FeatureManagementOptions> options)
IOptions<FeatureManagementOptions> options,
IFeatureValueRepository featureValueRepository)
{
FeatureManager = featureManager;
FeatureDefinitionManager = featureDefinitionManager;
Options = options.Value;
FeatureValueRepository = featureValueRepository;
}
public virtual async Task<GetFeatureListResultDto> GetAsync([NotNull] string providerName, string providerKey)
@ -135,4 +138,9 @@ public class FeatureAppService : FeatureManagementAppServiceBase, IFeatureAppSer
await AuthorizationService.CheckAsync(policyName);
}
public virtual async Task ResetToDefaultAsync()
{
await FeatureValueRepository.DeleteAsync();
}
}

3
modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/IFeatureValueRepository.cs

@ -24,4 +24,7 @@ public interface IFeatureValueRepository : IBasicRepository<FeatureValue, Guid>
string providerName,
string providerKey,
CancellationToken cancellationToken = default);
Task DeleteAsync(
CancellationToken cancellationToken = default);
}

8
modules/feature-management/src/Volo.Abp.FeatureManagement.EntityFrameworkCore/Volo/Abp/FeatureManagement/EntityFrameworkCore/EfCoreFeatureValueRepository.cs

@ -4,6 +4,7 @@ using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;
using Polly;
using Volo.Abp.Domain.Repositories.EntityFrameworkCore;
using Volo.Abp.EntityFrameworkCore;
@ -49,4 +50,11 @@ public class EfCoreFeatureValueRepository : EfCoreRepository<IFeatureManagementD
s => s.ProviderName == providerName && s.ProviderKey == providerKey
).ToListAsync(GetCancellationToken(cancellationToken));
}
public async Task DeleteAsync(CancellationToken cancellationToken = default)
{
var entities = await (await GetDbSetAsync()).ToListAsync(GetCancellationToken(cancellationToken));
(await GetDbSetAsync()).RemoveRange(entities);
await (await GetDbContextAsync()).SaveChangesAsync(cancellationToken);
}
}

5
modules/feature-management/src/Volo.Abp.FeatureManagement.HttpApi/Volo/Abp/FeatureManagement/FeaturesController.cs

@ -27,4 +27,9 @@ public class FeaturesController : AbpControllerBase, IFeatureAppService
{
return FeatureAppService.UpdateAsync(providerName, providerKey, input);
}
public Task ResetToDefaultAsync()
{
return FeatureAppService.ResetToDefaultAsync();
}
}

9
modules/feature-management/src/Volo.Abp.FeatureManagement.MongoDB/Volo/Abp/FeatureManagement/MongoDB/MongoFeatureValueRepository.cs

@ -1,5 +1,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Dynamic.Core;
using System.Threading;
using System.Threading.Tasks;
using MongoDB.Driver;
@ -49,4 +51,11 @@ public class MongoFeatureValueRepository :
.Where(s => s.ProviderName == providerName && s.ProviderKey == providerKey)
.ToListAsync(GetCancellationToken(cancellationToken));
}
public virtual async Task DeleteAsync(CancellationToken cancellationToken = default)
{
//TODO check it again
var entities = await AsyncExecuter.ToListAsync((await GetQueryableAsync()).Select(p => p.Id));
await DeleteManyAsync(entities, true, GetCancellationToken(cancellationToken));
}
}

Loading…
Cancel
Save