CS2-133: Fixed CRUD operations over Permissions

This commit is contained in:
Харченко Владимир 2021-12-17 12:38:34 +05:00
parent 17db1218cc
commit d94b2e685e
6 changed files with 19 additions and 35 deletions

View File

@ -4,5 +4,6 @@
{ {
public int Id { get; set; } public int Id { get; set; }
public string Name { get; set; } public string Name { get; set; }
public string Description { get; set; }
} }
} }

View File

@ -1,11 +0,0 @@
using System.Collections.Generic;
namespace AsbCloudApp.Data
{
public class PermissionInfoDto : IId
{
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
}
}

View File

@ -66,7 +66,6 @@ namespace AsbCloudInfrastructure
// admin crud services: // admin crud services:
services.AddTransient<ICrudService<WellDto>, CrudServiceBase<WellDto, Well>>(); services.AddTransient<ICrudService<WellDto>, CrudServiceBase<WellDto, Well>>();
services.AddTransient<ICrudService<TelemetryDto>, CrudServiceBase<TelemetryDto, Telemetry>>(); services.AddTransient<ICrudService<TelemetryDto>, CrudServiceBase<TelemetryDto, Telemetry>>();
services.AddTransient<ICrudService<PermissionInfoDto>, CrudServiceBase<PermissionInfoDto, Permission>>();
services.AddTransient<ICrudService<DrillParamsDto>, DrillParamsService>(); services.AddTransient<ICrudService<DrillParamsDto>, DrillParamsService>();
services.AddTransient<ICrudService<DepositDto>, CrudServiceBase<DepositDto, Deposit>>(); services.AddTransient<ICrudService<DepositDto>, CrudServiceBase<DepositDto, Deposit>>();
services.AddTransient<ICrudService<CompanyDto>, CrudServiceBase<CompanyDto, Company>>(); services.AddTransient<ICrudService<CompanyDto>, CrudServiceBase<CompanyDto, Company>>();

View File

@ -36,8 +36,18 @@ namespace AsbCloudInfrastructure.Services
public async Task<int> InsertRangeAsync(IEnumerable<PermissionDto> dtos, CancellationToken token) public async Task<int> InsertRangeAsync(IEnumerable<PermissionDto> dtos, CancellationToken token)
{ {
var entities = dtos.Select(Convert); foreach (var dto in dtos)
return (await cachePermission.InsertAsync(entities, token))?.Count()??0; {
var entity = Convert(dto);
var insertedEntity = cachePermission.Insert(entity);
cacheUserRolePermission.Insert(new RelationUserRolePermission()
{
IdPermission = insertedEntity.Id,
IdUserRole = dto.IdUserRole
});
}
return 1;
} }
public async Task<int> UpdateAsync(PermissionDto dto, CancellationToken token) public async Task<int> UpdateAsync(PermissionDto dto, CancellationToken token)
@ -48,10 +58,12 @@ namespace AsbCloudInfrastructure.Services
return 1; return 1;
} }
public Task<int> DeleteAsync(int idUserRole, int idPermission, CancellationToken token) public async Task<int> DeleteAsync(int idUserRole, int idPermission, CancellationToken token)
{ {
bool predicate(RelationUserRolePermission p) => p.IdUserRole == idUserRole && p.IdPermission == idPermission; bool predicate(RelationUserRolePermission p) => p.IdUserRole == idUserRole && p.IdPermission == idPermission;
return DeleteAsync(predicate, token); await DeleteAsync(predicate, token);
cachePermission.Remove(p => p.Id == idPermission);
return 1;
} }
public Task<int> DeleteAllByRoleAsync(int idUserRole, CancellationToken token) public Task<int> DeleteAllByRoleAsync(int idUserRole, CancellationToken token)

View File

@ -46,14 +46,14 @@ namespace AsbCloudWebApi.Controllers
public async Task<IActionResult> InsertRangeAsync(IEnumerable<PermissionDto> dtos, public async Task<IActionResult> InsertRangeAsync(IEnumerable<PermissionDto> dtos,
CancellationToken token = default) CancellationToken token = default)
{ {
var result = await permissionService.InsertRangeAsync(dtos, token); var result =await permissionService.InsertRangeAsync(dtos, token);
return Ok(result); return Ok(result);
} }
/// <summary> /// <summary>
/// Обновляет разрешение для роли /// Обновляет разрешение для роли
/// </summary> /// </summary>
/// <param name="dto"> Объект разрешения для справочника </param> /// <param name="dto"> Объект разрешения </param>
/// <param name="token"> Токен отмены задачи </param> /// <param name="token"> Токен отмены задачи </param>
/// <returns></returns> /// <returns></returns>
[HttpPut] [HttpPut]

View File

@ -1,17 +0,0 @@
using AsbCloudApp.Data;
using AsbCloudApp.Services;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
namespace AsbCloudWebApi.Controllers
{
[Route("api/admin/permissionInfo")]
[ApiController]
[Authorize]
public class AdminPermissionInfoController : CrudController<PermissionInfoDto, ICrudService<PermissionInfoDto>>
{
public AdminPermissionInfoController(ICrudService<PermissionInfoDto> permissionInfoService)
:base(permissionInfoService)
{}
}
}