forked from ddrilling/AsbCloudServer
#7987467 Исправления
This commit is contained in:
parent
ff16974312
commit
07fe9fcc5a
@ -8,20 +8,16 @@ namespace AsbCloudApp.Data
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public class ProcessMapDto : IId, IWellRelated
|
public class ProcessMapDto : IId, IWellRelated
|
||||||
{
|
{
|
||||||
/// <summary>
|
|
||||||
/// <inheritdoc/>
|
/// <inheritdoc/>
|
||||||
/// </summary>
|
|
||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// <inheritdoc/>
|
/// <inheritdoc/>
|
||||||
/// </summary>
|
|
||||||
public int IdWell { get; set; }
|
public int IdWell { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Id пользователя
|
/// Id пользователя, поле заполнять не нужно, подставляется автоматически
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public int IdUser { get; set; }
|
public int? IdUser { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Тип секции
|
/// Тип секции
|
||||||
|
@ -129,7 +129,7 @@ namespace AsbCloudInfrastructure
|
|||||||
services.AddTransient<IDetectedOperationService, DetectedOperationService>();
|
services.AddTransient<IDetectedOperationService, DetectedOperationService>();
|
||||||
services.AddTransient<ISubsystemOperationTimeService, SubsystemOperationTimeService>();
|
services.AddTransient<ISubsystemOperationTimeService, SubsystemOperationTimeService>();
|
||||||
services.AddTransient<IScheduleRepository, ScheduleRepository>();
|
services.AddTransient<IScheduleRepository, ScheduleRepository>();
|
||||||
services.AddTransient<IRepositoryWellRelated<OperationValueDto>, CrudWellRelatedServiceBase<OperationValueDto, OperationValue>>();
|
services.AddTransient<IRepositoryWellRelated<OperationValueDto>, CrudWellRelatedRepositoryBase<OperationValueDto, OperationValue>>();
|
||||||
services.AddTransient<IUserSettingsRepository, UserSettingsRepository>();
|
services.AddTransient<IUserSettingsRepository, UserSettingsRepository>();
|
||||||
services.AddTransient<IWellFinalDocumentsService, WellFinalDocumentsService>();
|
services.AddTransient<IWellFinalDocumentsService, WellFinalDocumentsService>();
|
||||||
services.AddTransient<IFileCategoryService, FileCategoryService>();
|
services.AddTransient<IFileCategoryService, FileCategoryService>();
|
||||||
|
@ -11,14 +11,14 @@ using System.Threading.Tasks;
|
|||||||
namespace AsbCloudInfrastructure.Repository
|
namespace AsbCloudInfrastructure.Repository
|
||||||
{
|
{
|
||||||
#nullable enable
|
#nullable enable
|
||||||
public class CrudWellRelatedCacheServiceBase<TDto, TEntity> : CrudCacheRepositoryBase<TDto, TEntity>, IRepositoryWellRelated<TDto>
|
public class CrudWellRelatedCacheRepositoryBase<TDto, TEntity> : CrudCacheRepositoryBase<TDto, TEntity>, IRepositoryWellRelated<TDto>
|
||||||
where TDto : AsbCloudApp.Data.IId, AsbCloudApp.Data.IWellRelated
|
where TDto : AsbCloudApp.Data.IId, AsbCloudApp.Data.IWellRelated
|
||||||
where TEntity : class, IId, IWellRelated
|
where TEntity : class, IId, IWellRelated
|
||||||
{
|
{
|
||||||
public CrudWellRelatedCacheServiceBase(IAsbCloudDbContext context, IMemoryCache memoryCache)
|
public CrudWellRelatedCacheRepositoryBase(IAsbCloudDbContext context, IMemoryCache memoryCache)
|
||||||
: base(context, memoryCache) { }
|
: base(context, memoryCache) { }
|
||||||
|
|
||||||
public CrudWellRelatedCacheServiceBase(IAsbCloudDbContext context, IMemoryCache memoryCache, Func<DbSet<TEntity>, IQueryable<TEntity>> makeQuery)
|
public CrudWellRelatedCacheRepositoryBase(IAsbCloudDbContext context, IMemoryCache memoryCache, Func<DbSet<TEntity>, IQueryable<TEntity>> makeQuery)
|
||||||
: base(context, memoryCache, makeQuery) { }
|
: base(context, memoryCache, makeQuery) { }
|
||||||
|
|
||||||
public async Task<IEnumerable<TDto>?> GetByIdWellAsync(int idWell, CancellationToken token)
|
public async Task<IEnumerable<TDto>?> GetByIdWellAsync(int idWell, CancellationToken token)
|
@ -10,14 +10,14 @@ using System.Threading.Tasks;
|
|||||||
namespace AsbCloudInfrastructure.Repository
|
namespace AsbCloudInfrastructure.Repository
|
||||||
{
|
{
|
||||||
#nullable enable
|
#nullable enable
|
||||||
public class CrudWellRelatedServiceBase<TDto, TEntity> : CrudRepositoryBase<TDto, TEntity>, IRepositoryWellRelated<TDto>
|
public class CrudWellRelatedRepositoryBase<TDto, TEntity> : CrudRepositoryBase<TDto, TEntity>, IRepositoryWellRelated<TDto>
|
||||||
where TDto : AsbCloudApp.Data.IId, AsbCloudApp.Data.IWellRelated
|
where TDto : AsbCloudApp.Data.IId, AsbCloudApp.Data.IWellRelated
|
||||||
where TEntity : class, IId, IWellRelated
|
where TEntity : class, IId, IWellRelated
|
||||||
{
|
{
|
||||||
public CrudWellRelatedServiceBase(IAsbCloudDbContext context)
|
public CrudWellRelatedRepositoryBase(IAsbCloudDbContext context)
|
||||||
: base(context) { }
|
: base(context) { }
|
||||||
|
|
||||||
public CrudWellRelatedServiceBase(IAsbCloudDbContext context, Func<DbSet<TEntity>, IQueryable<TEntity>> makeQuery)
|
public CrudWellRelatedRepositoryBase(IAsbCloudDbContext context, Func<DbSet<TEntity>, IQueryable<TEntity>> makeQuery)
|
||||||
: base(context, makeQuery) { }
|
: base(context, makeQuery) { }
|
||||||
|
|
||||||
public async Task<IEnumerable<TDto>?> GetByIdWellAsync(int idWell, CancellationToken token)
|
public async Task<IEnumerable<TDto>?> GetByIdWellAsync(int idWell, CancellationToken token)
|
@ -12,7 +12,7 @@ using System.Threading.Tasks;
|
|||||||
namespace AsbCloudInfrastructure.Repository
|
namespace AsbCloudInfrastructure.Repository
|
||||||
{
|
{
|
||||||
#nullable enable
|
#nullable enable
|
||||||
public class ProcessMapRepository : CrudWellRelatedServiceBase<ProcessMapDto, ProcessMap>,
|
public class ProcessMapRepository : CrudWellRelatedRepositoryBase<ProcessMapDto, ProcessMap>,
|
||||||
IProcessMapRepository
|
IProcessMapRepository
|
||||||
{
|
{
|
||||||
private readonly IWellService wellService;
|
private readonly IWellService wellService;
|
||||||
|
@ -11,7 +11,7 @@ using System.Threading.Tasks;
|
|||||||
namespace AsbCloudInfrastructure.Repository
|
namespace AsbCloudInfrastructure.Repository
|
||||||
{
|
{
|
||||||
#nullable enable
|
#nullable enable
|
||||||
public class ScheduleRepository : CrudWellRelatedServiceBase<ScheduleDto, Schedule>, IScheduleRepository
|
public class ScheduleRepository : CrudWellRelatedRepositoryBase<ScheduleDto, Schedule>, IScheduleRepository
|
||||||
{
|
{
|
||||||
private readonly IWellService wellService;
|
private readonly IWellService wellService;
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@ using System.Linq;
|
|||||||
|
|
||||||
namespace AsbCloudInfrastructure.Repository
|
namespace AsbCloudInfrastructure.Repository
|
||||||
{
|
{
|
||||||
public class SetpointsRequestRepository : CrudWellRelatedCacheServiceBase<SetpointsRequestDto, SetpointsRequest>
|
public class SetpointsRequestRepository : CrudWellRelatedCacheRepositoryBase<SetpointsRequestDto, SetpointsRequest>
|
||||||
{
|
{
|
||||||
private readonly IWellService wellService;
|
private readonly IWellService wellService;
|
||||||
|
|
||||||
|
@ -11,6 +11,7 @@ using System.Threading.Tasks;
|
|||||||
// For more information on enabling Web API for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860
|
// For more information on enabling Web API for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860
|
||||||
namespace AsbCloudWebApi.Controllers
|
namespace AsbCloudWebApi.Controllers
|
||||||
{
|
{
|
||||||
|
#nullable enable
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// CRUD контроллер для админки.
|
/// CRUD контроллер для админки.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -55,7 +56,7 @@ namespace AsbCloudWebApi.Controllers
|
|||||||
/// <returns>запись</returns>
|
/// <returns>запись</returns>
|
||||||
[HttpGet("{id}")]
|
[HttpGet("{id}")]
|
||||||
[Permission]
|
[Permission]
|
||||||
public virtual async Task<ActionResult<T>> GetAsync(int id, CancellationToken token)
|
public virtual async Task<ActionResult<T?>> GetOrDefaultAsync(int id, CancellationToken token)
|
||||||
{
|
{
|
||||||
var result = await service.GetOrDefaultAsync(id, token).ConfigureAwait(false);
|
var result = await service.GetOrDefaultAsync(id, token).ConfigureAwait(false);
|
||||||
return Ok(result);
|
return Ok(result);
|
||||||
@ -139,4 +140,5 @@ namespace AsbCloudWebApi.Controllers
|
|||||||
return Ok(result);
|
return Ok(result);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#nullable disable
|
||||||
}
|
}
|
||||||
|
@ -10,6 +10,7 @@ using System.Threading.Tasks;
|
|||||||
// For more information on enabling Web API for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860
|
// For more information on enabling Web API for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860
|
||||||
namespace AsbCloudWebApi.Controllers
|
namespace AsbCloudWebApi.Controllers
|
||||||
{
|
{
|
||||||
|
#nullable enable
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// CRUD контроллер dto связных со скважиной для админки.
|
/// CRUD контроллер dto связных со скважиной для админки.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -75,14 +76,17 @@ namespace AsbCloudWebApi.Controllers
|
|||||||
/// <param name="token"></param>
|
/// <param name="token"></param>
|
||||||
/// <returns>запись</returns>
|
/// <returns>запись</returns>
|
||||||
[HttpGet("{id}")]
|
[HttpGet("{id}")]
|
||||||
public override async Task<ActionResult<T>> GetAsync(int id, CancellationToken token)
|
public override async Task<ActionResult<T?>> GetOrDefaultAsync(int id, CancellationToken token)
|
||||||
{
|
{
|
||||||
var actionResult = await base.GetAsync(id, token);
|
var actionResult = await base.GetOrDefaultAsync(id, token);
|
||||||
// TODO: this can be nullref
|
if(actionResult.Result is OkObjectResult okResult)
|
||||||
var result = actionResult.Value;
|
{
|
||||||
if (!await UserHasAccesToWellAsync(result.IdWell, token))
|
if (okResult.Value is IWellRelated wellRelated)
|
||||||
return Forbid();
|
if (!await UserHasAccesToWellAsync(wellRelated.IdWell, token))
|
||||||
return Ok(result);
|
return Forbid();
|
||||||
|
}
|
||||||
|
|
||||||
|
return actionResult;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -157,4 +161,5 @@ namespace AsbCloudWebApi.Controllers
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#nullable disable
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user