From e1457471c8c1f8280ee4f9b15d980d4daebf28a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A4=D1=80=D0=BE=D0=BB=D0=BE=D0=B2?= Date: Mon, 4 Oct 2021 15:54:58 +0500 Subject: [PATCH] unpatch cache path by permanent solution --- .../Services/TelemetryService.cs | 24 +++---------------- 1 file changed, 3 insertions(+), 21 deletions(-) diff --git a/AsbCloudInfrastructure/Services/TelemetryService.cs b/AsbCloudInfrastructure/Services/TelemetryService.cs index 2448c31f..8a46b620 100644 --- a/AsbCloudInfrastructure/Services/TelemetryService.cs +++ b/AsbCloudInfrastructure/Services/TelemetryService.cs @@ -32,7 +32,7 @@ namespace AsbCloudInfrastructure.Services => GetWellByTelemetryUid(uid)?.Id; public double GetTimezoneOffsetByTelemetryId(int idTelemetry) => - cacheTelemetry.FirstOrDefault(t => t.Id == idTelemetry).Info?.TimeZoneOffsetTotalHours??0d; + cacheTelemetry.FirstOrDefault(t => t.Id == idTelemetry).Info?.TimeZoneOffsetTotalHours ?? 0d; public void UpdateInfo(string uid, TelemetryInfoDto info) { @@ -52,33 +52,15 @@ namespace AsbCloudInfrastructure.Services private Well GetWellByTelemetryUid(string uid) { - var tele = cacheTelemetry.FirstOrDefault(t => t.RemoteUid == uid, RefreshMode.IfResultEmpty); + var tele = cacheTelemetry.FirstOrDefault(t => t.RemoteUid == uid); if (tele is null) return null; return cacheWells.FirstOrDefault(w => w?.IdTelemetry == tele.Id); } - // TODO: fix cacheTable before uncomment next - //private Telemetry GetOrCreateTelemetryByUid(string uid) - // => cacheTelemetry.FirstOrDefault(t => t.RemoteUid == uid) - // ?? cacheTelemetry.Insert(new Telemetry { RemoteUid = uid, }); - private Telemetry GetOrCreateTelemetryByUid(string uid) - { - var telemetry = cacheTelemetry.FirstOrDefault(t => t.RemoteUid == uid); - if (telemetry is not null) - return telemetry; - - telemetry = db.Telemetries.OrderBy(t=>t.Info).FirstOrDefault(t => t.RemoteUid == uid); - if (telemetry is not null) - return telemetry; - - var newTelemetryEntry = db.Telemetries.Add(new Telemetry { RemoteUid = uid }); - db.SaveChanges(); - cacheTelemetry.Refresh(); - return newTelemetryEntry.Entity; - } + => cacheTelemetry.GetOrCreate(t => t.RemoteUid == uid, () => new Telemetry { RemoteUid = uid }); public IEnumerable<(string Key, int[] Ids)> GetRedundentRemoteUids() {