diff --git a/AsbCloudApp/Services/Subsystems/ISubsystemService.cs b/AsbCloudApp/Services/Subsystems/ISubsystemService.cs deleted file mode 100644 index b343b055..00000000 --- a/AsbCloudApp/Services/Subsystems/ISubsystemService.cs +++ /dev/null @@ -1,23 +0,0 @@ -using AsbCloudApp.Data.Subsystems; -using System.Collections.Generic; -using System.Threading; -using System.Threading.Tasks; - -namespace AsbCloudApp.Services.Subsystems -{ - // TODO: move this to repositories - - /// - /// репозиторий получения подсистем - /// - public interface ISubsystemService - { - /// - /// получение списка подсистем. Если скважина указана, то получим только использованные в скважине подсистемы. - /// - /// - /// - /// - Task?> GetSubsystemAsync(int? idWell, CancellationToken token); - } -} diff --git a/AsbCloudInfrastructure/DependencyInjection.cs b/AsbCloudInfrastructure/DependencyInjection.cs index 62e05164..e9d9c4e7 100644 --- a/AsbCloudInfrastructure/DependencyInjection.cs +++ b/AsbCloudInfrastructure/DependencyInjection.cs @@ -267,11 +267,9 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient, CrudCacheRepositoryBase>(); - - // Subsystem service + services.AddTransient, CrudCacheRepositoryBase>(); - services.AddTransient(); - + services.AddTransient, CrudCacheRepositoryBase>(); // TelemetryData services diff --git a/AsbCloudInfrastructure/Services/Subsystems/SubsystemService.cs b/AsbCloudInfrastructure/Services/Subsystems/SubsystemService.cs deleted file mode 100644 index 217e9d26..00000000 --- a/AsbCloudInfrastructure/Services/Subsystems/SubsystemService.cs +++ /dev/null @@ -1,54 +0,0 @@ -using AsbCloudApp.Data.Subsystems; -using AsbCloudApp.Services; -using AsbCloudApp.Services.Subsystems; -using AsbCloudDb.Model; -using AsbCloudDb.Model.Subsystems; -using AsbCloudInfrastructure.Repository; -using Mapster; -using Microsoft.EntityFrameworkCore; -using Microsoft.Extensions.Caching.Memory; -using System.Collections.Generic; -using System.Linq; -using System.Threading; -using System.Threading.Tasks; - -namespace AsbCloudInfrastructure.Services.Subsystems -{ - - internal class SubsystemService : CrudCacheRepositoryBase, ISubsystemService - { - private readonly IWellService wellService; - public SubsystemService(IAsbCloudDbContext dbContext, IMemoryCache memoryCache, IWellService wellService) : base(dbContext, memoryCache) - { - this.wellService = wellService; - } - - private async Task?> GetSubsystemByIdWellAsync(int idWell, CancellationToken token) - { - var well = await wellService.GetOrDefaultAsync(idWell, token); - if (well?.IdTelemetry is null || well.Timezone is null) - return null; - var entities = await dbContext.SubsystemOperationTimes - .Include(e => e.Subsystem) - .AsNoTracking() - .Where(o => o.IdTelemetry == well.IdTelemetry) - .Select(o => o.Subsystem) - .Distinct() - .ToArrayAsync(token); - var dtos = entities.Select(e => e.Adapt()); - return dtos; - } - - public async Task?> GetSubsystemAsync(int? idWell, CancellationToken token) - { - if (idWell.HasValue) - { - var subsystemWell = await GetSubsystemByIdWellAsync(idWell.Value, token); - return subsystemWell; - } - var subsystem = await GetAllAsync(token); - return subsystem; - } - } - -} diff --git a/AsbCloudWebApi/Controllers/Subsystems/SubsystemOperationTimeController.cs b/AsbCloudWebApi/Controllers/Subsystems/SubsystemOperationTimeController.cs index d5bf4aae..47ce3630 100644 --- a/AsbCloudWebApi/Controllers/Subsystems/SubsystemOperationTimeController.cs +++ b/AsbCloudWebApi/Controllers/Subsystems/SubsystemOperationTimeController.cs @@ -24,7 +24,6 @@ namespace AsbCloudWebApi.Controllers.Subsystems private readonly ISubsystemOperationTimeService subsystemOperationTimeService; private readonly ITelemetryDataSaubService telemetryDataSaubService; private readonly IWellService wellService; - private readonly ISubsystemService subsystemService; private readonly Dictionary subsystemNames = new() { @@ -36,12 +35,10 @@ namespace AsbCloudWebApi.Controllers.Subsystems public SubsystemOperationTimeController( ISubsystemOperationTimeService subsystemOperationTimeService, IWellService wellService, - ISubsystemService subsystemService, ITelemetryDataSaubService telemetryDataSaubService) { this.subsystemOperationTimeService = subsystemOperationTimeService; this.wellService = wellService; - this.subsystemService = subsystemService; this.telemetryDataSaubService = telemetryDataSaubService; } /// @@ -52,7 +49,7 @@ namespace AsbCloudWebApi.Controllers.Subsystems [ProducesResponseType(typeof(ValidationProblemDetails), (int)System.Net.HttpStatusCode.BadRequest)] public async Task GetStatAsync([FromQuery] SubsystemOperationTimeRequest request, CancellationToken token) { - if (!await UserHasAccesToWellAsync(request.IdWell, token)) + if (!await UserHasAccessToWellAsync(request.IdWell, token)) return Forbid(); var subsystemResult = await subsystemOperationTimeService.GetStatAsync(request, token); return Ok(subsystemResult); @@ -65,7 +62,7 @@ namespace AsbCloudWebApi.Controllers.Subsystems [ProducesResponseType(typeof(DatesRangeDto), (int)System.Net.HttpStatusCode.OK)] public async Task GetStatDateRangeAsync([FromRoute] int idWell, CancellationToken token) { - if (!await UserHasAccesToWellAsync(idWell, token)) + if (!await UserHasAccessToWellAsync(idWell, token)) return Forbid(); var dateRange = telemetryDataSaubService.GetRange(idWell); @@ -91,20 +88,6 @@ namespace AsbCloudWebApi.Controllers.Subsystems return Ok(subsystemResult); } - /// - /// получить список подсистем общий. - /// - [HttpGet("subsystem")] - [ProducesResponseType(typeof(IEnumerable), (int)System.Net.HttpStatusCode.OK)] - public async Task GetSubsystemAsync([FromQuery] int? idWell, CancellationToken token) - { - if (idWell.HasValue) - if (!await UserHasAccesToWellAsync(idWell.Value, token)) - return Forbid(); - var result = await subsystemService.GetSubsystemAsync(idWell, token); - return Ok(result); - } - /// /// получить доступный диапазон дат наработки подсистемы. /// @@ -112,7 +95,7 @@ namespace AsbCloudWebApi.Controllers.Subsystems [ProducesResponseType(typeof(DatesRangeDto), (int)System.Net.HttpStatusCode.OK)] public async Task GetDateRangeOperationTimeAsync([FromQuery] SubsystemOperationTimeRequest request, CancellationToken token) { - if (!await UserHasAccesToWellAsync(request.IdWell, token)) + if (!await UserHasAccessToWellAsync(request.IdWell, token)) return Forbid(); var result = await subsystemOperationTimeService.GetDateRangeOperationTimeAsync(request, token); return Ok(result); @@ -128,7 +111,7 @@ namespace AsbCloudWebApi.Controllers.Subsystems [FromQuery] SubsystemOperationTimeRequest request, CancellationToken token) { - if (!await UserHasAccesToWellAsync(request.IdWell, token)) + if (!await UserHasAccessToWellAsync(request.IdWell, token)) return Forbid(); var result = await subsystemOperationTimeService.GetOperationTimeAsync(request, token); @@ -149,7 +132,7 @@ namespace AsbCloudWebApi.Controllers.Subsystems [FromQuery] SubsystemOperationTimeRequest request, CancellationToken token) { - if (!await UserHasAccesToWellAsync(request.IdWell, token)) + if (!await UserHasAccessToWellAsync(request.IdWell, token)) return Forbid(); var result = await subsystemOperationTimeService.DeleteAsync(request, token); return Ok(result); @@ -166,7 +149,7 @@ namespace AsbCloudWebApi.Controllers.Subsystems return Ok(subsystemNames); } - protected async Task UserHasAccesToWellAsync(int idWell, CancellationToken token) + protected async Task UserHasAccessToWellAsync(int idWell, CancellationToken token) { var idCompany = User.GetCompanyId(); if (idCompany is not null &&