forked from ddrilling/AsbCloudServer
Added last received telemetry date in WellDto
This commit is contained in:
parent
02f344569e
commit
3a6f5e7f5e
@ -1,4 +1,6 @@
|
||||
namespace AsbCloudApp.Data
|
||||
using System;
|
||||
|
||||
namespace AsbCloudApp.Data
|
||||
{
|
||||
|
||||
public class WellDto : WellInfoDto, IMapPoint, IId
|
||||
@ -7,6 +9,7 @@
|
||||
public double? Latitude { get; set; }
|
||||
public double? Longitude { get; set; }
|
||||
public string WellType { get; set; }
|
||||
public DateTime LastTelemetryDate { get; set; }
|
||||
public TelemetryDto Telemetry { get; set; }
|
||||
}
|
||||
}
|
||||
|
@ -1,4 +1,5 @@
|
||||
using AsbCloudApp.Data;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
@ -7,6 +8,8 @@ namespace AsbCloudApp.Services
|
||||
{
|
||||
public interface ITelemetryService
|
||||
{
|
||||
void SaveRequestDate(string uid);
|
||||
DateTime GetLastTelemetryDateByWellId(int idWell);
|
||||
int? GetidWellByTelemetryUid(string uid);
|
||||
int GetOrCreateTemetryIdByUid(string uid);
|
||||
double GetTimezoneOffsetByTelemetryId(int idTelemetry);
|
||||
@ -16,6 +19,5 @@ namespace AsbCloudApp.Services
|
||||
IEnumerable<(string Key, int[] Ids)> GetRedundentRemoteUids();
|
||||
Task<IEnumerable<WellDto>> GetTransmittingWellsAsync(int idCompany,
|
||||
CancellationToken token);
|
||||
void SaveRequestDate(string uid);
|
||||
}
|
||||
}
|
||||
|
@ -13,10 +13,12 @@ namespace AsbCloudInfrastructure.Services
|
||||
public class ClusterService : IClusterService
|
||||
{
|
||||
private readonly IAsbCloudDbContext db;
|
||||
private readonly ITelemetryService telemetryService;
|
||||
|
||||
public ClusterService(IAsbCloudDbContext db)
|
||||
public ClusterService(IAsbCloudDbContext db, ITelemetryService telemetryService)
|
||||
{
|
||||
this.db = db;
|
||||
this.telemetryService = telemetryService;
|
||||
}
|
||||
|
||||
public async Task<IEnumerable<DepositDto>> GetDepositsAsync(int idCompany,
|
||||
@ -142,6 +144,7 @@ namespace AsbCloudInfrastructure.Services
|
||||
Latitude = well.Latitude,
|
||||
Longitude = well.Longitude,
|
||||
WellType = well.WellType?.Caption,
|
||||
LastTelemetryDate = telemetryService.GetLastTelemetryDateByWellId(well.Id),
|
||||
Cluster = gCluster.Key.Caption,
|
||||
Deposit = gDeposit.Key.Caption,
|
||||
}),
|
||||
|
@ -8,6 +8,7 @@ using System.Linq;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
|
||||
namespace AsbCloudInfrastructure.Services
|
||||
@ -52,8 +53,25 @@ namespace AsbCloudInfrastructure.Services
|
||||
public void SaveRequestDate(string uid) =>
|
||||
telemetryTracker.SaveRequestDate(uid);
|
||||
|
||||
public DateTime GetLastTelemetryDateByWellId(int idWell)
|
||||
{
|
||||
try
|
||||
{
|
||||
var telemetryId = GetIdTelemetryByIdWell(idWell);
|
||||
var uid = cacheTelemetry.FirstOrDefault(t => t.Id == telemetryId).RemoteUid;
|
||||
var lastTelemetryDate = telemetryTracker.GetLastTelemetryDateByUid(uid);
|
||||
return lastTelemetryDate;
|
||||
}
|
||||
catch(Exception ex)
|
||||
{
|
||||
Trace.TraceError(ex.Message);
|
||||
Console.WriteLine(ex.Message);
|
||||
return DateTime.MinValue;
|
||||
}
|
||||
}
|
||||
|
||||
public int GetOrCreateTemetryIdByUid(string uid)
|
||||
=> GetOrCreateTelemetryByUid(uid).Id;
|
||||
=> GetOrCreateTelemetryByUid(uid).Id;
|
||||
|
||||
public int? GetidWellByTelemetryUid(string uid)
|
||||
=> GetWellByTelemetryUid(uid)?.Id;
|
||||
|
Loading…
Reference in New Issue
Block a user