diff --git a/AsbCloudInfrastructure/Services/AuthService.cs b/AsbCloudInfrastructure/Services/AuthService.cs index 04c0621c..811ec64e 100644 --- a/AsbCloudInfrastructure/Services/AuthService.cs +++ b/AsbCloudInfrastructure/Services/AuthService.cs @@ -42,23 +42,23 @@ namespace AsbCloudInfrastructure.Services public async Task LoginAsync(string login, string password, CancellationToken token = default) { - var identity = await GetClaimsUserAsync(login, password, token) + var (identity, user) = await GetClaimsUserAsync(login, password, token) .ConfigureAwait(false); - if (identity == default || identity.User.State == 0) + if (identity == default || user.State == 0) return null; return new UserTokenDto { - Id = identity.User.Id, - Name = identity.User.Name, - CompanyName = identity.User.Company.Caption, - Level = identity.User.Level, - Login = identity.User.Login, - Patronymic = identity.User.Patronymic, - RoleName = identity.User.Role.Caption, - Surname = identity.User.Surname, - Token = MakeToken(identity.Identity.Claims), + Id = user.Id, + Name = user.Name, + CompanyName = user.Company.Caption, + Level = user.Level, + Login = user.Login, + Patronymic = user.Patronymic, + RoleName = user.Role.Caption, + Surname = user.Surname, + Token = MakeToken(identity.Claims), }; } @@ -94,7 +94,7 @@ namespace AsbCloudInfrastructure.Services var newUser = new User { IdCompany = userDto.IdCompany, - IdRole = 2, // simple user + IdRole = userDto.IdRole ?? 2, // simple user State = 0, Name = userDto.Name, Surname = userDto.Surname, diff --git a/AsbCloudInfrastructure/Services/TelemetryDataBaseService.cs b/AsbCloudInfrastructure/Services/TelemetryDataBaseService.cs index 2e203dfa..4c1e2c79 100644 --- a/AsbCloudInfrastructure/Services/TelemetryDataBaseService.cs +++ b/AsbCloudInfrastructure/Services/TelemetryDataBaseService.cs @@ -78,12 +78,11 @@ namespace AsbCloudInfrastructure.Services int approxPointsCount = 1024, CancellationToken token = default) { var well = cacheWells.FirstOrDefault(w => w.Id == idWell); - if (well is null) + if (well?.IdTelemetry is null) return default; - var telemetry = cacheTelemetry.FirstOrDefault(t => t.Id == well.IdTelemetry); - if (telemetry is null) - return default; + if (dateBegin == default) + dateBegin = telemetryService.GetLastTelemetryDate(well.IdTelemetry??0); if (dateBegin == default) dateBegin = DateTime.Now.AddSeconds(-intervalSec); @@ -95,7 +94,7 @@ namespace AsbCloudInfrastructure.Services var dbSet = db.Set(); var query = from data in dbSet - where data.IdTelemetry == telemetry.Id + where data.IdTelemetry == well.IdTelemetry && data.Date >= dateBegin && data.Date < datEnd select data; diff --git a/AsbCloudInfrastructure/Services/TelemetryTracker.cs b/AsbCloudInfrastructure/Services/TelemetryTracker.cs index 5c9a08b1..ed38e6af 100644 --- a/AsbCloudInfrastructure/Services/TelemetryTracker.cs +++ b/AsbCloudInfrastructure/Services/TelemetryTracker.cs @@ -18,16 +18,18 @@ namespace AsbCloudInfrastructure.Services .UseNpgsql("Host=localhost;Database=postgres;Username=postgres;Password=q;Persist Security Info=True") .Options; using var db = new AsbCloudDbContext(options); - + var cacheTelemetry = cacheDb.GetCachedTable(db); var lastTelemetriesDates = (from d in db.TelemetryDataSaub group d by d.IdTelemetry into g select new { - IdTelemetry = g.Max(t => t.IdTelemetry), + IdTelemetry = g.Key, Date = g.Max(t => t.Date) - }).ToList(); + }) + .AsNoTracking() + .ToList(); requests = lastTelemetriesDates.Select(t => new { diff --git a/AsbCloudInfrastructure/Services/WellService.cs b/AsbCloudInfrastructure/Services/WellService.cs index 1b49d0b2..679da469 100644 --- a/AsbCloudInfrastructure/Services/WellService.cs +++ b/AsbCloudInfrastructure/Services/WellService.cs @@ -65,11 +65,11 @@ namespace AsbCloudInfrastructure.Services CancellationToken token = default) { if (dto.IdWellType is < 1 or > 2) - throw new ArgumentException("Тип секции указан неправильно.", nameof(dto)); + throw new ArgumentException("Тип скважины указан неправильно.", nameof(dto)); if (dto.IdState is < 0 or > 2) - throw new ArgumentException("Текущее состояние работы скважины" + - "указано неправильно.", nameof(dto)); + throw new ArgumentException("Текущее состояние работы скважины указано неправильно.", nameof(dto)); + var entity = await db.Wells .FirstOrDefaultAsync(w => w.Id == idWell, token) .ConfigureAwait(false); @@ -146,7 +146,11 @@ namespace AsbCloudInfrastructure.Services Caption = well.Caption, Cluster = well.Cluster.Caption, Deposit = well.Cluster.Deposit.Caption, - LastTelemetryDate = GetLastTelemetryDate(well.Id) + LastTelemetryDate = GetLastTelemetryDate(well.Id), + IdWellType = well.IdWellType ?? default, + IdState = well.IdState, + Latitude = well.Latitude, + Longitude = well.Longitude, }; } } diff --git a/AsbCloudWebApi/Controllers/TelemetryDataBaseController.cs b/AsbCloudWebApi/Controllers/TelemetryDataBaseController.cs index 35a5df20..07e326ff 100644 --- a/AsbCloudWebApi/Controllers/TelemetryDataBaseController.cs +++ b/AsbCloudWebApi/Controllers/TelemetryDataBaseController.cs @@ -86,9 +86,6 @@ namespace AsbCloudWebApi.Controllers if (!isCompanyOwnsWell) return Forbid(); - if (begin == default) - begin = DateTime.Now.AddSeconds(-intervalSec); - var content = await telemetryDataService.GetAsync(idWell, begin, intervalSec, approxPointsCount, token).ConfigureAwait(false); diff --git a/AsbCloudWebApi/wwwroot/asset-manifest.json b/AsbCloudWebApi/wwwroot/asset-manifest.json index 5616460f..35e01b32 100644 --- a/AsbCloudWebApi/wwwroot/asset-manifest.json +++ b/AsbCloudWebApi/wwwroot/asset-manifest.json @@ -1,23 +1,22 @@ { "files": { - "main.css": "/static/css/main.e92a8ff6.chunk.css", - "main.js": "/static/js/main.fb09e9cb.chunk.js", - "main.js.map": "/static/js/main.fb09e9cb.chunk.js.map", - "runtime-main.js": "/static/js/runtime-main.1100f000.js", - "runtime-main.js.map": "/static/js/runtime-main.1100f000.js.map", - "static/js/2.e611d81c.chunk.js": "/static/js/2.e611d81c.chunk.js", - "static/js/2.e611d81c.chunk.js.map": "/static/js/2.e611d81c.chunk.js.map", - "static/js/3.921d7a03.chunk.js": "/static/js/3.921d7a03.chunk.js", - "static/js/3.921d7a03.chunk.js.map": "/static/js/3.921d7a03.chunk.js.map", + "main.css": "/static/css/main.2e1e40de.chunk.css", + "main.js": "/static/js/main.bd15a5a8.chunk.js", + "main.js.map": "/static/js/main.bd15a5a8.chunk.js.map", + "runtime-main.js": "/static/js/runtime-main.75a65898.js", + "runtime-main.js.map": "/static/js/runtime-main.75a65898.js.map", + "static/js/2.fe530333.chunk.js": "/static/js/2.fe530333.chunk.js", + "static/js/2.fe530333.chunk.js.map": "/static/js/2.fe530333.chunk.js.map", + "static/js/3.5c25a85c.chunk.js": "/static/js/3.5c25a85c.chunk.js", + "static/js/3.5c25a85c.chunk.js.map": "/static/js/3.5c25a85c.chunk.js.map", "index.html": "/index.html", - "static/css/main.e92a8ff6.chunk.css.map": "/static/css/main.e92a8ff6.chunk.css.map", - "static/js/2.e611d81c.chunk.js.LICENSE.txt": "/static/js/2.e611d81c.chunk.js.LICENSE.txt", - "static/media/pointer.e8df778c.svg": "/static/media/pointer.e8df778c.svg" + "static/css/main.2e1e40de.chunk.css.map": "/static/css/main.2e1e40de.chunk.css.map", + "static/js/2.fe530333.chunk.js.LICENSE.txt": "/static/js/2.fe530333.chunk.js.LICENSE.txt" }, "entrypoints": [ - "static/js/runtime-main.1100f000.js", - "static/js/2.e611d81c.chunk.js", - "static/css/main.e92a8ff6.chunk.css", - "static/js/main.fb09e9cb.chunk.js" + "static/js/runtime-main.75a65898.js", + "static/js/2.fe530333.chunk.js", + "static/css/main.2e1e40de.chunk.css", + "static/js/main.bd15a5a8.chunk.js" ] } \ No newline at end of file diff --git a/AsbCloudWebApi/wwwroot/index.html b/AsbCloudWebApi/wwwroot/index.html index 8474b9b5..e2bd8aab 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