forked from ddrilling/AsbCloudServer
Merge branch 'dev' of https://bitbucket.org/autodrilling/asbcloudserver into dev
This commit is contained in:
commit
11cf5ee8cf
@ -1,4 +1,6 @@
|
|||||||
namespace AsbCloudApp.Data
|
using System;
|
||||||
|
|
||||||
|
namespace AsbCloudApp.Data
|
||||||
{
|
{
|
||||||
|
|
||||||
public class WellDto : WellInfoDto, IMapPoint, IId
|
public class WellDto : WellInfoDto, IMapPoint, IId
|
||||||
@ -7,6 +9,7 @@
|
|||||||
public double? Latitude { get; set; }
|
public double? Latitude { get; set; }
|
||||||
public double? Longitude { get; set; }
|
public double? Longitude { get; set; }
|
||||||
public string WellType { get; set; }
|
public string WellType { get; set; }
|
||||||
|
public DateTime LastTelemetryDate { get; set; }
|
||||||
public TelemetryDto Telemetry { get; set; }
|
public TelemetryDto Telemetry { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,11 +1,15 @@
|
|||||||
using AsbCloudApp.Data;
|
using AsbCloudApp.Data;
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Threading;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace AsbCloudApp.Services
|
namespace AsbCloudApp.Services
|
||||||
{
|
{
|
||||||
public interface ITelemetryService
|
public interface ITelemetryService
|
||||||
{
|
{
|
||||||
|
void SaveRequestDate(string uid);
|
||||||
|
DateTime GetLastTelemetryDateByWellId(int idWell);
|
||||||
int? GetidWellByTelemetryUid(string uid);
|
int? GetidWellByTelemetryUid(string uid);
|
||||||
int GetOrCreateTemetryIdByUid(string uid);
|
int GetOrCreateTemetryIdByUid(string uid);
|
||||||
double GetTimezoneOffsetByTelemetryId(int idTelemetry);
|
double GetTimezoneOffsetByTelemetryId(int idTelemetry);
|
||||||
@ -13,5 +17,7 @@ namespace AsbCloudApp.Services
|
|||||||
int? GetIdTelemetryByIdWell(int idWell);
|
int? GetIdTelemetryByIdWell(int idWell);
|
||||||
int Merge(IEnumerable<int> telemetryIds);
|
int Merge(IEnumerable<int> telemetryIds);
|
||||||
IEnumerable<(string Key, int[] Ids)> GetRedundentRemoteUids();
|
IEnumerable<(string Key, int[] Ids)> GetRedundentRemoteUids();
|
||||||
|
Task<IEnumerable<WellDto>> GetTransmittingWellsAsync(int idCompany,
|
||||||
|
CancellationToken token);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,10 +1,12 @@
|
|||||||
using System.Collections.Generic;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
namespace AsbCloudApp.Services
|
namespace AsbCloudApp.Services
|
||||||
{
|
{
|
||||||
public interface ITelemetryTracker
|
public interface ITelemetryTracker
|
||||||
{
|
{
|
||||||
void SaveRequestDate(string uid);
|
void SaveRequestDate(string uid);
|
||||||
|
DateTime GetLastTelemetryDateByUid(string uid);
|
||||||
IEnumerable<string> GetTransmittingTelemetryUids();
|
IEnumerable<string> GetTransmittingTelemetryUids();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,6 +5,7 @@ using System.Diagnostics;
|
|||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Microsoft.Extensions.Hosting;
|
using Microsoft.Extensions.Hosting;
|
||||||
using AsbCloudInfrastructure.Services.Cache;
|
using AsbCloudInfrastructure.Services.Cache;
|
||||||
|
using AsbCloudApp.Services;
|
||||||
using AsbCloudDb.Model;
|
using AsbCloudDb.Model;
|
||||||
|
|
||||||
namespace AsbCloudInfrastructure.Services.Analysis
|
namespace AsbCloudInfrastructure.Services.Analysis
|
||||||
@ -12,11 +13,13 @@ namespace AsbCloudInfrastructure.Services.Analysis
|
|||||||
public class TelemetryAnalyticsBackgroundService : BackgroundService
|
public class TelemetryAnalyticsBackgroundService : BackgroundService
|
||||||
{
|
{
|
||||||
private readonly CacheDb cacheDb;
|
private readonly CacheDb cacheDb;
|
||||||
|
private readonly ITelemetryTracker telemetryTracker;
|
||||||
private readonly TimeSpan period = TimeSpan.FromHours(1);
|
private readonly TimeSpan period = TimeSpan.FromHours(1);
|
||||||
|
|
||||||
public TelemetryAnalyticsBackgroundService(CacheDb cacheDb)
|
public TelemetryAnalyticsBackgroundService(CacheDb cacheDb, ITelemetryTracker telemetryTracker)
|
||||||
{
|
{
|
||||||
this.cacheDb = cacheDb;
|
this.cacheDb = cacheDb;
|
||||||
|
this.telemetryTracker = telemetryTracker;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override async Task ExecuteAsync(CancellationToken token = default)
|
protected override async Task ExecuteAsync(CancellationToken token = default)
|
||||||
@ -34,7 +37,7 @@ namespace AsbCloudInfrastructure.Services.Analysis
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
using var context = new AsbCloudDbContext(options);
|
using var context = new AsbCloudDbContext(options);
|
||||||
var telemetryService = new TelemetryService(context, cacheDb);
|
var telemetryService = new TelemetryService(context, telemetryTracker, cacheDb);
|
||||||
var analyticsService = new TelemetryAnalyticsService(context,
|
var analyticsService = new TelemetryAnalyticsService(context,
|
||||||
telemetryService, cacheDb);
|
telemetryService, cacheDb);
|
||||||
|
|
||||||
|
@ -13,10 +13,12 @@ namespace AsbCloudInfrastructure.Services
|
|||||||
public class ClusterService : IClusterService
|
public class ClusterService : IClusterService
|
||||||
{
|
{
|
||||||
private readonly IAsbCloudDbContext db;
|
private readonly IAsbCloudDbContext db;
|
||||||
|
private readonly ITelemetryService telemetryService;
|
||||||
|
|
||||||
public ClusterService(IAsbCloudDbContext db)
|
public ClusterService(IAsbCloudDbContext db, ITelemetryService telemetryService)
|
||||||
{
|
{
|
||||||
this.db = db;
|
this.db = db;
|
||||||
|
this.telemetryService = telemetryService;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<IEnumerable<DepositDto>> GetDepositsAsync(int idCompany,
|
public async Task<IEnumerable<DepositDto>> GetDepositsAsync(int idCompany,
|
||||||
@ -142,6 +144,7 @@ namespace AsbCloudInfrastructure.Services
|
|||||||
Latitude = well.Latitude,
|
Latitude = well.Latitude,
|
||||||
Longitude = well.Longitude,
|
Longitude = well.Longitude,
|
||||||
WellType = well.WellType?.Caption,
|
WellType = well.WellType?.Caption,
|
||||||
|
LastTelemetryDate = telemetryService.GetLastTelemetryDateByWellId(well.Id),
|
||||||
Cluster = gCluster.Key.Caption,
|
Cluster = gCluster.Key.Caption,
|
||||||
Deposit = gDeposit.Key.Caption,
|
Deposit = gDeposit.Key.Caption,
|
||||||
}),
|
}),
|
||||||
|
@ -5,10 +5,11 @@ using AsbCloudInfrastructure.Services.Cache;
|
|||||||
using Mapster;
|
using Mapster;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System;
|
|
||||||
using Microsoft.EntityFrameworkCore;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
|
||||||
namespace AsbCloudInfrastructure.Services
|
namespace AsbCloudInfrastructure.Services
|
||||||
{
|
{
|
||||||
@ -17,12 +18,56 @@ 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;
|
private readonly IAsbCloudDbContext db;
|
||||||
|
private readonly ITelemetryTracker telemetryTracker;
|
||||||
|
|
||||||
public TelemetryService(IAsbCloudDbContext db, CacheDb cacheDb)
|
public TelemetryService(IAsbCloudDbContext db, ITelemetryTracker telemetryTracker,
|
||||||
|
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;
|
this.db = db;
|
||||||
|
this.telemetryTracker = telemetryTracker;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<IEnumerable<WellDto>> GetTransmittingWellsAsync(int idCompany, CancellationToken token)
|
||||||
|
{
|
||||||
|
var wells = new List<Well>();
|
||||||
|
IEnumerable<string> activeTelemetriesUids = telemetryTracker.GetTransmittingTelemetryUids();
|
||||||
|
if (activeTelemetriesUids.Any())
|
||||||
|
{
|
||||||
|
wells = await db.GetWellsForCompany(idCompany)
|
||||||
|
.Where(w => activeTelemetriesUids.Contains(w.Telemetry.RemoteUid))
|
||||||
|
.AsNoTracking()
|
||||||
|
.ToListAsync(token)
|
||||||
|
.ConfigureAwait(false);
|
||||||
|
}
|
||||||
|
return wells.Select(w => new WellDto
|
||||||
|
{
|
||||||
|
Id = w.Id,
|
||||||
|
Caption = w.Caption,
|
||||||
|
Cluster = w.Cluster.Caption,
|
||||||
|
Deposit = w.Cluster.Deposit.Caption,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
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)
|
public int GetOrCreateTemetryIdByUid(string uid)
|
||||||
|
@ -10,21 +10,25 @@ namespace AsbCloudInfrastructure.Services
|
|||||||
private IDictionary<string, DateTime> requests = new Dictionary<string, DateTime>();
|
private IDictionary<string, DateTime> requests = new Dictionary<string, DateTime>();
|
||||||
private readonly TimeSpan timeout = TimeSpan.FromMinutes(6);
|
private readonly TimeSpan timeout = TimeSpan.FromMinutes(6);
|
||||||
|
|
||||||
private void DeleteOldRequestDates()
|
|
||||||
{
|
|
||||||
requests = requests.Where(dValue => (DateTime.Now - dValue.Value) < timeout).ToDictionary(dValue => dValue.Key, dValue => dValue.Value);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void SaveRequestDate(string uid)
|
public void SaveRequestDate(string uid)
|
||||||
{
|
{
|
||||||
requests[uid] = DateTime.Now;
|
requests[uid] = DateTime.Now;
|
||||||
DeleteOldRequestDates();
|
DeleteOldRequestDates();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public DateTime GetLastTelemetryDateByUid(string uid) =>
|
||||||
|
requests[uid];
|
||||||
|
|
||||||
public IEnumerable<string> GetTransmittingTelemetryUids()
|
public IEnumerable<string> GetTransmittingTelemetryUids()
|
||||||
{
|
{
|
||||||
DeleteOldRequestDates();
|
DeleteOldRequestDates();
|
||||||
return requests.Keys;
|
return requests.Keys;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void DeleteOldRequestDates()
|
||||||
|
{
|
||||||
|
requests = requests.Where(dValue => (DateTime.Now - dValue.Value) < timeout)
|
||||||
|
.ToDictionary(dValue => dValue.Key, dValue => dValue.Value);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -15,37 +15,32 @@ namespace AsbCloudInfrastructure.Services
|
|||||||
public class WellService : IWellService
|
public class WellService : IWellService
|
||||||
{
|
{
|
||||||
private readonly IAsbCloudDbContext db;
|
private readonly IAsbCloudDbContext db;
|
||||||
private readonly ITelemetryTracker telemetryTracker;
|
private readonly ITelemetryService telemetryService;
|
||||||
private readonly CacheTable<RelationCompanyWell> cacheRelationCompaniesWells;
|
private readonly CacheTable<RelationCompanyWell> cacheRelationCompaniesWells;
|
||||||
private readonly CacheTable<Well> cacheWells;
|
private readonly CacheTable<Well> cacheWells;
|
||||||
|
|
||||||
public WellService(IAsbCloudDbContext db, ITelemetryTracker telemetryTracker, CacheDb cacheDb)
|
public WellService(IAsbCloudDbContext db, ITelemetryService telemetryService, CacheDb cacheDb)
|
||||||
{
|
{
|
||||||
this.db = db;
|
this.db = db;
|
||||||
this.telemetryTracker = telemetryTracker;
|
this.telemetryService = telemetryService;
|
||||||
cacheRelationCompaniesWells = cacheDb.GetCachedTable<RelationCompanyWell>((AsbCloudDbContext)db);
|
cacheRelationCompaniesWells = cacheDb.GetCachedTable<RelationCompanyWell>((AsbCloudDbContext)db);
|
||||||
cacheWells = cacheDb.GetCachedTable<Well>((AsbCloudDbContext)db);
|
cacheWells = cacheDb.GetCachedTable<Well>((AsbCloudDbContext)db);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<IEnumerable<WellDto>> GetTransmittingWellsAsync(int idCompany, CancellationToken token)
|
public async Task<IEnumerable<WellDto>> GetTransmittingWellsAsync(int idCompany,
|
||||||
{
|
CancellationToken token) =>
|
||||||
var wells = new List<Well>();
|
await telemetryService.GetTransmittingWellsAsync(idCompany, token);
|
||||||
IEnumerable<string> activeTelemetriesUids = telemetryTracker.GetTransmittingTelemetryUids();
|
|
||||||
if (activeTelemetriesUids.Any())
|
|
||||||
{
|
|
||||||
wells = await db.GetWellsForCompany(idCompany)
|
|
||||||
.Where(w => activeTelemetriesUids.Contains(w.Telemetry.RemoteUid))
|
|
||||||
.AsNoTracking()
|
|
||||||
.ToListAsync(token)
|
|
||||||
.ConfigureAwait(false);
|
|
||||||
}
|
|
||||||
return wells.Select(w => From(w));
|
|
||||||
}
|
|
||||||
|
|
||||||
public async Task<IEnumerable<WellDto>> GetWellsByCompanyAsync(int idCompany, CancellationToken token)
|
public async Task<IEnumerable<WellDto>> GetWellsByCompanyAsync(int idCompany, CancellationToken token)
|
||||||
{
|
{
|
||||||
var wells = await db.GetWellsForCompany(idCompany).ToListAsync(token);
|
var wells = await db.GetWellsForCompany(idCompany).ToListAsync(token);
|
||||||
return wells.Select(w => From(w));
|
return wells.Select(w => new WellDto
|
||||||
|
{
|
||||||
|
Id = w.Id,
|
||||||
|
Caption = w.Caption,
|
||||||
|
Cluster = w.Cluster.Caption,
|
||||||
|
Deposit = w.Cluster.Deposit.Caption,
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool IsCompanyInvolvedInWell(int idCompany, int idWell)
|
public bool IsCompanyInvolvedInWell(int idCompany, int idWell)
|
||||||
@ -55,19 +50,6 @@ namespace AsbCloudInfrastructure.Services
|
|||||||
=> await cacheRelationCompaniesWells.ContainsAsync(r => r.IdWell == idWell &&
|
=> await cacheRelationCompaniesWells.ContainsAsync(r => r.IdWell == idWell &&
|
||||||
r.IdCompany == idCompany, token).ConfigureAwait(false);
|
r.IdCompany == idCompany, token).ConfigureAwait(false);
|
||||||
|
|
||||||
private static WellDto From(Well well)
|
|
||||||
{
|
|
||||||
var wellDto = new WellDto
|
|
||||||
{
|
|
||||||
Id = well.Id,
|
|
||||||
Caption = well.Caption,
|
|
||||||
Cluster = well.Cluster.Caption,
|
|
||||||
Deposit = well.Cluster.Deposit.Caption,
|
|
||||||
};
|
|
||||||
|
|
||||||
return wellDto;
|
|
||||||
}
|
|
||||||
|
|
||||||
public async Task<WellDto> GetAsync(int idWell, CancellationToken token)
|
public async Task<WellDto> GetAsync(int idWell, CancellationToken token)
|
||||||
{
|
{
|
||||||
var entity = await db.Wells
|
var entity = await db.Wells
|
||||||
|
@ -23,22 +23,19 @@ namespace AsbCloudWebApi.Controllers
|
|||||||
private readonly IEventService eventService;
|
private readonly IEventService eventService;
|
||||||
private readonly ITelemetryUserService telemetryUserService;
|
private readonly ITelemetryUserService telemetryUserService;
|
||||||
private readonly IHubContext<TelemetryHub> telemetryHubContext;
|
private readonly IHubContext<TelemetryHub> telemetryHubContext;
|
||||||
private readonly ITelemetryTracker telemetryTracker;
|
|
||||||
|
|
||||||
public TelemetryController(
|
public TelemetryController(
|
||||||
ITelemetryService telemetryService,
|
ITelemetryService telemetryService,
|
||||||
IMessageService messageService,
|
IMessageService messageService,
|
||||||
IEventService eventService,
|
IEventService eventService,
|
||||||
ITelemetryUserService telemetryUserService,
|
ITelemetryUserService telemetryUserService,
|
||||||
IHubContext<TelemetryHub> telemetryHubContext,
|
IHubContext<TelemetryHub> telemetryHubContext)
|
||||||
ITelemetryTracker telemetryTracker)
|
|
||||||
{
|
{
|
||||||
this.telemetryService = telemetryService;
|
this.telemetryService = telemetryService;
|
||||||
this.messageService = messageService;
|
this.messageService = messageService;
|
||||||
this.eventService = eventService;
|
this.eventService = eventService;
|
||||||
this.telemetryUserService = telemetryUserService;
|
this.telemetryUserService = telemetryUserService;
|
||||||
this.telemetryHubContext = telemetryHubContext;
|
this.telemetryHubContext = telemetryHubContext;
|
||||||
this.telemetryTracker = telemetryTracker;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -52,7 +49,7 @@ namespace AsbCloudWebApi.Controllers
|
|||||||
public IActionResult PostInfo(string uid, [FromBody] TelemetryInfoDto info)
|
public IActionResult PostInfo(string uid, [FromBody] TelemetryInfoDto info)
|
||||||
{
|
{
|
||||||
telemetryService.UpdateInfo(uid, info);
|
telemetryService.UpdateInfo(uid, info);
|
||||||
telemetryTracker.SaveRequestDate(uid);
|
telemetryService.SaveRequestDate(uid);
|
||||||
return Ok();
|
return Ok();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -75,7 +72,7 @@ namespace AsbCloudWebApi.Controllers
|
|||||||
await Task.Run(() => telemetryHubContext.Clients.Group($"well_{idWell}")
|
await Task.Run(() => telemetryHubContext.Clients.Group($"well_{idWell}")
|
||||||
.SendAsync("ReceiveMessages", dtos), token).ConfigureAwait(false);
|
.SendAsync("ReceiveMessages", dtos), token).ConfigureAwait(false);
|
||||||
|
|
||||||
telemetryTracker.SaveRequestDate(uid);
|
telemetryService.SaveRequestDate(uid);
|
||||||
return Ok();
|
return Ok();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -93,7 +90,7 @@ namespace AsbCloudWebApi.Controllers
|
|||||||
{
|
{
|
||||||
await eventService.UpsertAsync(uid, events, token)
|
await eventService.UpsertAsync(uid, events, token)
|
||||||
.ConfigureAwait(false);
|
.ConfigureAwait(false);
|
||||||
telemetryTracker.SaveRequestDate(uid);
|
telemetryService.SaveRequestDate(uid);
|
||||||
return Ok();
|
return Ok();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -108,7 +105,7 @@ namespace AsbCloudWebApi.Controllers
|
|||||||
public IActionResult PostUsers(string uid, [FromBody] List<TelemetryUserDto> users)
|
public IActionResult PostUsers(string uid, [FromBody] List<TelemetryUserDto> users)
|
||||||
{
|
{
|
||||||
telemetryUserService.Upsert(uid, users);
|
telemetryUserService.Upsert(uid, users);
|
||||||
telemetryTracker.SaveRequestDate(uid);
|
telemetryService.SaveRequestDate(uid);
|
||||||
return Ok();
|
return Ok();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -18,7 +18,6 @@ namespace AsbCloudWebApi.Controllers
|
|||||||
public abstract class TelemetryDataBaseController<TDto> : ControllerBase
|
public abstract class TelemetryDataBaseController<TDto> : ControllerBase
|
||||||
where TDto: ITelemetryData
|
where TDto: ITelemetryData
|
||||||
{
|
{
|
||||||
private readonly ITelemetryTracker telemetryTracker;
|
|
||||||
private readonly ITelemetryService telemetryService;
|
private readonly ITelemetryService telemetryService;
|
||||||
private readonly ITelemetryDataService<TDto> telemetryDataService;
|
private readonly ITelemetryDataService<TDto> telemetryDataService;
|
||||||
private readonly IWellService wellService;
|
private readonly IWellService wellService;
|
||||||
@ -27,13 +26,11 @@ namespace AsbCloudWebApi.Controllers
|
|||||||
public string SirnalRMethodGetDataName { get; protected set; } = "ReceiveData";
|
public string SirnalRMethodGetDataName { get; protected set; } = "ReceiveData";
|
||||||
|
|
||||||
public TelemetryDataBaseController(
|
public TelemetryDataBaseController(
|
||||||
ITelemetryTracker telemetryTracker,
|
|
||||||
ITelemetryService telemetryService,
|
ITelemetryService telemetryService,
|
||||||
ITelemetryDataService<TDto> telemetryDataService,
|
ITelemetryDataService<TDto> telemetryDataService,
|
||||||
IWellService wellService,
|
IWellService wellService,
|
||||||
IHubContext<TelemetryHub> telemetryHubContext)
|
IHubContext<TelemetryHub> telemetryHubContext)
|
||||||
{
|
{
|
||||||
this.telemetryTracker = telemetryTracker;
|
|
||||||
this.telemetryService = telemetryService;
|
this.telemetryService = telemetryService;
|
||||||
this.telemetryDataService = telemetryDataService;
|
this.telemetryDataService = telemetryDataService;
|
||||||
this.wellService = wellService;
|
this.wellService = wellService;
|
||||||
@ -60,7 +57,7 @@ namespace AsbCloudWebApi.Controllers
|
|||||||
await Task.Run(() => telemetryHubContext.Clients.Group($"well_{idWell}")
|
await Task.Run(() => telemetryHubContext.Clients.Group($"well_{idWell}")
|
||||||
.SendAsync(SirnalRMethodGetDataName, dtos), token).ConfigureAwait(false);
|
.SendAsync(SirnalRMethodGetDataName, dtos), token).ConfigureAwait(false);
|
||||||
|
|
||||||
telemetryTracker.SaveRequestDate(uid);
|
telemetryService.SaveRequestDate(uid);
|
||||||
return Ok();
|
return Ok();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -11,13 +11,11 @@ namespace AsbCloudWebApi.Controllers
|
|||||||
public class TelemetryDataSaubController : TelemetryDataBaseController<TelemetryDataSaubDto>
|
public class TelemetryDataSaubController : TelemetryDataBaseController<TelemetryDataSaubDto>
|
||||||
{
|
{
|
||||||
public TelemetryDataSaubController(
|
public TelemetryDataSaubController(
|
||||||
ITelemetryTracker telemetryTracker,
|
|
||||||
ITelemetryService telemetryService,
|
ITelemetryService telemetryService,
|
||||||
ITelemetryDataService<TelemetryDataSaubDto> telemetryDataService,
|
ITelemetryDataService<TelemetryDataSaubDto> telemetryDataService,
|
||||||
IWellService wellService,
|
IWellService wellService,
|
||||||
IHubContext<TelemetryHub> telemetryHubContext)
|
IHubContext<TelemetryHub> telemetryHubContext)
|
||||||
: base(
|
: base(
|
||||||
telemetryTracker,
|
|
||||||
telemetryService,
|
telemetryService,
|
||||||
telemetryDataService,
|
telemetryDataService,
|
||||||
wellService,
|
wellService,
|
||||||
|
@ -11,13 +11,11 @@ namespace AsbCloudWebApi.Controllers
|
|||||||
public class TelemetryDataSpinController : TelemetryDataBaseController<TelemetryDataSpinDto>
|
public class TelemetryDataSpinController : TelemetryDataBaseController<TelemetryDataSpinDto>
|
||||||
{
|
{
|
||||||
public TelemetryDataSpinController(
|
public TelemetryDataSpinController(
|
||||||
ITelemetryTracker telemetryTracker,
|
|
||||||
ITelemetryService telemetryService,
|
ITelemetryService telemetryService,
|
||||||
ITelemetryDataService<TelemetryDataSpinDto> telemetryDataService,
|
ITelemetryDataService<TelemetryDataSpinDto> telemetryDataService,
|
||||||
IWellService wellService,
|
IWellService wellService,
|
||||||
IHubContext<TelemetryHub> telemetryHubContext)
|
IHubContext<TelemetryHub> telemetryHubContext)
|
||||||
: base(
|
: base(
|
||||||
telemetryTracker,
|
|
||||||
telemetryService,
|
telemetryService,
|
||||||
telemetryDataService,
|
telemetryDataService,
|
||||||
wellService,
|
wellService,
|
||||||
|
@ -21,7 +21,8 @@ namespace ConsoleApp1
|
|||||||
.Options;
|
.Options;
|
||||||
using var db = new AsbCloudDbContext(options);
|
using var db = new AsbCloudDbContext(options);
|
||||||
var cacheDb = new CacheDb();
|
var cacheDb = new CacheDb();
|
||||||
var wellService = new WellService(db, new TelemetryTracker(), cacheDb);
|
var telemetryService = new TelemetryService(db, new TelemetryTracker(), cacheDb);
|
||||||
|
var wellService = new WellService(db, telemetryService, cacheDb);
|
||||||
var wellOptsStat = new WellOperationsStatService(db, cacheDb, wellService);
|
var wellOptsStat = new WellOperationsStatService(db, cacheDb, wellService);
|
||||||
var tvd = wellOptsStat.GetTvdAsync(1, default).Result;
|
var tvd = wellOptsStat.GetTvdAsync(1, default).Result;
|
||||||
Print(tvd);
|
Print(tvd);
|
||||||
|
Loading…
Reference in New Issue
Block a user