diff --git a/AsbCloudApp/Data/GTR/WitsItemRecordDto.cs b/AsbCloudApp/Data/GTR/WitsItemRecordDto.cs
new file mode 100644
index 00000000..46d82e6b
--- /dev/null
+++ b/AsbCloudApp/Data/GTR/WitsItemRecordDto.cs
@@ -0,0 +1,30 @@
+using System;
+
+namespace AsbCloudApp.Data.GTR
+{
+ ///
+ /// Запись WITS
+ ///
+ public class WitsItemRecordDto
+ {
+ ///
+ /// Record Id
+ ///
+ public int IdRecord { get; set; }
+
+ ///
+ /// Item Id
+ ///
+ public int IdItem { get; set; }
+
+ ///
+ /// Дата создания записи
+ ///
+ public DateTime Date { get; set; }
+
+ ///
+ /// Значение
+ ///
+ public JsonValue Value { get; set; } = default!;
+ }
+}
\ No newline at end of file
diff --git a/AsbCloudApp/Data/WellCaseDto.cs b/AsbCloudApp/Data/WellCaseDto.cs
index 046cd0d5..867d4426 100644
--- a/AsbCloudApp/Data/WellCaseDto.cs
+++ b/AsbCloudApp/Data/WellCaseDto.cs
@@ -23,5 +23,5 @@ namespace AsbCloudApp.Data
///
public IEnumerable WellFinalDocuments { get; set; } = Enumerable.Empty();
}
-#nullable disable
+
}
diff --git a/AsbCloudApp/Data/WellGroupOpertionDto.cs b/AsbCloudApp/Data/WellGroupOpertionDto.cs
index 582d03ec..0839045c 100644
--- a/AsbCloudApp/Data/WellGroupOpertionDto.cs
+++ b/AsbCloudApp/Data/WellGroupOpertionDto.cs
@@ -58,4 +58,3 @@ public class WellGroupOpertionDto
///
public IEnumerable? Items { get; set; }
}
-#nullable disable
\ No newline at end of file
diff --git a/AsbCloudApp/Data/WellOperationPlanDto.cs b/AsbCloudApp/Data/WellOperationPlanDto.cs
index 7041b493..be469948 100644
--- a/AsbCloudApp/Data/WellOperationPlanDto.cs
+++ b/AsbCloudApp/Data/WellOperationPlanDto.cs
@@ -22,5 +22,5 @@ namespace AsbCloudApp.Data
public DateTime? DateLastAssosiatedPlanOperation { get; set; }
}
-#nullable disable
+
}
diff --git a/AsbCloudApp/Repositories/IGtrRepository.cs b/AsbCloudApp/Repositories/IGtrRepository.cs
index 4082a4cc..a8c16354 100644
--- a/AsbCloudApp/Repositories/IGtrRepository.cs
+++ b/AsbCloudApp/Repositories/IGtrRepository.cs
@@ -4,10 +4,8 @@ using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
-
namespace AsbCloudApp.Repositories
{
-#nullable enable
///
/// данные ГТИ
///
@@ -34,6 +32,14 @@ namespace AsbCloudApp.Repositories
Task> GetAsync(int idWell,
DateTime? dateBegin, double intervalSec = 600d,
int approxPointsCount = 1024, CancellationToken token = default);
+
+ ///
+ /// получение последних данных ГТИ по record id
+ ///
+ ///
+ ///
+ ///
+ ///
+ Task> GetLastDataByRecordIdAsync(int idWell, int idRecord, CancellationToken token = default);
}
-#nullable disable
}
diff --git a/AsbCloudInfrastructure/Repository/GtrWitsRepository.cs b/AsbCloudInfrastructure/Repository/GtrWitsRepository.cs
index d3e395d3..8e2b77b5 100644
--- a/AsbCloudInfrastructure/Repository/GtrWitsRepository.cs
+++ b/AsbCloudInfrastructure/Repository/GtrWitsRepository.cs
@@ -3,7 +3,6 @@ using AsbCloudApp.Repositories;
using AsbCloudApp.Services;
using AsbCloudDb.Model;
using AsbCloudDb.Model.GTR;
-using Mapster;
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
@@ -13,7 +12,6 @@ using System.Threading.Tasks;
namespace AsbCloudInfrastructure.Repository
{
-
public class GtrWitsRepository : IGtrRepository
{
private readonly IAsbCloudDbContext db;
@@ -23,7 +21,7 @@ namespace AsbCloudInfrastructure.Repository
IAsbCloudDbContext db,
ITelemetryService telemetryService)
{
-
+
this.db = db;
this.telemetryService = telemetryService;
}
@@ -36,12 +34,21 @@ namespace AsbCloudInfrastructure.Repository
var timezone = telemetryService.GetTimezone(telemetry.Id);
- DateTimeOffset? dateBeginUtc = dateBegin?.ToUtcDateTimeOffset(timezone.Hours);
+ DateTimeOffset? dateBeginUtc = dateBegin?.ToUtcDateTimeOffset(timezone.Hours);
var dateEnd = dateBeginUtc?.AddSeconds(intervalSec);
- var recordAllInt = await GetItemsOrDefaultAsync(telemetry.Id, dateBeginUtc, dateEnd, approxPointsCount, timezone.Hours, token);
- var recordAllFloat = await GetItemsOrDefaultAsync(telemetry.Id, dateBeginUtc, dateEnd, approxPointsCount,timezone.Hours, token);
- var recordAllString = await GetItemsOrDefaultAsync(telemetry.Id, dateBeginUtc, dateEnd, approxPointsCount, timezone.Hours, token);
+ var witsRequest = new WitsRequest()
+ {
+ IdTelemetry = telemetry.Id,
+ DateBeginUtc = dateBeginUtc,
+ DateEnd = dateEnd,
+ ApproxPointsCount = approxPointsCount,
+ TimezoneHours = timezone.Hours
+ };
+
+ var recordAllInt = await GetItemsOrDefaultAsync(witsRequest, token);
+ var recordAllFloat = await GetItemsOrDefaultAsync(witsRequest, token);
+ var recordAllString = await GetItemsOrDefaultAsync(witsRequest, token);
var dtos = (recordAllFloat.Union(recordAllInt)).Union(recordAllString)
.GroupBy(g => new
@@ -53,43 +60,88 @@ namespace AsbCloudInfrastructure.Repository
{
Id = g.Key.IdRecord,
Date = g.Key.Date,
- Items = g.Select(r => new {
- Key = r.IdItem,
- Value = r.Item
+ Items = g.Select(r => new
+ {
+ Key = r.IdItem,
+ r.Value
}).ToDictionary(x => x.Key, x => x.Value)
- });
+ });
return dtos;
}
- private async Task> GetItemsOrDefaultAsync(
- int idTelemetry,
- DateTimeOffset? dateBegin,
- DateTimeOffset? dateEnd,
- int approxPointsCount,
- double timezoneHours,
- CancellationToken token)
- where TEntity: WitsItemBase
- where TValue: notnull
+ public async Task> GetLastDataByRecordIdAsync(int idWell, int idRecord, CancellationToken token = default)
{
- var query = db.Set()
- .Where(i => i.IdTelemetry == idTelemetry);
+ var telemetry = telemetryService.GetOrDefaultTelemetryByIdWell(idWell);
+ if (telemetry is null)
+ return Enumerable.Empty();
- if (dateBegin is not null)
- query = query
- .Where(d => d.DateTime >= dateBegin);
+ var timezone = telemetryService.GetTimezone(telemetry.Id);
- if (dateEnd is not null)
- query = query
- .Where(d => d.DateTime <= dateEnd);
+ var witsRequest = new WitsRequest()
+ {
+ IdTelemetry = telemetry.Id,
+ TimezoneHours = timezone.Hours,
+ IdRecord = idRecord,
+ };
+
+ var recordAllInt = await GetGroupedItemsOrDefaultAsync(witsRequest, token);
+ var recordAllFloat = await GetGroupedItemsOrDefaultAsync(witsRequest, token);
+ var recordAllString = await GetGroupedItemsOrDefaultAsync(witsRequest, token);
+
+ var dtos = recordAllFloat.Union(recordAllInt).Union(recordAllString);
+ return dtos;
+ }
+
+ private async Task> GetGroupedItemsOrDefaultAsync(WitsRequest request, CancellationToken token)
+ where TEntity : WitsItemBase
+ where TValue : notnull
+ {
+ var query = BuildQuery(request);
+ var groupedQuery = query.GroupBy(g => new
+ {
+ g.IdRecord,
+ g.IdTelemetry,
+ g.IdItem
+ })
+ .Select(g => new
+ {
+ g.Key.IdRecord,
+ g.Key.IdItem,
+ Data = g.OrderByDescending(i => i.DateTime)
+ .FirstOrDefault()
+ });
+
+ var groupedEntities = await groupedQuery
+ .ToArrayAsync(token)
+ .ConfigureAwait(false);
+
+ var dtos = groupedEntities
+ .Select(e => new WitsItemRecordDto()
+ {
+ IdRecord = e.IdRecord,
+ IdItem = e.IdItem,
+ Date = e.Data!.DateTime.ToRemoteDateTime(request.TimezoneHours),
+ Value = new JsonValue(e.Data!.Value)
+ });
+
+ return dtos;
+ }
+
+ private async Task> GetItemsOrDefaultAsync(
+ WitsRequest request,
+ CancellationToken token)
+ where TEntity : WitsItemBase
+ where TValue : notnull
+ {
+ var query = BuildQuery(request);
var fullDataCount = await query.CountAsync(token);
-
if (fullDataCount == 0)
- return Enumerable.Empty();
+ return Enumerable.Empty();
- if (fullDataCount > 1.75 * approxPointsCount)
+ if (request.ApproxPointsCount is not null && fullDataCount > 1.75 * request.ApproxPointsCount)
{
- var m = (int)Math.Round(1d * fullDataCount / approxPointsCount);
+ var m = (int)Math.Round(1d * fullDataCount / request.ApproxPointsCount!.Value);
if (m > 1)
query = query.Where((d) => (((d.DateTime.DayOfYear * 24 + d.DateTime.Hour) * 60 + d.DateTime.Minute) * 60 + d.DateTime.Second) % m == 0);
}
@@ -99,18 +151,38 @@ namespace AsbCloudInfrastructure.Repository
.AsNoTracking()
.ToListAsync(token)
.ConfigureAwait(false);
-
- var items = entities.Select(e => new ItemRecord
+
+ var items = entities.Select(e => new WitsItemRecordDto
{
IdRecord = e.IdRecord,
- IdTelemetry = e.IdTelemetry,
- Date = e.DateTime.ToRemoteDateTime(timezoneHours),
+ Date = e.DateTime.ToRemoteDateTime(request.TimezoneHours),
IdItem = e.IdItem,
- Item = new JsonValue(e.Value)
+ Value = new JsonValue(e.Value)
});
return items;
}
+ private IQueryable BuildQuery(WitsRequest request)
+ where TEntity : WitsItemBase
+ where TValue : notnull
+ {
+ var query = db.Set().Where(i => i.IdTelemetry == request.IdTelemetry);
+
+ if (request.IdRecord is not null)
+ query = query
+ .Where(d => d.IdRecord == request.IdRecord);
+
+ if (request.DateBeginUtc is not null)
+ query = query
+ .Where(d => d.DateTime >= request.DateBeginUtc);
+
+ if (request.DateEnd is not null)
+ query = query
+ .Where(d => d.DateTime <= request.DateEnd);
+
+ return query;
+ }
+
public async Task SaveDataAsync(int idTelemetry, WitsRecordDto dto, CancellationToken token)
{
var timezoneHours = telemetryService.GetTimezone(idTelemetry).Hours;
@@ -119,7 +191,7 @@ namespace AsbCloudInfrastructure.Repository
var dateTime = dto.Date.ToUtcDateTimeOffset(timezoneHours);
if (item.Value.Value is string valueString)
{
- var entity = MakeEntity( dto.Id, item.Key, idTelemetry, dateTime, valueString);
+ var entity = MakeEntity(dto.Id, item.Key, idTelemetry, dateTime, valueString);
db.WitsItemString.Add(entity);
}
if (item.Value.Value is float valueFloat)
@@ -131,30 +203,31 @@ namespace AsbCloudInfrastructure.Repository
{
var entity = MakeEntity(dto.Id, item.Key, idTelemetry, dateTime, valueInt);
db.WitsItemInt.Add(entity);
- }
- }
+ }
+ }
await db.SaveChangesAsync(token);
}
private static TEntity MakeEntity(int idRecord, int idItem, int idTelemetry, DateTimeOffset dateTime, TValue value)
where TEntity : WitsItemBase, new()
- where TValue: notnull
- => new TEntity() {
- IdRecord = idRecord,
- IdItem = idItem,
- IdTelemetry = idTelemetry,
- DateTime = dateTime,
- Value = value,
- };
-
- internal class ItemRecord
+ where TValue : notnull
+ => new TEntity()
{
- public int IdRecord { get; set; }
- public int IdTelemetry { get; set; }
- public DateTime Date { get; set; }
- public int IdItem { get; set; }
- public JsonValue Item { get; set; } = default!;
- }
- }
+ IdRecord = idRecord,
+ IdItem = idItem,
+ IdTelemetry = idTelemetry,
+ DateTime = dateTime,
+ Value = value,
+ };
+ private class WitsRequest
+ {
+ public int IdTelemetry { get; set; }
+ public DateTimeOffset? DateBeginUtc { get; set; }
+ public DateTimeOffset? DateEnd { get; set; }
+ public int? ApproxPointsCount { get; set; }
+ public double TimezoneHours { get; set; }
+ public int? IdRecord { get; set; }
+ }
+ }
}
diff --git a/AsbCloudWebApi/Controllers/CrudController.cs b/AsbCloudWebApi/Controllers/CrudController.cs
index 4d1442aa..42d5c405 100644
--- a/AsbCloudWebApi/Controllers/CrudController.cs
+++ b/AsbCloudWebApi/Controllers/CrudController.cs
@@ -11,7 +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 контроллер для админки.
///
@@ -140,5 +140,5 @@ namespace AsbCloudWebApi.Controllers
return Ok(result);
}
}
-#nullable disable
+
}
diff --git a/AsbCloudWebApi/Controllers/CrudWellRelatedController.cs b/AsbCloudWebApi/Controllers/CrudWellRelatedController.cs
index cf1110b8..4bf0a800 100644
--- a/AsbCloudWebApi/Controllers/CrudWellRelatedController.cs
+++ b/AsbCloudWebApi/Controllers/CrudWellRelatedController.cs
@@ -10,7 +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 связных со скважиной для админки.
///
@@ -161,5 +161,5 @@ namespace AsbCloudWebApi.Controllers
return false;
}
}
-#nullable disable
+
}
diff --git a/AsbCloudWebApi/Controllers/DailyReportController.cs b/AsbCloudWebApi/Controllers/DailyReportController.cs
index a7ef385b..5abc6659 100644
--- a/AsbCloudWebApi/Controllers/DailyReportController.cs
+++ b/AsbCloudWebApi/Controllers/DailyReportController.cs
@@ -13,7 +13,7 @@ using System.Threading.Tasks;
namespace AsbCloudWebApi.Controllers
{
-#nullable enable
+
///
/// Суточный рапорт
///
@@ -194,5 +194,5 @@ namespace AsbCloudWebApi.Controllers
return false;
}
}
-#nullable disable
+
}
diff --git a/AsbCloudWebApi/Controllers/FileController.cs b/AsbCloudWebApi/Controllers/FileController.cs
index 53b2fc52..0bb69891 100644
--- a/AsbCloudWebApi/Controllers/FileController.cs
+++ b/AsbCloudWebApi/Controllers/FileController.cs
@@ -13,7 +13,7 @@ using AsbCloudApp.Repositories;
namespace AsbCloudWebApi.Controllers
{
-#nullable enable
+
///
/// Хранение файлов
///
@@ -244,5 +244,5 @@ namespace AsbCloudWebApi.Controllers
}
}
}
-#nullable disable
+
}
diff --git a/AsbCloudWebApi/Controllers/OperationStatController.cs b/AsbCloudWebApi/Controllers/OperationStatController.cs
index d32ea4b7..a10dcd93 100644
--- a/AsbCloudWebApi/Controllers/OperationStatController.cs
+++ b/AsbCloudWebApi/Controllers/OperationStatController.cs
@@ -9,7 +9,7 @@ using System.Threading.Tasks;
namespace AsbCloudWebApi.Controllers
{
-#nullable enable
+
///
/// Статистика по операциям (заведенным вручную) на скважине
///
@@ -166,5 +166,5 @@ namespace AsbCloudWebApi.Controllers
idWell, token).ConfigureAwait(false);
}
}
-#nullable disable
+
}
diff --git a/AsbCloudWebApi/Controllers/PlannedTrajectoryController.cs b/AsbCloudWebApi/Controllers/PlannedTrajectoryController.cs
index 5d019e18..96361908 100644
--- a/AsbCloudWebApi/Controllers/PlannedTrajectoryController.cs
+++ b/AsbCloudWebApi/Controllers/PlannedTrajectoryController.cs
@@ -11,7 +11,7 @@ using System.Threading.Tasks;
namespace AsbCloudWebApi.Controllers
{
-#nullable enable
+
///
/// Плановая траектория (загрузка и хранение)
///
@@ -249,5 +249,5 @@ namespace AsbCloudWebApi.Controllers
idWell, token).ConfigureAwait(false);
}
}
-#nullable disable
+
}
diff --git a/AsbCloudWebApi/Controllers/ProcessMapController.cs b/AsbCloudWebApi/Controllers/ProcessMapController.cs
index e2a87c71..1f6ce9a0 100644
--- a/AsbCloudWebApi/Controllers/ProcessMapController.cs
+++ b/AsbCloudWebApi/Controllers/ProcessMapController.cs
@@ -11,7 +11,7 @@ using System.Threading.Tasks;
namespace AsbCloudWebApi.Controllers
{
-#nullable enable
+
///
/// РТК
///
@@ -152,5 +152,5 @@ namespace AsbCloudWebApi.Controllers
return await base.UpdateAsync(value, token);
}
}
-#nullable disable
+
}
\ No newline at end of file
diff --git a/AsbCloudWebApi/Controllers/RequestTrackerController.cs b/AsbCloudWebApi/Controllers/RequestTrackerController.cs
index a645b257..11facc97 100644
--- a/AsbCloudWebApi/Controllers/RequestTrackerController.cs
+++ b/AsbCloudWebApi/Controllers/RequestTrackerController.cs
@@ -6,7 +6,7 @@ using System.Collections.Generic;
namespace AsbCloudWebApi.Controllers
{
-#nullable enable
+
///
/// Мониторинг запросов, ошибок, пользователей
///
@@ -88,5 +88,5 @@ namespace AsbCloudWebApi.Controllers
return Ok(result);
}
}
-#nullable disable
+
}
diff --git a/AsbCloudWebApi/Controllers/SAUB/GtrWitsController.cs b/AsbCloudWebApi/Controllers/SAUB/GtrWitsController.cs
index 895d4721..981ff1e7 100644
--- a/AsbCloudWebApi/Controllers/SAUB/GtrWitsController.cs
+++ b/AsbCloudWebApi/Controllers/SAUB/GtrWitsController.cs
@@ -12,7 +12,7 @@ using System.Threading.Tasks;
namespace AsbCloudWebApi.Controllers.SAUB
{
-#nullable enable
+
[Route("api/[controller]")]
[ApiController]
public class GtrWitsController : ControllerBase
@@ -68,6 +68,33 @@ namespace AsbCloudWebApi.Controllers.SAUB
return Ok(content);
}
+ ///
+ /// получение последних данных ГТИ по ключу record
+ ///
+ /// id скважины
+ /// id record
+ ///
+ ///
+ [HttpGet("{idWell}/{idRecord}")]
+ [Permission]
+ public async Task>> GetLastDataByRecordIdAsync(int idWell, int idRecord, 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();
+
+ var content = await gtrRepository.GetLastDataByRecordIdAsync(idWell, idRecord, token).ConfigureAwait(false);
+
+ return Ok(content);
+ }
+
///
/// Метод для получения WITS записи от панели оператора.
/// Сохраняет в БД.
@@ -91,5 +118,5 @@ namespace AsbCloudWebApi.Controllers.SAUB
return Ok();
}
}
-#nullable disable
+
}
diff --git a/AsbCloudWebApi/Controllers/SAUB/TelemetryWirelineRunOutController.cs b/AsbCloudWebApi/Controllers/SAUB/TelemetryWirelineRunOutController.cs
index da858a94..a9ee2815 100644
--- a/AsbCloudWebApi/Controllers/SAUB/TelemetryWirelineRunOutController.cs
+++ b/AsbCloudWebApi/Controllers/SAUB/TelemetryWirelineRunOutController.cs
@@ -11,7 +11,7 @@ using AsbCloudApp.Repositories;
namespace AsbCloudWebApi.Controllers.SAUB
{
-#nullable enable
+
///
/// Наработка талевого каната
///
@@ -112,5 +112,5 @@ namespace AsbCloudWebApi.Controllers.SAUB
}
}
-#nullable disable
+
}
diff --git a/AsbCloudWebApi/Controllers/ScheduleController.cs b/AsbCloudWebApi/Controllers/ScheduleController.cs
index 8df91cce..a8c73d30 100644
--- a/AsbCloudWebApi/Controllers/ScheduleController.cs
+++ b/AsbCloudWebApi/Controllers/ScheduleController.cs
@@ -8,7 +8,7 @@ using System.Threading.Tasks;
namespace AsbCloudWebApi.Controllers
{
-#nullable enable
+
///
/// Расписание бурильщиков
///
diff --git a/AsbCloudWebApi/Controllers/WellCompositeController.cs b/AsbCloudWebApi/Controllers/WellCompositeController.cs
index 0bfe40c1..8c155c93 100644
--- a/AsbCloudWebApi/Controllers/WellCompositeController.cs
+++ b/AsbCloudWebApi/Controllers/WellCompositeController.cs
@@ -10,7 +10,7 @@ using System.Threading.Tasks;
namespace AsbCloudWebApi.Controllers
{
-#nullable enable
+
///
/// Композитная скважина
///
@@ -90,5 +90,5 @@ namespace AsbCloudWebApi.Controllers
idWell, token).ConfigureAwait(false);
}
}
-#nullable disable
+
}
diff --git a/AsbCloudWebApi/Controllers/WellFinalDocumentsController.cs b/AsbCloudWebApi/Controllers/WellFinalDocumentsController.cs
index b24898dd..53e1d61a 100644
--- a/AsbCloudWebApi/Controllers/WellFinalDocumentsController.cs
+++ b/AsbCloudWebApi/Controllers/WellFinalDocumentsController.cs
@@ -11,7 +11,7 @@ using AsbCloudApp.Repositories;
namespace AsbCloudWebApi.Controllers
{
-#nullable enable
+
///
/// Дело скважины
///
@@ -175,5 +175,5 @@ namespace AsbCloudWebApi.Controllers
idWell, token).ConfigureAwait(false);
}
}
-#nullable disable
+
}
diff --git a/AsbCloudWebApi/Controllers/WellOperationController.cs b/AsbCloudWebApi/Controllers/WellOperationController.cs
index 5492ea24..0a6183df 100644
--- a/AsbCloudWebApi/Controllers/WellOperationController.cs
+++ b/AsbCloudWebApi/Controllers/WellOperationController.cs
@@ -14,7 +14,7 @@ using System.Threading.Tasks;
namespace AsbCloudWebApi.Controllers
{
-#nullable enable
+
///
/// Буровые операции (вводимые вручную)
///
@@ -393,5 +393,5 @@ namespace AsbCloudWebApi.Controllers
idWell, token).ConfigureAwait(false);
}
}
-#nullable disable
+
}
diff --git a/AsbCloudWebApi/Converters/DateOnlyJsonConverter.cs b/AsbCloudWebApi/Converters/DateOnlyJsonConverter.cs
index 7883e7c0..81d0d0ff 100644
--- a/AsbCloudWebApi/Converters/DateOnlyJsonConverter.cs
+++ b/AsbCloudWebApi/Converters/DateOnlyJsonConverter.cs
@@ -4,7 +4,7 @@ using System.Text.Json.Serialization;
namespace AsbCloudWebApi.Converters
{
-#nullable enable
+
public class DateOnlyJsonConverter : JsonConverter
{
public override DateOnly Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
@@ -18,5 +18,5 @@ namespace AsbCloudWebApi.Converters
writer.WriteStringValue(isoDate);
}
}
-#nullable disable
+
}
diff --git a/AsbCloudWebApi/Converters/DateOnlyTypeConverter.cs b/AsbCloudWebApi/Converters/DateOnlyTypeConverter.cs
index df826075..581a070d 100644
--- a/AsbCloudWebApi/Converters/DateOnlyTypeConverter.cs
+++ b/AsbCloudWebApi/Converters/DateOnlyTypeConverter.cs
@@ -6,7 +6,7 @@ using System.Text.Json.Serialization;
namespace AsbCloudWebApi.Converters
{
-#nullable enable
+
public class DateOnlyTypeConverter : TypeConverter
{
public override bool CanConvertFrom(ITypeDescriptorContext? context, Type sourceType)
@@ -44,5 +44,5 @@ namespace AsbCloudWebApi.Converters
return base.ConvertTo(context, culture, value, destinationType);
}
}
-#nullable disable
+
}
diff --git a/AsbCloudWebApi/Converters/TimeOnlyTypeConverter.cs b/AsbCloudWebApi/Converters/TimeOnlyTypeConverter.cs
index ceb40b04..02a81ae0 100644
--- a/AsbCloudWebApi/Converters/TimeOnlyTypeConverter.cs
+++ b/AsbCloudWebApi/Converters/TimeOnlyTypeConverter.cs
@@ -4,7 +4,7 @@ using System.Globalization;
namespace AsbCloudWebApi.Converters
{
-#nullable enable
+
public class TimeOnlyTypeConverter : TypeConverter
{
public override bool CanConvertFrom(ITypeDescriptorContext? context, Type sourceType)
@@ -42,5 +42,5 @@ namespace AsbCloudWebApi.Converters
return base.ConvertTo(context, culture, value, destinationType);
}
}
-#nullable disable
+
}
diff --git a/AsbCloudWebApi/Middlewares/PermissionsMiddlware.cs b/AsbCloudWebApi/Middlewares/PermissionsMiddlware.cs
index a6b2c07a..1c352b90 100644
--- a/AsbCloudWebApi/Middlewares/PermissionsMiddlware.cs
+++ b/AsbCloudWebApi/Middlewares/PermissionsMiddlware.cs
@@ -10,7 +10,7 @@ using System.Threading.Tasks;
namespace AsbCloudWebApi.Middlewares
{
-#nullable enable
+
public class PermissionsMiddlware
{
private readonly RequestDelegate next;
@@ -80,5 +80,5 @@ namespace AsbCloudWebApi.Middlewares
await context.ForbidAsync();
}
}
-#nullable disable
+
}
diff --git a/AsbCloudWebApi/Middlewares/RequerstTrackerMiddleware.cs b/AsbCloudWebApi/Middlewares/RequerstTrackerMiddleware.cs
index 7b337f46..db4a2e33 100644
--- a/AsbCloudWebApi/Middlewares/RequerstTrackerMiddleware.cs
+++ b/AsbCloudWebApi/Middlewares/RequerstTrackerMiddleware.cs
@@ -4,7 +4,7 @@ using System.Threading.Tasks;
namespace AsbCloudWebApi.Middlewares
{
-#nullable enable
+
public class RequerstTrackerMiddleware
{
private readonly RequestDelegate next;
@@ -49,5 +49,5 @@ namespace AsbCloudWebApi.Middlewares
}
}
}
-#nullable disable
+
}
diff --git a/AsbCloudWebApi/Middlewares/UserConnectionsLimitMiddlware.cs b/AsbCloudWebApi/Middlewares/UserConnectionsLimitMiddlware.cs
index c9f45dea..ba24a0c9 100644
--- a/AsbCloudWebApi/Middlewares/UserConnectionsLimitMiddlware.cs
+++ b/AsbCloudWebApi/Middlewares/UserConnectionsLimitMiddlware.cs
@@ -7,7 +7,7 @@ using System.Threading.Tasks;
namespace AsbCloudWebApi.Middlewares
{
-#nullable enable
+
///
/// This is not real middleware it`s part of PermissionsMiddlware.
/// DO NOT register it in setup.cs as middleware.
@@ -69,5 +69,5 @@ namespace AsbCloudWebApi.Middlewares
}
}
}
-#nullable disable
+
}