From eac38b61390bacde3e6ab269c4f089e43ca32039 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A4=D1=80=D0=BE=D0=BB=D0=BE=D0=B2?= Date: Mon, 11 Oct 2021 16:00:52 +0500 Subject: [PATCH] Remove dead "DataController" --- AsbCloudInfrastructure/DependencyInjection.cs | 1 - .../Services/DataService.cs | 126 ------------------ AsbCloudWebApi/Controllers/DataController.cs | 85 ------------ AsbCloudWebApi/Controllers/WellController.cs | 19 --- 4 files changed, 231 deletions(-) delete mode 100644 AsbCloudInfrastructure/Services/DataService.cs delete mode 100644 AsbCloudWebApi/Controllers/DataController.cs diff --git a/AsbCloudInfrastructure/DependencyInjection.cs b/AsbCloudInfrastructure/DependencyInjection.cs index 5a354759..77534b83 100644 --- a/AsbCloudInfrastructure/DependencyInjection.cs +++ b/AsbCloudInfrastructure/DependencyInjection.cs @@ -31,7 +31,6 @@ namespace AsbCloudInfrastructure services.AddTransient(); services.AddTransient(); services.AddTransient(); - services.AddTransient(); services.AddTransient(); services.AddTransient(); services.AddTransient(); diff --git a/AsbCloudInfrastructure/Services/DataService.cs b/AsbCloudInfrastructure/Services/DataService.cs deleted file mode 100644 index f865a3d4..00000000 --- a/AsbCloudInfrastructure/Services/DataService.cs +++ /dev/null @@ -1,126 +0,0 @@ -using AsbCloudApp.Data; -using AsbCloudApp.Services; -using AsbCloudDb.Model; -using AsbCloudInfrastructure.Services.Cache; -using Mapster; -using Microsoft.EntityFrameworkCore; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading; -using System.Threading.Tasks; - -namespace AsbCloudInfrastructure.Services -{ - //TODO: delete this - [Obsolete] - public class DataService : IDataService - { - private readonly IAsbCloudDbContext db; - private readonly ITelemetryService telemetryService; - private readonly CacheTable cacheTelemetry; - private readonly CacheTable cacheTelemetryUsers; - private readonly CacheTable cacheWells; - - public DataService(IAsbCloudDbContext db, ITelemetryService telemetryService, - CacheDb cacheDb) - { - this.db = db; - this.telemetryService = telemetryService; - cacheTelemetry = cacheDb.GetCachedTable((AsbCloudDbContext)db); - cacheTelemetryUsers = cacheDb.GetCachedTable((AsbCloudDbContext)db); - cacheWells = cacheDb.GetCachedTable((AsbCloudDbContext)db); - } - - public async Task> GetAsync(int idWell, - DateTime dateBegin = default, double intervalSec = 600d, - int approxPointsCount = 1024, CancellationToken token = default) - { - var well = cacheWells.FirstOrDefault(w => w.Id == idWell); - if (well is null) - return default; - - var telemetry = cacheTelemetry.FirstOrDefault(t => t.Id == well.IdTelemetry); - if (telemetry is null) - return default; - - if (dateBegin == default) - dateBegin = DateTime.Now.AddSeconds(-intervalSec); - - var datEnd = dateBegin.AddSeconds(intervalSec); - - var query = from data in db.TelemetryDataSaub - where data.IdTelemetry == telemetry.Id - && data.Date >= dateBegin && data.Date < datEnd - select data; - - var fullDataCount = await query.CountAsync(token) - .ConfigureAwait(false); - - if (fullDataCount == 0) - return default; - - if (fullDataCount > 1.75 * approxPointsCount) - { - var m = (int)Math.Round(1d * fullDataCount / approxPointsCount); - if (m > 1) - query = query.Where(d => d.Id % m == 0); - } - - var entities = await query.AsNoTracking() - .ToListAsync(token).ConfigureAwait(false); - - var dtos = entities.Adapt(); - - return dtos; - } - - public async Task UpdateDataAsync(string uid, IEnumerable dtos, - CancellationToken token = default) - { - if (dtos == default || !dtos.Any()) - return 0; - - var telemetryId = telemetryService.GetOrCreateTemetryIdByUid(uid); - var dtoMinDate = dtos.Min(d => d.Date); - var dtoMaxDate = dtos.Max(d => d.Date); - - var oldDataSaubBase = await (from d in db.TelemetryDataSaub - where d.IdTelemetry == telemetryId - && d.Date > dtoMinDate - && d.Date < dtoMaxDate - select d).AsNoTracking() - .ToListAsync(token) - .ConfigureAwait(false); - - if (oldDataSaubBase.Any()) - db.TelemetryDataSaub.RemoveRange(oldDataSaubBase); - - foreach (var dto in dtos) - { - var dataSaub = dto.Adapt(); - var telemetryUser = await cacheTelemetryUsers - .FirstOrDefaultAsync(u => u.IdTelemetry == telemetryId && (u.Name == dto.User || u.Surname == dto.User), token) - .ConfigureAwait(false); - dataSaub.IdUser = telemetryUser?.IdUser; - dataSaub.IdTelemetry = telemetryId; - db.TelemetryDataSaub.Add(dataSaub); - } - - return await db.SaveChangesAsync(token); - } - - public async Task GetDataDatesRangeAsync(int idWell, - CancellationToken token = default) - { - var telemetryId = telemetryService.GetIdTelemetryByIdWell(idWell); - if (telemetryId is null) - return null; - - var (From, To) = await db.GetDatesRangeAsync((int)telemetryId, token) - .ConfigureAwait(false); - - return new DatesRangeDto { From = From, To = To }; - } - } -} diff --git a/AsbCloudWebApi/Controllers/DataController.cs b/AsbCloudWebApi/Controllers/DataController.cs deleted file mode 100644 index 77ffbbc2..00000000 --- a/AsbCloudWebApi/Controllers/DataController.cs +++ /dev/null @@ -1,85 +0,0 @@ -using AsbCloudApp.Data; -using AsbCloudApp.Services; -using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Mvc; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading; -using System.Threading.Tasks; - -namespace AsbCloudWebApi.Controllers -{ - /// - /// Контроллер сбора данных от буровых - /// - [Route("api/well/{idWell}/data")] - [ApiController] - [Authorize] - public class DataController : ControllerBase - { - private readonly IDataService telemetryDataService; - private readonly IWellService wellService; - - public DataController(IDataService telemetryDataService, IWellService wellService) - { - this.telemetryDataService = telemetryDataService; - this.wellService = wellService; - } - - /// - /// Возвращает данные САУБ по скважине. - /// По умолчанию за последние 10 минут. - /// - /// id скважины - /// дата начала выборки. По умолчанию: текущее время - intervalSec - /// интервал времени даты начала выборки, секунды - /// желаемое количество точек. Если в выборке точек будет больше, то выборка будет прорежена. - /// Токен завершения задачи - /// - [HttpGet] - [ProducesResponseType(typeof(IEnumerable), (int)System.Net.HttpStatusCode.OK)] - public async Task GetDataAsync(int idWell, DateTime begin = default, - int intervalSec = 600, int approxPointsCount = 1024, CancellationToken token = default) - { - if (begin == default) - begin = DateTime.Now.AddSeconds(-intervalSec); - var content = await telemetryDataService.GetAsync(idWell, begin, - intervalSec, approxPointsCount, token).ConfigureAwait(false); - - if (content is null || !content.Any()) - return NoContent(); - - return Ok(content); - } - - /// - /// Возвращает диапазон дат сохраненных данных. - /// - /// id скважины - /// Токен завершения задачи - /// - [HttpGet] - [Route("datesRange")] - [ProducesResponseType(typeof(DatesRangeDto), (int)System.Net.HttpStatusCode.OK)] - public async Task GetDataDatesRangeAsync(int idWell, - CancellationToken token = default) - { - int? idCompany = User.GetCompanyId(); - - if (idCompany is null) - return Forbid(); - - bool isCompanyOwnsWell = await wellService.IsCompanyInvolvedInWellAsync((int)idCompany, - idWell, token).ConfigureAwait(false); - - if (!isCompanyOwnsWell) - return Forbid(); - - DatesRangeDto dataDatesRange = await telemetryDataService.GetDataDatesRangeAsync(idWell, - token).ConfigureAwait(false); - - return Ok(dataDatesRange); - } - } -} diff --git a/AsbCloudWebApi/Controllers/WellController.cs b/AsbCloudWebApi/Controllers/WellController.cs index edf7b4a0..2802a5f4 100644 --- a/AsbCloudWebApi/Controllers/WellController.cs +++ b/AsbCloudWebApi/Controllers/WellController.cs @@ -41,25 +41,6 @@ namespace AsbCloudWebApi.Controllers return Ok(wells); } - [HttpGet("{idWell}/operations")] - [ProducesResponseType(typeof(IEnumerable), (int)System.Net.HttpStatusCode.OK)] - public async Task GetOperationsAsync(int idWell, CancellationToken token = default) - { - var idCompany = User.GetCompanyId(); - - if (idCompany is null) - return NoContent(); - - if (!await wellService.IsCompanyInvolvedInWellAsync((int)idCompany, - idWell, token).ConfigureAwait(false)) - return Forbid(); - - var dto = await wellService.GetOperationsAsync(idWell, - token).ConfigureAwait(false); - - return Ok(dto); - } - [HttpGet("transmittingWells")] [ProducesResponseType(typeof(IEnumerable), (int)System.Net.HttpStatusCode.OK)] public async Task GetTransmittingWellsAsync(CancellationToken token = default)