diff --git a/AsbCloudApp/Data/DataSaubStatDto.cs b/AsbCloudApp/Data/DataSaubStatDto.cs
index ceae4f9d..30a09081 100644
--- a/AsbCloudApp/Data/DataSaubStatDto.cs
+++ b/AsbCloudApp/Data/DataSaubStatDto.cs
@@ -3,6 +3,9 @@ using AsbCloudApp.Data.WellOperation;
namespace AsbCloudApp.Data
{
+ ///
+ /// dto для хранения данных статистики сауб
+ ///
public class DataSaubStatDto:IId
{
///
diff --git a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanReamDto.cs b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanReamDto.cs
index 9d6438dc..853a7fcd 100644
--- a/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanReamDto.cs
+++ b/AsbCloudApp/Data/ProcessMaps/ProcessMapPlanReamDto.cs
@@ -72,7 +72,7 @@ public class ProcessMapPlanReamDto : ProcessMapPlanBaseDto, IValidatableObject
public double Torque { get; set; }
///
- public IEnumerable Validate(ValidationContext validationContext)
+ public override IEnumerable Validate(ValidationContext validationContext)
{
if (DepthEnd < DepthStart)
yield return new ValidationResult(
diff --git a/AsbCloudApp/Data/Progress/ReportProgressDto.cs b/AsbCloudApp/Data/Progress/ReportProgressDto.cs
index b14166e9..400b6c9f 100644
--- a/AsbCloudApp/Data/Progress/ReportProgressDto.cs
+++ b/AsbCloudApp/Data/Progress/ReportProgressDto.cs
@@ -8,5 +8,5 @@ public class ReportProgressFinalDto : ReportProgressDto
///
/// файл
///
- public FileInfoDto file { get; set; }
+ public FileInfoDto? file { get; set; }
}
diff --git a/AsbCloudApp/Data/WellOperation/WellOperationDto.cs b/AsbCloudApp/Data/WellOperation/WellOperationDto.cs
index 17015451..6a0a473e 100644
--- a/AsbCloudApp/Data/WellOperation/WellOperationDto.cs
+++ b/AsbCloudApp/Data/WellOperation/WellOperationDto.cs
@@ -4,6 +4,9 @@ using System.ComponentModel.DataAnnotations;
namespace AsbCloudApp.Data.WellOperation;
+///
+/// Операция по скважине
+///
public class WellOperationDto : ItemInfoDto,
IId,
IWellRelated,
diff --git a/AsbCloudApp/Services/ITelemetryService.cs b/AsbCloudApp/Services/ITelemetryService.cs
index 576086e6..a981be33 100644
--- a/AsbCloudApp/Services/ITelemetryService.cs
+++ b/AsbCloudApp/Services/ITelemetryService.cs
@@ -70,6 +70,13 @@ namespace AsbCloudApp.Services
///
///
Task MergeAsync(int from, int to, CancellationToken token);
+
+ ///
+ /// Получить телеметрию по последней дате
+ ///
+ ///
+ ///
+ ///
Task GetTelemetriesInfoByLastData(DateTimeOffset from, CancellationToken token);
}
}
\ No newline at end of file
diff --git a/AsbCloudInfrastructure/MemoryCacheExtentions.cs b/AsbCloudInfrastructure/MemoryCacheExtentions.cs
index 0153778a..eb57af3f 100644
--- a/AsbCloudInfrastructure/MemoryCacheExtentions.cs
+++ b/AsbCloudInfrastructure/MemoryCacheExtentions.cs
@@ -47,13 +47,17 @@ namespace AsbCloudInfrastructure
public static Task> GetOrCreateBasicAsync(this IMemoryCache memoryCache, Func>> getterAsync, CancellationToken token)
{
var key = typeof(T).FullName;
- var cache = memoryCache.GetOrCreateAsync(key, async (cacheEntry) => {
+ if (key == null)
+ return Task.FromResult(Enumerable.Empty());
+
+ var cache = memoryCache.GetOrCreateAsync(key, async (cacheEntry) =>
+ {
cacheEntry.AbsoluteExpirationRelativeToNow = CacheOlescence;
cacheEntry.SlidingExpiration = CacheOlescence;
var entities = await getterAsync(token);
return entities;
});
- return cache;
+ return cache!;
}
///
@@ -84,12 +88,13 @@ namespace AsbCloudInfrastructure
public static IEnumerable GetOrCreateBasic(this IMemoryCache memoryCache, Func> getter)
{
var key = typeof(T).FullName;
- var cache = memoryCache.GetOrCreate(key, cacheEntry => {
+ var cache = memoryCache.GetOrCreate(key, cacheEntry =>
+ {
cacheEntry.AbsoluteExpirationRelativeToNow = CacheOlescence;
cacheEntry.SlidingExpiration = CacheOlescence;
return getter();
});
- return cache;
+ return cache!;
}
///
@@ -102,6 +107,10 @@ namespace AsbCloudInfrastructure
where T : class
{
var key = typeof(T).FullName;
+
+ if (key == null)
+ return;
+
memoryCache.Remove(key);
}
}
diff --git a/AsbCloudInfrastructure/Repository/CacheBase.cs b/AsbCloudInfrastructure/Repository/CacheBase.cs
index 84f702df..53ac0b93 100644
--- a/AsbCloudInfrastructure/Repository/CacheBase.cs
+++ b/AsbCloudInfrastructure/Repository/CacheBase.cs
@@ -43,7 +43,7 @@ namespace AsbCloudInfrastructure.Repository
cacheEntry.Value = entities;
return entities;
});
- return cache;
+ return cache!;
}
protected virtual Task> GetCacheAsync(CancellationToken token)
diff --git a/AsbCloudInfrastructure/Repository/NotificationRepository.cs b/AsbCloudInfrastructure/Repository/NotificationRepository.cs
index 7e184f02..ae2ec649 100644
--- a/AsbCloudInfrastructure/Repository/NotificationRepository.cs
+++ b/AsbCloudInfrastructure/Repository/NotificationRepository.cs
@@ -77,7 +77,7 @@ public class NotificationRepository : CrudRepositoryBase UpdateRangeAsync(IEnumerable notifications, CancellationToken cancellationToken)
+ public override async Task UpdateRangeAsync(IEnumerable notifications, CancellationToken cancellationToken)
{
if (!notifications.Any())
return 0;
diff --git a/AsbCloudInfrastructure/Services/Email/BaseFactory.cs b/AsbCloudInfrastructure/Services/Email/BaseFactory.cs
index 11c8feaa..c0431016 100644
--- a/AsbCloudInfrastructure/Services/Email/BaseFactory.cs
+++ b/AsbCloudInfrastructure/Services/Email/BaseFactory.cs
@@ -16,10 +16,10 @@ namespace AsbCloudInfrastructure.Services.Email
public BaseFactory(IConfiguration configuration)
{
- platformName = configuration.GetValue("email:platformName", "Цифровое бурение");
- platformUrl = configuration.GetValue("email:platformUrl", "https://cloud.digitaldrilling.ru/");
- companyName = configuration.GetValue("email:companyName", "ООО \"Цифровое бурение\"");
- supportMail = configuration.GetValue("email:supportMail", "support@digitaldrilling.ru");
+ platformName = configuration.GetValue("email:platformName", "Цифровое бурение") ?? string.Empty;
+ platformUrl = configuration.GetValue("email:platformUrl", "https://cloud.digitaldrilling.ru/") ?? string.Empty;
+ companyName = configuration.GetValue("email:companyName", "ООО \"Цифровое бурение\"") ?? string.Empty;
+ supportMail = configuration.GetValue("email:supportMail", "support@digitaldrilling.ru") ?? string.Empty;
}
public static string GetOrEmptyImageBase64(string resourceFileName)
diff --git a/AsbCloudInfrastructure/Services/Email/DrillingMailBodyFactory.cs b/AsbCloudInfrastructure/Services/Email/DrillingMailBodyFactory.cs
index ba0da560..d1371110 100644
--- a/AsbCloudInfrastructure/Services/Email/DrillingMailBodyFactory.cs
+++ b/AsbCloudInfrastructure/Services/Email/DrillingMailBodyFactory.cs
@@ -12,8 +12,8 @@ namespace AsbCloudInfrastructure.Services.Email
public DrillingMailBodyFactory(IConfiguration configuration)
: base(configuration)
{
- platformName = configuration.GetValue("email:platformName", "Цифровое бурение");
- platformUrl = configuration.GetValue("email:platformUrl", "https://cloud.digitaldrilling.ru/");
+ platformName = configuration.GetValue("email:platformName", "Цифровое бурение") ?? string.Empty;
+ platformUrl = configuration.GetValue("email:platformUrl", "https://cloud.digitaldrilling.ru/") ?? string.Empty;
}
public override string MakeSubject(WellDto well, string action)
diff --git a/AsbCloudInfrastructure/Services/Email/EmailNotificationTransportService.cs b/AsbCloudInfrastructure/Services/Email/EmailNotificationTransportService.cs
index 2eec7b27..88fbe691 100644
--- a/AsbCloudInfrastructure/Services/Email/EmailNotificationTransportService.cs
+++ b/AsbCloudInfrastructure/Services/Email/EmailNotificationTransportService.cs
@@ -29,9 +29,9 @@ namespace AsbCloudInfrastructure.Services.Email
{
this.userRepository = userRepository;
- this.sender = configuration.GetValue("email:sender", string.Empty);
- this.smtpPassword = configuration.GetValue("email:password", string.Empty);
- this.smtpServer = configuration.GetValue("email:smtpServer", string.Empty);
+ this.sender = configuration.GetValue("email:sender", string.Empty) ?? string.Empty;
+ this.smtpPassword = configuration.GetValue("email:password", string.Empty) ?? string.Empty;
+ this.smtpServer = configuration.GetValue("email:smtpServer", string.Empty) ?? string.Empty;
var configError = string.IsNullOrEmpty(this.sender) ||
string.IsNullOrEmpty(this.smtpPassword) ||
diff --git a/AsbCloudInfrastructure/Services/Email/WellFinalDocumentMailBodyFactory .cs b/AsbCloudInfrastructure/Services/Email/WellFinalDocumentMailBodyFactory .cs
index 751ab042..814923fe 100644
--- a/AsbCloudInfrastructure/Services/Email/WellFinalDocumentMailBodyFactory .cs
+++ b/AsbCloudInfrastructure/Services/Email/WellFinalDocumentMailBodyFactory .cs
@@ -14,7 +14,7 @@ namespace AsbCloudInfrastructure
public WellFinalDocumentMailBodyFactory(IConfiguration configuration)
: base(configuration)
{
- platformName = configuration.GetValue("email:platformName", "Цифровое бурение");
+ platformName = configuration.GetValue("email:platformName", "Цифровое бурение") ?? string.Empty;
}
public override string MakeSubject(WellDto well, string action)
diff --git a/AsbCloudInfrastructure/Services/HelpPageService.cs b/AsbCloudInfrastructure/Services/HelpPageService.cs
index 396ca595..45d4d18d 100644
--- a/AsbCloudInfrastructure/Services/HelpPageService.cs
+++ b/AsbCloudInfrastructure/Services/HelpPageService.cs
@@ -30,7 +30,7 @@ public class HelpPageService : IHelpPageService
{
this.helpPageRepository = helpPageRepository;
this.fileStorageRepository = fileStorageRepository;
- directoryNameHelpPageFiles = configuration.GetValue("DirectoryNameHelpPageFiles");
+ directoryNameHelpPageFiles = configuration.GetValue("DirectoryNameHelpPageFiles") ?? string.Empty;
if (string.IsNullOrWhiteSpace(directoryNameHelpPageFiles))
directoryNameHelpPageFiles = "helpPages";
diff --git a/AsbCloudInfrastructure/Services/ManualCatalogService.cs b/AsbCloudInfrastructure/Services/ManualCatalogService.cs
index 8c779bc7..7776a4ef 100644
--- a/AsbCloudInfrastructure/Services/ManualCatalogService.cs
+++ b/AsbCloudInfrastructure/Services/ManualCatalogService.cs
@@ -35,7 +35,7 @@ public class ManualCatalogService : IManualCatalogService
this.fileStorageRepository = fileStorageRepository;
this.manualDirectoryRepository = manualDirectoryRepository;
this.manualRepository = manualRepository;
- directoryFiles = configuration.GetValue("DirectoryManualFiles");
+ directoryFiles = configuration.GetValue("DirectoryManualFiles") ?? string.Empty;
if (string.IsNullOrWhiteSpace(directoryFiles))
directoryFiles = "manuals";
diff --git a/AsbCloudInfrastructure/Services/MeasureService.cs b/AsbCloudInfrastructure/Services/MeasureService.cs
index 7a349450..a291a8c1 100644
--- a/AsbCloudInfrastructure/Services/MeasureService.cs
+++ b/AsbCloudInfrastructure/Services/MeasureService.cs
@@ -38,7 +38,7 @@ namespace AsbCloudInfrastructure.Services
.ToDictionaryAsync(e => e.Id, e => e.Name, token);
return entities;
});
- return cache;
+ return cache!;
}
public async Task GetLastOrDefaultAsync(int idWell, int idCategory, CancellationToken token)
diff --git a/AsbCloudInfrastructure/Services/ReduceSamplingService.cs b/AsbCloudInfrastructure/Services/ReduceSamplingService.cs
index b7581ad9..7fc7e19c 100644
--- a/AsbCloudInfrastructure/Services/ReduceSamplingService.cs
+++ b/AsbCloudInfrastructure/Services/ReduceSamplingService.cs
@@ -36,7 +36,7 @@ namespace AsbCloudInfrastructure.Services
private ReduceSamplingService(IConfiguration configuration)
{
- connectionString = configuration.GetConnectionString("DefaultConnection");
+ connectionString = configuration.GetConnectionString("DefaultConnection") ?? string.Empty;
}
~ReduceSamplingService()
diff --git a/AsbCloudInfrastructure/Services/SAUB/TelemetryUserService.cs b/AsbCloudInfrastructure/Services/SAUB/TelemetryUserService.cs
index 20b53c43..b9efeb11 100644
--- a/AsbCloudInfrastructure/Services/SAUB/TelemetryUserService.cs
+++ b/AsbCloudInfrastructure/Services/SAUB/TelemetryUserService.cs
@@ -84,7 +84,7 @@ namespace AsbCloudInfrastructure.Services.SAUB
var entities = db.Set().ToArray();
return entities;
});
- return cache;
+ return cache!;
}
private void DropCache()
diff --git a/AsbCloudWebApi.IntegrationTests/Clients/IDrillTestControllerClient.cs b/AsbCloudWebApi.IntegrationTests/Clients/IDrillTestControllerClient.cs
index ba622557..fa1cd81e 100644
--- a/AsbCloudWebApi.IntegrationTests/Clients/IDrillTestControllerClient.cs
+++ b/AsbCloudWebApi.IntegrationTests/Clients/IDrillTestControllerClient.cs
@@ -21,7 +21,7 @@ public interface IDrillTestControllerClient
int id,
CancellationToken cancellationToken);
- [HttpGet("/api/well/{idWell}/DrillTest/all")]
+ [Get("/api/well/{idWell}/DrillTest/all")]
Task>> GetListAsync(
int idWell,
FileReportRequest request,
diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/DetectedOperationControllerTests.cs b/AsbCloudWebApi.IntegrationTests/Controllers/DetectedOperationControllerTests.cs
index 5f518884..7b8a08a9 100644
--- a/AsbCloudWebApi.IntegrationTests/Controllers/DetectedOperationControllerTests.cs
+++ b/AsbCloudWebApi.IntegrationTests/Controllers/DetectedOperationControllerTests.cs
@@ -55,7 +55,6 @@ public class DetectedOperationControllerTests : BaseIntegrationTest
//assert
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
- Assert.NotNull(response.Content);
Assert.Equal(1, response.Content);
}
@@ -76,7 +75,6 @@ public class DetectedOperationControllerTests : BaseIntegrationTest
//assert
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
- Assert.NotNull(response.Content);
Assert.Equal(1, response.Content);
}
@@ -112,7 +110,6 @@ public class DetectedOperationControllerTests : BaseIntegrationTest
//assert
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
- Assert.NotNull(response.Content);
Assert.Equal(1, response.Content);
}
diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapReportDrillingControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapReportDrillingControllerTest.cs
index 7de0acd5..07685f1e 100644
--- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapReportDrillingControllerTest.cs
+++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapReportDrillingControllerTest.cs
@@ -77,7 +77,7 @@ public class ProcessMapReportDrillingControllerTest : BaseIntegrationTest
//assert
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
Assert.NotNull(response.Content);
- Assert.Equal(1, response.Content.Count());
+ Assert.Single(response.Content);
}
[Fact]
diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/WellOperations/WellOperationControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/WellOperations/WellOperationControllerTest.cs
index 117ddae1..bb4c54df 100644
--- a/AsbCloudWebApi.IntegrationTests/Controllers/WellOperations/WellOperationControllerTest.cs
+++ b/AsbCloudWebApi.IntegrationTests/Controllers/WellOperations/WellOperationControllerTest.cs
@@ -118,7 +118,7 @@ public class WellOperationControllerTest : BaseIntegrationTest
var response = await client.GetPageOperationsAsync(well.Id, request);
//assert
- Assert.Equal(response.StatusCode, HttpStatusCode.OK);
+ Assert.Equal(HttpStatusCode.OK, response.StatusCode);
Assert.NotNull(response.Content);
var totalExpected = response.Content.Count - pageSize * pageIndex;
@@ -230,10 +230,8 @@ public class WellOperationControllerTest : BaseIntegrationTest
Assert.True(notExistedInDb.Count() == 0);
}
- [Theory]
- [InlineData(WellOperation.IdOperationTypePlan)]
- [InlineData(WellOperation.IdOperationTypeFact)]
- public async Task GetPageOperationsAsyncWithDaysAndNpv_returns_success(int idType)
+ [Fact]
+ public async Task GetPageOperationsAsyncWithDaysAndNpv_returns_success()
{
//arrange
const int pageSize = 10;
diff --git a/AsbCloudWebApi.Tests/Background/BackgroundWorkerTest.cs b/AsbCloudWebApi.Tests/Background/BackgroundWorkerTest.cs
index 912b4806..962ac43a 100644
--- a/AsbCloudWebApi.Tests/Background/BackgroundWorkerTest.cs
+++ b/AsbCloudWebApi.Tests/Background/BackgroundWorkerTest.cs
@@ -48,7 +48,7 @@ public class BackgroundWorkerTest
backgroundWorker.Enqueue(work);
}
- await backgroundWorker.ExecuteTask;
+ await backgroundWorker.ExecuteTask!;
//assert
Assert.Equal(workCount, result);
@@ -79,7 +79,7 @@ public class BackgroundWorkerTest
backgroundWorker.Enqueue(badWork);
backgroundWorker.Enqueue(goodWork);
- await backgroundWorker.ExecuteTask;
+ await backgroundWorker.ExecuteTask!;
//assert
Assert.Equal(expectadResult, result);
@@ -109,7 +109,7 @@ public class BackgroundWorkerTest
var removed = backgroundWorker.TryRemoveFromQueue((workCount - 1).ToString());
- await backgroundWorker.ExecuteTask;
+ await backgroundWorker.ExecuteTask!;
//assert
Assert.True(removed);
diff --git a/AsbCloudWebApi.Tests/Services/HelpPageServiceTest.cs b/AsbCloudWebApi.Tests/Services/HelpPageServiceTest.cs
index e722fcb9..38fdf8bc 100644
--- a/AsbCloudWebApi.Tests/Services/HelpPageServiceTest.cs
+++ b/AsbCloudWebApi.Tests/Services/HelpPageServiceTest.cs
@@ -1,13 +1,13 @@
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Threading;
-using System.Threading.Tasks;
using AsbCloudApp.Data;
using AsbCloudApp.Repositories;
using AsbCloudInfrastructure.Services;
using Microsoft.Extensions.Configuration;
using NSubstitute;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Threading;
+using System.Threading.Tasks;
using Xunit;
namespace AsbCloudWebApi.Tests.Services;
@@ -18,7 +18,7 @@ public class HelpPageServiceTest
private const string fileName = "Справка_для_страницы_test.pdf";
private const int idCategory = 20000;
- private static Dictionary configSettings = new()
+ private static Dictionary configSettings = new()
{
{ "DirectoryNameHelpPageFiles", "helpPages" }
};
diff --git a/AsbCloudWebApi.Tests/Services/Notification/EmailNotificationTransportServiceTests.cs b/AsbCloudWebApi.Tests/Services/Notification/EmailNotificationTransportServiceTests.cs
index 5b6bcb1d..386de44d 100644
--- a/AsbCloudWebApi.Tests/Services/Notification/EmailNotificationTransportServiceTests.cs
+++ b/AsbCloudWebApi.Tests/Services/Notification/EmailNotificationTransportServiceTests.cs
@@ -43,7 +43,7 @@ namespace AsbCloudWebApi.Tests.Services.Notification
Surname = "Test",
};
- private static Dictionary configSettings = new()
+ private static Dictionary configSettings = new()
{
{ "email:sender", "bot@digitaldrilling.ru" },
{ "email:password", "8wZrXSfP" },
diff --git a/AsbCloudWebApi/Controllers/DrillerController.cs b/AsbCloudWebApi/Controllers/DrillerController.cs
index 48efca2c..5e3ff126 100644
--- a/AsbCloudWebApi/Controllers/DrillerController.cs
+++ b/AsbCloudWebApi/Controllers/DrillerController.cs
@@ -46,9 +46,9 @@ namespace AsbCloudWebApi.Controllers
var drillers = schedulePage
.Select(s => s.Driller)
.Where(d => d is not null)
- .GroupBy(d => d.Id)
+ .GroupBy(d => d!.Id)
.Select(group => group.First())
- .OrderBy(d => d.Surname);
+ .OrderBy(d => d!.Surname);
return Ok(drillers);
}
diff --git a/AsbCloudWebApi/Extensions.cs b/AsbCloudWebApi/Extensions.cs
index a19dcc6e..d805eac7 100644
--- a/AsbCloudWebApi/Extensions.cs
+++ b/AsbCloudWebApi/Extensions.cs
@@ -114,7 +114,7 @@ public static class Extensions
///
/// Получение Excel
///
- ///
+ ///
///
///
public static Stream GetExcelFile(this IFormFile file)