From 3a4a27942a3f3fb5036b163adad4edc902c8f13a Mon Sep 17 00:00:00 2001 From: KharchenkoVV Date: Fri, 28 May 2021 15:04:11 +0500 Subject: [PATCH] =?UTF-8?q?CS2-16:=20Fix=20=D0=BA=D1=80=D0=B8=D1=82=D0=B8?= =?UTF-8?q?=D1=87=D0=B5=D1=81=D0=BA=D0=BE=D0=B9=20=D0=BE=D1=88=D0=B8=D0=B1?= =?UTF-8?q?=D0=BA=D0=B8=20=D0=BF=D1=80=D0=B8=20=D0=BF=D0=BE=D0=BB=D1=83?= =?UTF-8?q?=D1=87=D0=B5=D0=BD=D0=B8=D0=B8=20=D0=B4=D0=B2=D1=83=D1=85=20?= =?UTF-8?q?=D1=8E=D0=B7=D0=B5=D1=80=D0=BE=D0=B2=20=D1=81=20=D0=BE=D0=B4?= =?UTF-8?q?=D0=B8=D0=BD=D0=B0=D0=BA=D0=BE=D0=B2=D1=8B=D0=BC=20Id?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Comparators/TelemetryUserDtoComparer.cs | 20 +++++++++++++++++++ .../Services/TelemetryUserService.cs | 3 +++ 2 files changed, 23 insertions(+) create mode 100644 AsbCloudApp/Comparators/TelemetryUserDtoComparer.cs diff --git a/AsbCloudApp/Comparators/TelemetryUserDtoComparer.cs b/AsbCloudApp/Comparators/TelemetryUserDtoComparer.cs new file mode 100644 index 00000000..48b497a9 --- /dev/null +++ b/AsbCloudApp/Comparators/TelemetryUserDtoComparer.cs @@ -0,0 +1,20 @@ +using AsbCloudApp.Data; +using System.Collections.Generic; + +namespace AsbCloudApp.Comparators +{ + public class TelemetryUserDtoComparer : IEqualityComparer + { + public bool Equals(TelemetryUserDto prevUser, TelemetryUserDto nextUser) + { + if (prevUser is null || nextUser is null) + return false; + else if (prevUser.Id == nextUser.Id) + return true; + else + return false; + } + + public int GetHashCode(TelemetryUserDto user) => user.Id.GetHashCode(); + } +} diff --git a/AsbCloudInfrastructure/Services/TelemetryUserService.cs b/AsbCloudInfrastructure/Services/TelemetryUserService.cs index 21e7e924..17e46196 100644 --- a/AsbCloudInfrastructure/Services/TelemetryUserService.cs +++ b/AsbCloudInfrastructure/Services/TelemetryUserService.cs @@ -1,5 +1,6 @@ using AsbCloudApp.Data; using AsbCloudApp.Services; +using AsbCloudApp.Comparators; using AsbCloudDb.Model; using AsbCloudInfrastructure.Services.Cache; using System.Collections.Generic; @@ -25,6 +26,8 @@ namespace AsbCloudInfrastructure.Services if (!dtos.Any()) return; + dtos = dtos.Distinct(new TelemetryUserDtoComparer()); + var telemetryId = telemetryService.GetOrCreateTemetryIdByUid(uid); var ids = dtos.Select(e => e.Id).ToList();