diff --git a/AsbCloudApp/Services/IDataService.cs b/AsbCloudApp/Services/IDataService.cs index 95605c38..c62f4678 100644 --- a/AsbCloudApp/Services/IDataService.cs +++ b/AsbCloudApp/Services/IDataService.cs @@ -6,6 +6,8 @@ using System.Threading.Tasks; namespace AsbCloudApp.Services { + + [Obsolete] public interface IDataService { Task> GetAsync(int idWell, DateTime dateBegin = default, diff --git a/AsbCloudInfrastructure/Services/DataService.cs b/AsbCloudInfrastructure/Services/DataService.cs index 1896a759..f865a3d4 100644 --- a/AsbCloudInfrastructure/Services/DataService.cs +++ b/AsbCloudInfrastructure/Services/DataService.cs @@ -13,6 +13,7 @@ using System.Threading.Tasks; namespace AsbCloudInfrastructure.Services { //TODO: delete this + [Obsolete] public class DataService : IDataService { private readonly IAsbCloudDbContext db; diff --git a/AsbCloudInfrastructure/Services/TelemetryService.cs b/AsbCloudInfrastructure/Services/TelemetryService.cs index b6c0cd99..bdb720cd 100644 --- a/AsbCloudInfrastructure/Services/TelemetryService.cs +++ b/AsbCloudInfrastructure/Services/TelemetryService.cs @@ -3,6 +3,7 @@ using AsbCloudApp.Services; using AsbCloudDb.Model; using AsbCloudInfrastructure.Services.Cache; using Mapster; +using System.Linq; namespace AsbCloudInfrastructure.Services { @@ -10,11 +11,13 @@ namespace AsbCloudInfrastructure.Services { private readonly CacheTable cacheTelemetry; private readonly CacheTable cacheWells; + private readonly IAsbCloudDbContext db; public TelemetryService(IAsbCloudDbContext db, CacheDb cacheDb) { cacheTelemetry = cacheDb.GetCachedTable((AsbCloudDbContext)db); cacheWells = cacheDb.GetCachedTable((AsbCloudDbContext)db); + this.db = db; } public int GetOrCreateTemetryIdByUid(string uid) @@ -51,9 +54,25 @@ namespace AsbCloudInfrastructure.Services return cacheWells.FirstOrDefault(w => w?.IdTelemetry == tele.Id); } - private Telemetry GetOrCreateTelemetryByUid(string uid) - => cacheTelemetry.FirstOrDefault(t => t.RemoteUid == uid, RefreshMode.Force) - ?? cacheTelemetry.Insert(new Telemetry { RemoteUid = uid, }); + // TODO: fix cacheTable before uncomment next + //private Telemetry GetOrCreateTelemetryByUid(string uid) + // => cacheTelemetry.FirstOrDefault(t => t.RemoteUid == uid) + // ?? cacheTelemetry.Insert(new Telemetry { RemoteUid = uid, }); + private Telemetry GetOrCreateTelemetryByUid(string uid) + { + var telemetry = cacheTelemetry.FirstOrDefault(t => t.RemoteUid == uid); + if (telemetry is not null) + return telemetry; + + telemetry = db.Telemetries.OrderBy(t=>t.Info).FirstOrDefault(t => t.RemoteUid == uid); + if (telemetry is not null) + return telemetry; + + var newTelemetryEntry = db.Telemetries.Add(new Telemetry { RemoteUid = uid }); + db.SaveChanges(); + cacheTelemetry.Refresh(); + return newTelemetryEntry.Entity; + } } } diff --git a/AsbCloudWebApi/Controllers/ReportController.cs b/AsbCloudWebApi/Controllers/ReportController.cs index 180fb908..121739a5 100644 --- a/AsbCloudWebApi/Controllers/ReportController.cs +++ b/AsbCloudWebApi/Controllers/ReportController.cs @@ -35,7 +35,6 @@ namespace AsbCloudWebApi.Controllers /// Создает отчет по скважине с указанными параметрами /// /// id скважины - /// id пользователя /// шаг интервала /// формат отчета (0-PDF, 1-LAS) /// дата начала интервала diff --git a/AsbCloudWebApi/Controllers/TelemetryController.cs b/AsbCloudWebApi/Controllers/TelemetryController.cs index a1767274..1b31df79 100644 --- a/AsbCloudWebApi/Controllers/TelemetryController.cs +++ b/AsbCloudWebApi/Controllers/TelemetryController.cs @@ -3,6 +3,7 @@ using AsbCloudApp.Services; using AsbCloudWebApi.SignalR; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.SignalR; +using System; using System.Collections.Generic; using System.Linq; using System.Threading; @@ -67,6 +68,7 @@ namespace AsbCloudWebApi.Controllers /// Токен для отмены задачи /// [HttpPost] + [Obsolete] [Route("{uid}/data")] public async Task PostDataAsync(string uid, [FromBody] IEnumerable dtos, CancellationToken token = default) diff --git a/AsbCloudWebApi/Controllers/TelemetryDataBaseController.cs b/AsbCloudWebApi/Controllers/TelemetryDataBaseController.cs index c33cf30a..75d19a05 100644 --- a/AsbCloudWebApi/Controllers/TelemetryDataBaseController.cs +++ b/AsbCloudWebApi/Controllers/TelemetryDataBaseController.cs @@ -53,9 +53,9 @@ namespace AsbCloudWebApi.Controllers public virtual async Task PostDataAsync(string uid, [FromBody] IEnumerable dtos, CancellationToken token = default) { - var idWell = telemetryService.GetidWellByTelemetryUid(uid); await telemetryDataService.UpdateDataAsync(uid, dtos, token).ConfigureAwait(false); + var idWell = telemetryService.GetidWellByTelemetryUid(uid); if (idWell != null && dtos.Any()) await Task.Run(() => telemetryHubContext.Clients.Group($"well_{idWell}") .SendAsync(SirnalRMethodGetDataName, dtos), token).ConfigureAwait(false); diff --git a/AsbCloudWebApi/wwwroot/asset-manifest.json b/AsbCloudWebApi/wwwroot/asset-manifest.json index f0d7b068..371e6018 100644 --- a/AsbCloudWebApi/wwwroot/asset-manifest.json +++ b/AsbCloudWebApi/wwwroot/asset-manifest.json @@ -1,23 +1,23 @@ { "files": { - "main.css": "/static/css/main.99536867.chunk.css", - "main.js": "/static/js/main.5222c3aa.chunk.js", - "main.js.map": "/static/js/main.5222c3aa.chunk.js.map", - "runtime-main.js": "/static/js/runtime-main.c0bb1130.js", - "runtime-main.js.map": "/static/js/runtime-main.c0bb1130.js.map", - "static/js/2.e07a64f5.chunk.js": "/static/js/2.e07a64f5.chunk.js", - "static/js/2.e07a64f5.chunk.js.map": "/static/js/2.e07a64f5.chunk.js.map", - "static/js/3.ffc36876.chunk.js": "/static/js/3.ffc36876.chunk.js", - "static/js/3.ffc36876.chunk.js.map": "/static/js/3.ffc36876.chunk.js.map", + "main.css": "/static/css/main.01936687.chunk.css", + "main.js": "/static/js/main.5913a560.chunk.js", + "main.js.map": "/static/js/main.5913a560.chunk.js.map", + "runtime-main.js": "/static/js/runtime-main.7bbed929.js", + "runtime-main.js.map": "/static/js/runtime-main.7bbed929.js.map", + "static/js/2.766da71c.chunk.js": "/static/js/2.766da71c.chunk.js", + "static/js/2.766da71c.chunk.js.map": "/static/js/2.766da71c.chunk.js.map", + "static/js/3.58b81d69.chunk.js": "/static/js/3.58b81d69.chunk.js", + "static/js/3.58b81d69.chunk.js.map": "/static/js/3.58b81d69.chunk.js.map", "index.html": "/index.html", - "static/css/main.99536867.chunk.css.map": "/static/css/main.99536867.chunk.css.map", - "static/js/2.e07a64f5.chunk.js.LICENSE.txt": "/static/js/2.e07a64f5.chunk.js.LICENSE.txt", + "static/css/main.01936687.chunk.css.map": "/static/css/main.01936687.chunk.css.map", + "static/js/2.766da71c.chunk.js.LICENSE.txt": "/static/js/2.766da71c.chunk.js.LICENSE.txt", "static/media/pointer.e8df778c.svg": "/static/media/pointer.e8df778c.svg" }, "entrypoints": [ - "static/js/runtime-main.c0bb1130.js", - "static/js/2.e07a64f5.chunk.js", - "static/css/main.99536867.chunk.css", - "static/js/main.5222c3aa.chunk.js" + "static/js/runtime-main.7bbed929.js", + "static/js/2.766da71c.chunk.js", + "static/css/main.01936687.chunk.css", + "static/js/main.5913a560.chunk.js" ] } \ No newline at end of file diff --git a/AsbCloudWebApi/wwwroot/index.html b/AsbCloudWebApi/wwwroot/index.html index aaf46e19..1d847144 100644 --- a/AsbCloudWebApi/wwwroot/index.html +++ b/AsbCloudWebApi/wwwroot/index.html @@ -1 +1 @@ -АСБ Vision
\ No newline at end of file +АСБ Vision
\ No newline at end of file