diff --git a/AsbCloudApp/Data/ProcessMapDto.cs b/AsbCloudApp/Data/ProcessMapDto.cs
index aae1ba2e..72990b03 100644
--- a/AsbCloudApp/Data/ProcessMapDto.cs
+++ b/AsbCloudApp/Data/ProcessMapDto.cs
@@ -8,20 +8,16 @@ namespace AsbCloudApp.Data
///
public class ProcessMapDto : IId, IWellRelated
{
- ///
///
- ///
public int Id { get; set; }
- ///
///
- ///
public int IdWell { get; set; }
///
- /// Id пользователя
+ /// Id пользователя, поле заполнять не нужно, подставляется автоматически
///
- public int IdUser { get; set; }
+ public int? IdUser { get; set; }
///
/// Тип секции
diff --git a/AsbCloudInfrastructure/DependencyInjection.cs b/AsbCloudInfrastructure/DependencyInjection.cs
index e5578bfe..34311da8 100644
--- a/AsbCloudInfrastructure/DependencyInjection.cs
+++ b/AsbCloudInfrastructure/DependencyInjection.cs
@@ -129,7 +129,7 @@ namespace AsbCloudInfrastructure
services.AddTransient();
services.AddTransient();
services.AddTransient();
- services.AddTransient, CrudWellRelatedServiceBase>();
+ services.AddTransient, CrudWellRelatedRepositoryBase>();
services.AddTransient();
services.AddTransient();
services.AddTransient();
diff --git a/AsbCloudInfrastructure/Repository/CrudWellRelatedCacheServiceBase.cs b/AsbCloudInfrastructure/Repository/CrudWellRelatedCacheRepositoryBase.cs
similarity index 76%
rename from AsbCloudInfrastructure/Repository/CrudWellRelatedCacheServiceBase.cs
rename to AsbCloudInfrastructure/Repository/CrudWellRelatedCacheRepositoryBase.cs
index 9ac2c8b7..c392426f 100644
--- a/AsbCloudInfrastructure/Repository/CrudWellRelatedCacheServiceBase.cs
+++ b/AsbCloudInfrastructure/Repository/CrudWellRelatedCacheRepositoryBase.cs
@@ -11,14 +11,14 @@ using System.Threading.Tasks;
namespace AsbCloudInfrastructure.Repository
{
#nullable enable
- public class CrudWellRelatedCacheServiceBase : CrudCacheRepositoryBase, IRepositoryWellRelated
+ public class CrudWellRelatedCacheRepositoryBase : CrudCacheRepositoryBase, IRepositoryWellRelated
where TDto : AsbCloudApp.Data.IId, AsbCloudApp.Data.IWellRelated
where TEntity : class, IId, IWellRelated
{
- public CrudWellRelatedCacheServiceBase(IAsbCloudDbContext context, IMemoryCache memoryCache)
+ public CrudWellRelatedCacheRepositoryBase(IAsbCloudDbContext context, IMemoryCache memoryCache)
: base(context, memoryCache) { }
- public CrudWellRelatedCacheServiceBase(IAsbCloudDbContext context, IMemoryCache memoryCache, Func, IQueryable> makeQuery)
+ public CrudWellRelatedCacheRepositoryBase(IAsbCloudDbContext context, IMemoryCache memoryCache, Func, IQueryable> makeQuery)
: base(context, memoryCache, makeQuery) { }
public async Task?> GetByIdWellAsync(int idWell, CancellationToken token)
diff --git a/AsbCloudInfrastructure/Repository/CrudWellRelatedServiceBase.cs b/AsbCloudInfrastructure/Repository/CrudWellRelatedRepositoryBase.cs
similarity index 79%
rename from AsbCloudInfrastructure/Repository/CrudWellRelatedServiceBase.cs
rename to AsbCloudInfrastructure/Repository/CrudWellRelatedRepositoryBase.cs
index eb59a94d..982d49e1 100644
--- a/AsbCloudInfrastructure/Repository/CrudWellRelatedServiceBase.cs
+++ b/AsbCloudInfrastructure/Repository/CrudWellRelatedRepositoryBase.cs
@@ -10,14 +10,14 @@ using System.Threading.Tasks;
namespace AsbCloudInfrastructure.Repository
{
#nullable enable
- public class CrudWellRelatedServiceBase : CrudRepositoryBase, IRepositoryWellRelated
+ public class CrudWellRelatedRepositoryBase : CrudRepositoryBase, IRepositoryWellRelated
where TDto : AsbCloudApp.Data.IId, AsbCloudApp.Data.IWellRelated
where TEntity : class, IId, IWellRelated
{
- public CrudWellRelatedServiceBase(IAsbCloudDbContext context)
+ public CrudWellRelatedRepositoryBase(IAsbCloudDbContext context)
: base(context) { }
- public CrudWellRelatedServiceBase(IAsbCloudDbContext context, Func, IQueryable> makeQuery)
+ public CrudWellRelatedRepositoryBase(IAsbCloudDbContext context, Func, IQueryable> makeQuery)
: base(context, makeQuery) { }
public async Task?> GetByIdWellAsync(int idWell, CancellationToken token)
diff --git a/AsbCloudInfrastructure/Repository/ProcessMapRepository.cs b/AsbCloudInfrastructure/Repository/ProcessMapRepository.cs
index 260fa925..0090c752 100644
--- a/AsbCloudInfrastructure/Repository/ProcessMapRepository.cs
+++ b/AsbCloudInfrastructure/Repository/ProcessMapRepository.cs
@@ -12,7 +12,7 @@ using System.Threading.Tasks;
namespace AsbCloudInfrastructure.Repository
{
#nullable enable
- public class ProcessMapRepository : CrudWellRelatedServiceBase,
+ public class ProcessMapRepository : CrudWellRelatedRepositoryBase,
IProcessMapRepository
{
private readonly IWellService wellService;
diff --git a/AsbCloudInfrastructure/Repository/ScheduleRepository.cs b/AsbCloudInfrastructure/Repository/ScheduleRepository.cs
index eaca8115..b43abe98 100644
--- a/AsbCloudInfrastructure/Repository/ScheduleRepository.cs
+++ b/AsbCloudInfrastructure/Repository/ScheduleRepository.cs
@@ -11,7 +11,7 @@ using System.Threading.Tasks;
namespace AsbCloudInfrastructure.Repository
{
#nullable enable
- public class ScheduleRepository : CrudWellRelatedServiceBase, IScheduleRepository
+ public class ScheduleRepository : CrudWellRelatedRepositoryBase, IScheduleRepository
{
private readonly IWellService wellService;
diff --git a/AsbCloudInfrastructure/Repository/SetpointsRequestRepository.cs b/AsbCloudInfrastructure/Repository/SetpointsRequestRepository.cs
index 325cae07..844ebcfe 100644
--- a/AsbCloudInfrastructure/Repository/SetpointsRequestRepository.cs
+++ b/AsbCloudInfrastructure/Repository/SetpointsRequestRepository.cs
@@ -11,7 +11,7 @@ using System.Linq;
namespace AsbCloudInfrastructure.Repository
{
- public class SetpointsRequestRepository : CrudWellRelatedCacheServiceBase
+ public class SetpointsRequestRepository : CrudWellRelatedCacheRepositoryBase
{
private readonly IWellService wellService;
diff --git a/AsbCloudWebApi/Controllers/CrudController.cs b/AsbCloudWebApi/Controllers/CrudController.cs
index 4b0a6c19..0decf79a 100644
--- a/AsbCloudWebApi/Controllers/CrudController.cs
+++ b/AsbCloudWebApi/Controllers/CrudController.cs
@@ -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
namespace AsbCloudWebApi.Controllers
{
+#nullable enable
///
/// CRUD контроллер для админки.
///
@@ -55,7 +56,7 @@ namespace AsbCloudWebApi.Controllers
/// запись
[HttpGet("{id}")]
[Permission]
- public virtual async Task> GetAsync(int id, CancellationToken token)
+ public virtual async Task> GetOrDefaultAsync(int id, CancellationToken token)
{
var result = await service.GetOrDefaultAsync(id, token).ConfigureAwait(false);
return Ok(result);
@@ -139,4 +140,5 @@ namespace AsbCloudWebApi.Controllers
return Ok(result);
}
}
+#nullable disable
}
diff --git a/AsbCloudWebApi/Controllers/CrudWellRelatedController.cs b/AsbCloudWebApi/Controllers/CrudWellRelatedController.cs
index 7cdf5570..3e7d1508 100644
--- a/AsbCloudWebApi/Controllers/CrudWellRelatedController.cs
+++ b/AsbCloudWebApi/Controllers/CrudWellRelatedController.cs
@@ -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
namespace AsbCloudWebApi.Controllers
{
+#nullable enable
///
/// CRUD контроллер dto связных со скважиной для админки.
///
@@ -75,14 +76,17 @@ namespace AsbCloudWebApi.Controllers
///
/// запись
[HttpGet("{id}")]
- public override async Task> GetAsync(int id, CancellationToken token)
+ public override async Task> GetOrDefaultAsync(int id, CancellationToken token)
{
- var actionResult = await base.GetAsync(id, token);
- // TODO: this can be nullref
- var result = actionResult.Value;
- if (!await UserHasAccesToWellAsync(result.IdWell, token))
- return Forbid();
- return Ok(result);
+ var actionResult = await base.GetOrDefaultAsync(id, token);
+ if(actionResult.Result is OkObjectResult okResult)
+ {
+ if (okResult.Value is IWellRelated wellRelated)
+ if (!await UserHasAccesToWellAsync(wellRelated.IdWell, token))
+ return Forbid();
+ }
+
+ return actionResult;
}
///
@@ -157,4 +161,5 @@ namespace AsbCloudWebApi.Controllers
return false;
}
}
+#nullable disable
}