diff --git a/AsbCloudApp/Data/SAUB/TelemetryEventDto.cs b/AsbCloudApp/Data/SAUB/TelemetryEventDto.cs new file mode 100644 index 00000000..e9a8a90e --- /dev/null +++ b/AsbCloudApp/Data/SAUB/TelemetryEventDto.cs @@ -0,0 +1,29 @@ +namespace AsbCloudApp.Data.SAUB; + +/// +/// dto для события телеметрии +/// +public class TelemetryEventDto +{ + /// + /// ключ события + /// + public object Id { get; set; } + + /// + /// ключ категории + /// + public int IdCategory { get; set; } + + /// + /// шаблон сообщения + /// + public string MessageTemplate { get; set; } = null!; + + /// + /// метод формирования текста сообщения по шаблону + /// + /// аргументы, которые подставляются в шаблон сообщения + /// + public string MakeMessageText(string?[] args) => string.Format(MessageTemplate, args); +} diff --git a/AsbCloudApp/Data/SAUB/TelemetryMessageDto.cs b/AsbCloudApp/Data/SAUB/TelemetryMessageDto.cs index 572ab650..b34d1289 100644 --- a/AsbCloudApp/Data/SAUB/TelemetryMessageDto.cs +++ b/AsbCloudApp/Data/SAUB/TelemetryMessageDto.cs @@ -7,13 +7,6 @@ namespace AsbCloudApp.Data.SAUB; /// public class TelemetryMessageDto : IId { - /// - /// - /// - public TelemetryMessageDto() - { - - } /// /// Id сообщения в базе панели оператора /// diff --git a/AsbCloudApp/Data/StatCriticalMessageDto.cs b/AsbCloudApp/Data/StatCriticalMessageDto.cs new file mode 100644 index 00000000..e8640ab6 --- /dev/null +++ b/AsbCloudApp/Data/StatCriticalMessageDto.cs @@ -0,0 +1,28 @@ + +namespace AsbCloudApp.Data; + +/// +/// dto для отображения статистики сообщений +/// +public class StatCriticalMessageDto +{ + /// + /// ключ телеметрии + /// + public int IdTelemetry { get; set; } + + /// + /// ключ категории + /// + public int? IdCategory { get; set; } + + /// + /// шаблон сообщения + /// + public string? MessageTemplate { get; set; } + + /// + /// количество сообщений + /// + public int MessagesCount { get; set; } +} diff --git a/AsbCloudInfrastructure.Tests/Services/MessageServiceTest.cs b/AsbCloudInfrastructure.Tests/Services/MessageServiceTest.cs index 955c2101..c6a0627d 100644 --- a/AsbCloudInfrastructure.Tests/Services/MessageServiceTest.cs +++ b/AsbCloudInfrastructure.Tests/Services/MessageServiceTest.cs @@ -4,15 +4,10 @@ using AsbCloudApp.Repositories; using AsbCloudApp.Requests; using AsbCloudApp.Services; using AsbCloudDb.Model; -using AsbCloudInfrastructure.Repository; using AsbCloudInfrastructure.Services; -using AsbCloudInfrastructure.Services.SAUB; -using DocumentFormat.OpenXml.Office2010.ExcelAc; using NSubstitute; -using Org.BouncyCastle.Asn1.Ocsp; using System; using System.Collections.Generic; -using System.IO; using System.Linq; using System.Threading; using System.Threading.Tasks; @@ -48,69 +43,69 @@ public class MessageServiceTest { Id = 1, IdCategory = 1, - MessageTemplate = " 1 1" + MessageTemplate = "Шаблон сообщения 1 категории 1" }, new TelemetryEventDto() { Id = 2, IdCategory = 1, - MessageTemplate = " 2 1" + MessageTemplate = "Шаблон сообщения 2 категории 1" }, new TelemetryEventDto() { Id = 3, IdCategory = 1, - MessageTemplate = " 3 1" + MessageTemplate = "Шаблон сообщения 3 категории 1" }, new TelemetryEventDto() { Id = 4, IdCategory = 2, - MessageTemplate = " 1 2" + MessageTemplate = "Шаблон сообщения 1 категории 2" }, new TelemetryEventDto() { Id = 5, IdCategory = 2, - MessageTemplate = " 2 2" + MessageTemplate = "Шаблон сообщения 2 категории 2" }, new TelemetryEventDto() { Id = 6, IdCategory = 3, - MessageTemplate = " 1 3" + MessageTemplate = "Шаблон сообщения 1 категории 3" } }; /// - /// : - /// 1: - /// 1: - /// 1: - /// 1 - /// 2 - /// 3 - /// 2: - /// 1 - /// 2 - /// 3 - /// 3: - /// 1 - /// 2 - /// 3 - /// 2: - /// 2: - /// 1 - /// 2 - /// 3: - /// 1 - /// 2 - /// 2 - /// 3: - /// 3: - /// 1 - /// 2 - /// 3 + /// Структура: + /// Телеметрия 1: + /// Категория 1: + /// Событие 1: + /// Сообщение 1 + /// Сообщение 2 + /// Сообщение 3 + /// Событие 2: + /// Сообщение 1 + /// Сообщение 2 + /// Сообщение 3 + /// Событие 3: + /// Сообщение 1 + /// Сообщение 2 + /// Сообщение 3 + /// Категория 2: + /// Событие 2: + /// Сообщение 1 + /// Сообщение 2 + /// Событие 3: + /// Сообщение 1 + /// Сообщение 2 + /// Телеметрия 2 + /// Категория 3: + /// Событие 3: + /// Сообщение 1 + /// Сообщение 2 + /// Сообщение 3 /// /// private static readonly List messages = new List() @@ -219,7 +214,6 @@ public class MessageServiceTest private readonly IMessageRepository messageRepositoryMock = Substitute.For(); private readonly IEventRepository eventRepositoryMock = Substitute.For(); private readonly ITelemetryService telemetryServiceMock = Substitute.For(); - private readonly IAsbCloudDbContext db = Substitute.For(); public MessageServiceTest() { @@ -256,7 +250,7 @@ public class MessageServiceTest var mCount_Telemetry_1_Category_1_Template_1_Actual = result .Where(x => x.IdTelemetry == 1) .Where(x => x.IdCategory == 1) - .Where(x => x.MessageTemplate == " 1 1") + .Where(x => x.MessageTemplate == "Шаблон сообщения 1 категории 1") .Sum(x => x.MessagesCount); Assert.Equal(mCount_Telemetry_1_Category_1_Template_1_Expected, mCount_Telemetry_1_Category_1_Template_1_Actual); @@ -267,7 +261,7 @@ public class MessageServiceTest var mCount_Telemetry_1_Category_1_Template_2_Actual = result .Where(x => x.IdTelemetry == 1) .Where(x => x.IdCategory == 1) - .Where(x => x.MessageTemplate == " 2 1") + .Where(x => x.MessageTemplate == "Шаблон сообщения 2 категории 1") .Sum(x => x.MessagesCount); Assert.Equal(mCount_Telemetry_1_Category_1_Template_2_Expected, mCount_Telemetry_1_Category_1_Template_2_Actual); @@ -278,7 +272,7 @@ public class MessageServiceTest var mCount_Telemetry_1_Category_1_Template_3_Actual = result .Where(x => x.IdTelemetry == 1) .Where(x => x.IdCategory == 1) - .Where(x => x.MessageTemplate == " 3 1") + .Where(x => x.MessageTemplate == "Шаблон сообщения 3 категории 1") .Sum(x => x.MessagesCount); Assert.Equal(mCount_Telemetry_1_Category_1_Template_3_Expected, mCount_Telemetry_1_Category_1_Template_3_Actual); @@ -289,7 +283,7 @@ public class MessageServiceTest var mCount_Telemetry_1_Category_2_Template_2_Actual = result .Where(x => x.IdTelemetry == 1) .Where(x => x.IdCategory == 2) - .Where(x => x.MessageTemplate == " 2 2") + .Where(x => x.MessageTemplate == "Шаблон сообщения 2 категории 2") .Sum(x => x.MessagesCount); Assert.Equal(mCount_Telemetry_1_Category_2_Template_2_Expected, mCount_Telemetry_1_Category_2_Template_2_Actual); @@ -300,7 +294,7 @@ public class MessageServiceTest var mCount_Telemetry_1_Category_2_Template_3_Actual = result .Where(x => x.IdTelemetry == 1) .Where(x => x.IdCategory == 2) - .Where(x => x.MessageTemplate == " 3 2") + .Where(x => x.MessageTemplate == "Шаблон сообщения 3 категории 2") .Sum(x => x.MessagesCount); Assert.Equal(mCount_Telemetry_1_Category_2_Template_3_Expected, mCount_Telemetry_1_Category_2_Template_3_Actual); @@ -311,7 +305,7 @@ public class MessageServiceTest var mCount_Telemetry_2_Category_3_Template_1_Actual = result .Where(x => x.IdTelemetry == 2) .Where(x => x.IdCategory == 3) - .Where(x => x.MessageTemplate == " 1 3") + .Where(x => x.MessageTemplate == "Шаблон сообщения 1 категории 3") .Sum(x => x.MessagesCount); Assert.Equal(mCount_Telemetry_2_Category_3_Template_1_Expected, mCount_Telemetry_2_Category_3_Template_1_Actual); }