forked from ddrilling/AsbCloudServer
hotfix telemetryService get Id. UDO this when cache table done
This commit is contained in:
parent
8d3abf0fed
commit
dc156154b0
@ -3,6 +3,7 @@ using AsbCloudApp.Services;
|
|||||||
using AsbCloudDb.Model;
|
using AsbCloudDb.Model;
|
||||||
using AsbCloudInfrastructure.Services.Cache;
|
using AsbCloudInfrastructure.Services.Cache;
|
||||||
using Mapster;
|
using Mapster;
|
||||||
|
using System.Linq;
|
||||||
|
|
||||||
namespace AsbCloudInfrastructure.Services
|
namespace AsbCloudInfrastructure.Services
|
||||||
{
|
{
|
||||||
@ -10,11 +11,13 @@ namespace AsbCloudInfrastructure.Services
|
|||||||
{
|
{
|
||||||
private readonly CacheTable<Telemetry> cacheTelemetry;
|
private readonly CacheTable<Telemetry> cacheTelemetry;
|
||||||
private readonly CacheTable<Well> cacheWells;
|
private readonly CacheTable<Well> cacheWells;
|
||||||
|
private readonly IAsbCloudDbContext db;
|
||||||
|
|
||||||
public TelemetryService(IAsbCloudDbContext db, CacheDb cacheDb)
|
public TelemetryService(IAsbCloudDbContext db, CacheDb cacheDb)
|
||||||
{
|
{
|
||||||
cacheTelemetry = cacheDb.GetCachedTable<Telemetry>((AsbCloudDbContext)db);
|
cacheTelemetry = cacheDb.GetCachedTable<Telemetry>((AsbCloudDbContext)db);
|
||||||
cacheWells = cacheDb.GetCachedTable<Well>((AsbCloudDbContext)db);
|
cacheWells = cacheDb.GetCachedTable<Well>((AsbCloudDbContext)db);
|
||||||
|
this.db = db;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int GetOrCreateTemetryIdByUid(string uid)
|
public int GetOrCreateTemetryIdByUid(string uid)
|
||||||
@ -51,9 +54,25 @@ namespace AsbCloudInfrastructure.Services
|
|||||||
return cacheWells.FirstOrDefault(w => w?.IdTelemetry == tele.Id);
|
return cacheWells.FirstOrDefault(w => w?.IdTelemetry == tele.Id);
|
||||||
}
|
}
|
||||||
|
|
||||||
private Telemetry GetOrCreateTelemetryByUid(string uid)
|
// TODO: fix cacheTable before uncomment next
|
||||||
=> cacheTelemetry.FirstOrDefault(t => t.RemoteUid == uid)
|
//private Telemetry GetOrCreateTelemetryByUid(string uid)
|
||||||
?? cacheTelemetry.Insert(new Telemetry { RemoteUid = 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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user