forked from ddrilling/AsbCloudServer
doc
This commit is contained in:
parent
70e6ce766b
commit
f4b3dfd9fe
@ -2,6 +2,8 @@
|
|||||||
|
|
||||||
namespace AsbCloudApp.Data
|
namespace AsbCloudApp.Data
|
||||||
{
|
{
|
||||||
|
//todo: добавить валидацию
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Операции на скважине (заведенные пользователем)
|
/// Операции на скважине (заведенные пользователем)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -12,11 +12,51 @@ namespace AsbCloudApp.Services
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public interface IDailyReportService
|
public interface IDailyReportService
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// получить список сформированных рапортов по скважине за период времени
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="idWell"></param>
|
||||||
|
/// <param name="v1"></param>
|
||||||
|
/// <param name="v2"></param>
|
||||||
|
/// <param name="cancellationToken"></param>
|
||||||
|
/// <returns></returns>
|
||||||
Task<IEnumerable<DailyReportDto>> GetListAsync(int idWell, DateTime? v1, DateTime? v2, CancellationToken cancellationToken);
|
Task<IEnumerable<DailyReportDto>> GetListAsync(int idWell, DateTime? v1, DateTime? v2, CancellationToken cancellationToken);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// получить из БД или генерировать данные для суточного рапорта за указанную дату
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="idWell"></param>
|
||||||
|
/// <param name="date"></param>
|
||||||
|
/// <param name="token"></param>
|
||||||
|
/// <returns></returns>
|
||||||
Task<DailyReportDto> GetOrGenerateAsync(int idWell, DateTime date, CancellationToken token);
|
Task<DailyReportDto> GetOrGenerateAsync(int idWell, DateTime date, CancellationToken token);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Добавить новый рапорт
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="idWell"></param>
|
||||||
|
/// <param name="dto"></param>
|
||||||
|
/// <param name="token"></param>
|
||||||
|
/// <returns></returns>
|
||||||
Task<int> AddAsync(int idWell, DailyReportDto dto, CancellationToken token = default);
|
Task<int> AddAsync(int idWell, DailyReportDto dto, CancellationToken token = default);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// изменить данные для суточного рапорта
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="idWell"></param>
|
||||||
|
/// <param name="date"></param>
|
||||||
|
/// <param name="dto"></param>
|
||||||
|
/// <param name="token"></param>
|
||||||
|
/// <returns></returns>
|
||||||
Task<int> UpdateAsync(int idWell, DateTime date, DailyReportDto dto, CancellationToken token = default);
|
Task<int> UpdateAsync(int idWell, DateTime date, DailyReportDto dto, CancellationToken token = default);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Сформировать файл рапорта
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="idWell"></param>
|
||||||
|
/// <param name="date"></param>
|
||||||
|
/// <param name="token"></param>
|
||||||
|
/// <returns></returns>
|
||||||
Task<Stream> MakeReportAsync(int idWell, DateTime date, CancellationToken token = default);
|
Task<Stream> MakeReportAsync(int idWell, DateTime date, CancellationToken token = default);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,14 +7,36 @@ using System.Threading.Tasks;
|
|||||||
|
|
||||||
namespace AsbCloudApp.Services
|
namespace AsbCloudApp.Services
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Сервис сообщений панели оператора
|
||||||
|
/// </summary>
|
||||||
public interface IMessageService
|
public interface IMessageService
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Получить сообщения по параметрам
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="idWell"></param>
|
||||||
|
/// <param name="categoryids"></param>
|
||||||
|
/// <param name="begin"></param>
|
||||||
|
/// <param name="end"></param>
|
||||||
|
/// <param name="searchString"></param>
|
||||||
|
/// <param name="skip"></param>
|
||||||
|
/// <param name="take"></param>
|
||||||
|
/// <param name="token"></param>
|
||||||
|
/// <returns></returns>
|
||||||
Task<PaginationContainer<MessageDto>> GetMessagesAsync(int idWell,
|
Task<PaginationContainer<MessageDto>> GetMessagesAsync(int idWell,
|
||||||
IEnumerable<int> categoryids = default, DateTime begin = default,
|
IEnumerable<int> categoryids = default, DateTime begin = default,
|
||||||
DateTime end = default, string searchString = default,
|
DateTime end = default, string searchString = default,
|
||||||
int skip = 0, int take = 32,
|
int skip = 0, int take = 32,
|
||||||
CancellationToken token = default);
|
CancellationToken token = default);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Метод для сохранения сообщения от панели
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="uid"></param>
|
||||||
|
/// <param name="dtos"></param>
|
||||||
|
/// <param name="token"></param>
|
||||||
|
/// <returns></returns>
|
||||||
Task InsertAsync(string uid, IEnumerable<TelemetryMessageDto> dtos,
|
Task InsertAsync(string uid, IEnumerable<TelemetryMessageDto> dtos,
|
||||||
CancellationToken token);
|
CancellationToken token);
|
||||||
}
|
}
|
||||||
|
@ -2,6 +2,10 @@
|
|||||||
|
|
||||||
namespace AsbCloudApp.Services
|
namespace AsbCloudApp.Services
|
||||||
{
|
{
|
||||||
|
// TODO: Remove this
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
public interface IOperationValueService : ICrudWellRelatedService<OperationValueDto>
|
public interface IOperationValueService : ICrudWellRelatedService<OperationValueDto>
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
@ -5,12 +5,50 @@ using System.Threading.Tasks;
|
|||||||
|
|
||||||
namespace AsbCloudApp.Services
|
namespace AsbCloudApp.Services
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Сервис расчета статистики по операциям вводимым вручную
|
||||||
|
/// </summary>
|
||||||
public interface IOperationsStatService
|
public interface IOperationsStatService
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Получить статистику МСП по кусту в котором находится скважина с IdWell
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="idWell"></param>
|
||||||
|
/// <param name="token"></param>
|
||||||
|
/// <returns></returns>
|
||||||
Task<ClusterRopStatDto> GetRopStatAsync(int idWell, CancellationToken token);
|
Task<ClusterRopStatDto> GetRopStatAsync(int idWell, CancellationToken token);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Получить статистику по скважинам куста, которые доступны компании
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="idCluster"></param>
|
||||||
|
/// <param name="idCompany"></param>
|
||||||
|
/// <param name="token"></param>
|
||||||
|
/// <returns></returns>
|
||||||
Task<StatClusterDto> GetStatClusterAsync(int idCluster, int idCompany, CancellationToken token = default);
|
Task<StatClusterDto> GetStatClusterAsync(int idCluster, int idCompany, CancellationToken token = default);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// получить статистику по скважине
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="idWell"></param>
|
||||||
|
/// <param name="token"></param>
|
||||||
|
/// <returns></returns>
|
||||||
Task<StatWellDto> GetWellStatAsync(int idWell, CancellationToken token = default);
|
Task<StatWellDto> GetWellStatAsync(int idWell, CancellationToken token = default);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Получить данные для графика TVD
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="idWell"></param>
|
||||||
|
/// <param name="token"></param>
|
||||||
|
/// <returns></returns>
|
||||||
Task<IEnumerable<PlanFactPredictBase<WellOperationDto>>> GetTvdAsync(int idWell, CancellationToken token);
|
Task<IEnumerable<PlanFactPredictBase<WellOperationDto>>> GetTvdAsync(int idWell, CancellationToken token);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Получить статистику по набору скважин
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="idWells"></param>
|
||||||
|
/// <param name="token"></param>
|
||||||
|
/// <returns></returns>
|
||||||
Task<IEnumerable<StatWellDto>> GetWellsStatAsync(IEnumerable<int> idWells, CancellationToken token);
|
Task<IEnumerable<StatWellDto>> GetWellsStatAsync(IEnumerable<int> idWells, CancellationToken token);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,10 +0,0 @@
|
|||||||
using System.Threading;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace AsbCloudApp.Services
|
|
||||||
{
|
|
||||||
public interface IPaginationService<Tdto>
|
|
||||||
{
|
|
||||||
Task<Data.PaginationContainer<Tdto>> GetPageAsync(int skip = 0, int take = 32, CancellationToken token = default);
|
|
||||||
}
|
|
||||||
}
|
|
@ -6,15 +6,57 @@ using System.Threading.Tasks;
|
|||||||
|
|
||||||
namespace AsbCloudApp.Services
|
namespace AsbCloudApp.Services
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Сервис рапортов
|
||||||
|
/// </summary>
|
||||||
public interface IReportService
|
public interface IReportService
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// категория рапорта
|
||||||
|
/// </summary>
|
||||||
int ReportCategoryId { get; }
|
int ReportCategoryId { get; }
|
||||||
|
|
||||||
|
// TODO: rename this method
|
||||||
|
/// <summary>
|
||||||
|
/// Поставить рапорт в очередь на формирование
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="idWell"></param>
|
||||||
|
/// <param name="idUser"></param>
|
||||||
|
/// <param name="stepSeconds"></param>
|
||||||
|
/// <param name="format"></param>
|
||||||
|
/// <param name="begin"></param>
|
||||||
|
/// <param name="end"></param>
|
||||||
|
/// <param name="handleReportProgress"></param>
|
||||||
|
/// <returns></returns>
|
||||||
string CreateReport(int idWell, int idUser, int stepSeconds,
|
string CreateReport(int idWell, int idUser, int stepSeconds,
|
||||||
int format, DateTime begin, DateTime end,
|
int format, DateTime begin, DateTime end,
|
||||||
Action<object, string> handleReportProgress);
|
Action<object, string> handleReportProgress);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Получить предполагаемый список страниц рапорта
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="idWell"></param>
|
||||||
|
/// <param name="begin"></param>
|
||||||
|
/// <param name="end"></param>
|
||||||
|
/// <param name="stepSeconds"></param>
|
||||||
|
/// <param name="format"></param>
|
||||||
|
/// <returns></returns>
|
||||||
int GetReportPagesCount(int idWell, DateTime begin, DateTime end,
|
int GetReportPagesCount(int idWell, DateTime begin, DateTime end,
|
||||||
int stepSeconds, int format);
|
int stepSeconds, int format);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// получить диапазон дат за которые есть данные
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="idWell"></param>
|
||||||
|
/// <returns></returns>
|
||||||
DatesRangeDto GetDatesRangeOrDefault(int idWell);
|
DatesRangeDto GetDatesRangeOrDefault(int idWell);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Список готовых рапортов
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="idWell"></param>
|
||||||
|
/// <param name="token"></param>
|
||||||
|
/// <returns></returns>
|
||||||
Task<IEnumerable<ReportPropertiesDto>> GetAllReportsByWellAsync(int idWell, CancellationToken token);
|
Task<IEnumerable<ReportPropertiesDto>> GetAllReportsByWellAsync(int idWell, CancellationToken token);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,11 +0,0 @@
|
|||||||
using System;
|
|
||||||
|
|
||||||
namespace AsbCloudApp.Services
|
|
||||||
{
|
|
||||||
public interface IReportsBackgroundQueue
|
|
||||||
{
|
|
||||||
int EnqueueTask(Action<int> action);
|
|
||||||
|
|
||||||
bool TryDequeue(out (Action<int> action, int id) item);
|
|
||||||
}
|
|
||||||
}
|
|
@ -4,14 +4,59 @@ using System.Collections.Generic;
|
|||||||
|
|
||||||
namespace AsbCloudApp.Services
|
namespace AsbCloudApp.Services
|
||||||
{
|
{
|
||||||
|
// TODO: make this nullable
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Отслеживание и сбор статистики по запросам
|
||||||
|
/// </summary>
|
||||||
public interface IRequerstTrackerService
|
public interface IRequerstTrackerService
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Регистрирует новый запрос
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="requestLog"></param>
|
||||||
void RegisterRequest(RequestLogDto requestLog);
|
void RegisterRequest(RequestLogDto requestLog);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Регистрирует новый запрос, вызвавший ошибку на сервере
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="requestLog"></param>
|
||||||
|
/// <param name="ex"></param>
|
||||||
void RegisterRequestError(RequestLogDto requestLog, Exception ex);
|
void RegisterRequestError(RequestLogDto requestLog, Exception ex);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// все зарегистрированные запросы
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="take"></param>
|
||||||
|
/// <returns></returns>
|
||||||
IEnumerable<RequestLogDto> GetAll(int take = -1);
|
IEnumerable<RequestLogDto> GetAll(int take = -1);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// запросы которые выполнялись быстро
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="take"></param>
|
||||||
|
/// <returns></returns>
|
||||||
IEnumerable<RequestLogDto> GetFast(int take = -1);
|
IEnumerable<RequestLogDto> GetFast(int take = -1);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// запросы, которые выполнялись медленно
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="take"></param>
|
||||||
|
/// <returns></returns>
|
||||||
IEnumerable<RequestLogDto> GetSlow(int take = -1);
|
IEnumerable<RequestLogDto> GetSlow(int take = -1);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// запросы, которые завершились ошибкой
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="take"></param>
|
||||||
|
/// <returns></returns>
|
||||||
IEnumerable<RequestLogDto> GetError(int take = -1);
|
IEnumerable<RequestLogDto> GetError(int take = -1);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Статистика посещений пользователей
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="take"></param>
|
||||||
|
/// <returns></returns>
|
||||||
IEnumerable<RequestLogUserDto> GetUsersStat(int take = -1);
|
IEnumerable<RequestLogUserDto> GetUsersStat(int take = -1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,8 +4,17 @@ using System.Threading.Tasks;
|
|||||||
|
|
||||||
namespace AsbCloudApp.Services
|
namespace AsbCloudApp.Services
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Сервис формирования Сетевого графика.
|
||||||
|
/// </summary>
|
||||||
public interface IScheduleReportService
|
public interface IScheduleReportService
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Сформировать.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="idWell"></param>
|
||||||
|
/// <param name="token"></param>
|
||||||
|
/// <returns></returns>
|
||||||
Task<Stream> MakeReportAsync(int idWell, CancellationToken token = default);
|
Task<Stream> MakeReportAsync(int idWell, CancellationToken token = default);
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -5,8 +5,19 @@ using System.Threading.Tasks;
|
|||||||
|
|
||||||
namespace AsbCloudApp.Services
|
namespace AsbCloudApp.Services
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Сервис расписания смен бурильщика
|
||||||
|
/// </summary>
|
||||||
public interface IScheduleService : ICrudWellRelatedService<ScheduleDto>
|
public interface IScheduleService : ICrudWellRelatedService<ScheduleDto>
|
||||||
{
|
{
|
||||||
|
// TODO: this should be nullable.
|
||||||
|
/// <summary>
|
||||||
|
/// получить бурильщика по idWell и времени
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="idWell"></param>
|
||||||
|
/// <param name="workTime"></param>
|
||||||
|
/// <param name="token"></param>
|
||||||
|
/// <returns></returns>
|
||||||
Task<DrillerDto> GetDrillerAsync(int idWell, DateTime workTime, CancellationToken token);
|
Task<DrillerDto> GetDrillerAsync(int idWell, DateTime workTime, CancellationToken token);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,13 +5,55 @@ using System.Threading.Tasks;
|
|||||||
|
|
||||||
namespace AsbCloudApp.Services
|
namespace AsbCloudApp.Services
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Сервис рекомендаций новых уставок для панели оператора САУБ
|
||||||
|
/// </summary>
|
||||||
public interface ISetpointsService
|
public interface ISetpointsService
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Добавить новый набор рекомендаций
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="setpoints"></param>
|
||||||
|
/// <param name="token"></param>
|
||||||
|
/// <returns></returns>
|
||||||
Task<int> InsertAsync(SetpointsRequestDto setpoints, CancellationToken token);
|
Task<int> InsertAsync(SetpointsRequestDto setpoints, CancellationToken token);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Получить наборы уставок на скважине
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="idWell"></param>
|
||||||
|
/// <param name="token"></param>
|
||||||
|
/// <returns></returns>
|
||||||
Task<IEnumerable<SetpointsRequestDto>> GetAsync(int idWell, CancellationToken token);
|
Task<IEnumerable<SetpointsRequestDto>> GetAsync(int idWell, CancellationToken token);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Скачать новые рекомендации (скачивает панель оператора)
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="uid"></param>
|
||||||
|
/// <param name="token"></param>
|
||||||
|
/// <returns></returns>
|
||||||
Task<IEnumerable<SetpointsRequestDto>> GetForPanelAsync(string uid, CancellationToken token);
|
Task<IEnumerable<SetpointsRequestDto>> GetForPanelAsync(string uid, CancellationToken token);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Попробовать удалить (успешно, если панель еще не забрала уставки)
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="id"></param>
|
||||||
|
/// <param name="token"></param>
|
||||||
|
/// <returns></returns>
|
||||||
Task<int> TryDelete(int id, CancellationToken token);
|
Task<int> TryDelete(int id, CancellationToken token);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// отредактировать состояние набора рекомендаций
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="setpointsRequestDto"></param>
|
||||||
|
/// <param name="token"></param>
|
||||||
|
/// <returns></returns>
|
||||||
Task<int> UpdateStateAsync(SetpointsRequestDto setpointsRequestDto, CancellationToken token);
|
Task<int> UpdateStateAsync(SetpointsRequestDto setpointsRequestDto, CancellationToken token);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Список уставок для рекомендаций
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
IEnumerable<SetpointInfoDto> GetSetpointsNames();
|
IEnumerable<SetpointInfoDto> GetSetpointsNames();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,12 +6,33 @@ using System.Threading.Tasks;
|
|||||||
|
|
||||||
namespace AsbCloudApp.Services
|
namespace AsbCloudApp.Services
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// сервис данных тех. процесса
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="TDto"></typeparam>
|
||||||
public interface ITelemetryDataService<TDto> where TDto : ITelemetryData
|
public interface ITelemetryDataService<TDto> where TDto : ITelemetryData
|
||||||
{
|
{
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// получить данные тех. процесса
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="idWell"></param>
|
||||||
|
/// <param name="dateBegin"></param>
|
||||||
|
/// <param name="intervalSec"></param>
|
||||||
|
/// <param name="approxPointsCount">кол-во элементов до которых эти данные прореживаются</param>
|
||||||
|
/// <param name="token"></param>
|
||||||
|
/// <returns></returns>
|
||||||
Task<IEnumerable<TDto>> GetAsync(int idWell,
|
Task<IEnumerable<TDto>> GetAsync(int idWell,
|
||||||
DateTime dateBegin = default, double intervalSec = 600d,
|
DateTime dateBegin = default, double intervalSec = 600d,
|
||||||
int approxPointsCount = 1024, CancellationToken token = default);
|
int approxPointsCount = 1024, CancellationToken token = default);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// добавить/изменить данные тех. процесса (используется панелью)
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="uid"></param>
|
||||||
|
/// <param name="dtos"></param>
|
||||||
|
/// <param name="token"></param>
|
||||||
|
/// <returns></returns>
|
||||||
Task<int> UpdateDataAsync(string uid, IEnumerable<TDto> dtos, CancellationToken token = default);
|
Task<int> UpdateDataAsync(string uid, IEnumerable<TDto> dtos, CancellationToken token = default);
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -7,18 +7,89 @@ using System.Threading.Tasks;
|
|||||||
|
|
||||||
namespace AsbCloudApp.Services
|
namespace AsbCloudApp.Services
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Сервис телеметрии
|
||||||
|
/// </summary>
|
||||||
public interface ITelemetryService
|
public interface ITelemetryService
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// сервис временных зон
|
||||||
|
/// </summary>
|
||||||
ITimezoneService TimeZoneService { get; }
|
ITimezoneService TimeZoneService { get; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// трекер запросов
|
||||||
|
/// </summary>
|
||||||
ITelemetryTracker TelemetryTracker { get; }
|
ITelemetryTracker TelemetryTracker { get; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// получить idWell по uid телеметрии
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="uid"></param>
|
||||||
|
/// <returns></returns>
|
||||||
int? GetIdWellByTelemetryUid(string uid);
|
int? GetIdWellByTelemetryUid(string uid);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Получить id телеметрии. Если её нет в БД, то добавить новую.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="uid"></param>
|
||||||
|
/// <returns></returns>
|
||||||
int GetOrCreateTelemetryIdByUid(string uid);
|
int GetOrCreateTelemetryIdByUid(string uid);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// получить временную зону скважины по idTelemetry
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="idTelemetry"></param>
|
||||||
|
/// <returns></returns>
|
||||||
SimpleTimezoneDto GetTimezone(int idTelemetry);
|
SimpleTimezoneDto GetTimezone(int idTelemetry);
|
||||||
|
|
||||||
|
// TODO: вероятно лишнее
|
||||||
|
/// <summary>
|
||||||
|
/// Список передающих в данный момент телеметрий
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
IEnumerable<TelemetryDto> GetTransmittingTelemetries();
|
IEnumerable<TelemetryDto> GetTransmittingTelemetries();
|
||||||
|
|
||||||
|
// TODO: вероятно лишнее
|
||||||
|
/// <summary>
|
||||||
|
/// Получить дату получения последних данных
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="idTelemetry"></param>
|
||||||
|
/// <param name="useUtc"></param>
|
||||||
|
/// <returns></returns>
|
||||||
DateTime GetLastTelemetryDate(int idTelemetry, bool useUtc = false);
|
DateTime GetLastTelemetryDate(int idTelemetry, bool useUtc = false);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// получить idTelemetry по IdWell
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="idWell"></param>
|
||||||
|
/// <returns></returns>
|
||||||
int? GetIdTelemetryByIdWell(int idWell);
|
int? GetIdTelemetryByIdWell(int idWell);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// получить диапазон дат за которые есть данные
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="idTelemetry"></param>
|
||||||
|
/// <returns></returns>
|
||||||
DatesRangeDto GetDatesRange(int idTelemetry);
|
DatesRangeDto GetDatesRange(int idTelemetry);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// обновить данные о телеметрии (используется панелью)
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="uid"></param>
|
||||||
|
/// <param name="info"></param>
|
||||||
|
/// <param name="token"></param>
|
||||||
|
/// <returns></returns>
|
||||||
Task UpdateInfoAsync(string uid, TelemetryInfoDto info, CancellationToken token);
|
Task UpdateInfoAsync(string uid, TelemetryInfoDto info, CancellationToken token);
|
||||||
|
|
||||||
|
// TODO: вероятно лишнее
|
||||||
|
/// <summary>
|
||||||
|
/// обновить данные о временной зоне (используется панелью)
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="uid"></param>
|
||||||
|
/// <param name="telemetryTimeZoneInfo"></param>
|
||||||
|
/// <param name="token"></param>
|
||||||
|
/// <returns></returns>
|
||||||
Task UpdateTimezoneAsync(string uid, SimpleTimezoneDto telemetryTimeZoneInfo, CancellationToken token);
|
Task UpdateTimezoneAsync(string uid, SimpleTimezoneDto telemetryTimeZoneInfo, CancellationToken token);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -29,6 +100,13 @@ namespace AsbCloudApp.Services
|
|||||||
/// <param name="token"></param>
|
/// <param name="token"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
Task<int> MergeAsync(int from, int to, CancellationToken token);
|
Task<int> MergeAsync(int from, int to, CancellationToken token);
|
||||||
|
|
||||||
|
// TODO: вероятно лишнее
|
||||||
|
/// <summary>
|
||||||
|
/// сохранить данные о запросе
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="uid"></param>
|
||||||
|
/// <param name="remoteDate"></param>
|
||||||
void SaveRequestDate(string uid, DateTimeOffset remoteDate);
|
void SaveRequestDate(string uid, DateTimeOffset remoteDate);
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -4,11 +4,36 @@ using System.Collections.Generic;
|
|||||||
|
|
||||||
namespace AsbCloudApp.Services
|
namespace AsbCloudApp.Services
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Сервис статистики телеметрии
|
||||||
|
/// </summary>
|
||||||
public interface ITelemetryTracker
|
public interface ITelemetryTracker
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// получить дату последней отправки данных панелью
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="uid"></param>
|
||||||
|
/// <returns></returns>
|
||||||
DateTimeOffset GetLastTelemetryDateByUid(string uid);
|
DateTimeOffset GetLastTelemetryDateByUid(string uid);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// получить диапазон дат за которые есть данные по телеметрии
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="uid"></param>
|
||||||
|
/// <returns></returns>
|
||||||
DatesRangeDto GetTelemetryDateRangeByUid(string uid);
|
DatesRangeDto GetTelemetryDateRangeByUid(string uid);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// список передающих телеметрий
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
IEnumerable<string> GetTransmittingTelemetriesUids();
|
IEnumerable<string> GetTransmittingTelemetriesUids();
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// обновить статистику по телеметрии
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="uid"></param>
|
||||||
|
/// <param name="remoteDate"></param>
|
||||||
void SaveRequestDate(string uid, DateTimeOffset remoteDate);
|
void SaveRequestDate(string uid, DateTimeOffset remoteDate);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,8 +5,18 @@ using System.Threading.Tasks;
|
|||||||
|
|
||||||
namespace AsbCloudApp.Services
|
namespace AsbCloudApp.Services
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// сервис пользователей телеметрии
|
||||||
|
/// </summary>
|
||||||
public interface ITelemetryUserService
|
public interface ITelemetryUserService
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// получает и сохраняет/обновляет список пользователей панели оператора
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="uid"></param>
|
||||||
|
/// <param name="dtos"></param>
|
||||||
|
/// <param name="token"></param>
|
||||||
|
/// <returns></returns>
|
||||||
Task UpsertAsync(string uid, IEnumerable<TelemetryUserDto> dtos, CancellationToken token = default);
|
Task UpsertAsync(string uid, IEnumerable<TelemetryUserDto> dtos, CancellationToken token = default);
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -4,9 +4,26 @@ using System.Threading.Tasks;
|
|||||||
|
|
||||||
namespace AsbCloudApp.Services
|
namespace AsbCloudApp.Services
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// сервис определения временной зоны
|
||||||
|
/// </summary>
|
||||||
public interface ITimezoneService
|
public interface ITimezoneService
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// по координатам
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="latitude"></param>
|
||||||
|
/// <param name="longitude"></param>
|
||||||
|
/// <returns></returns>
|
||||||
SimpleTimezoneDto GetByCoordinates(double latitude, double longitude);
|
SimpleTimezoneDto GetByCoordinates(double latitude, double longitude);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// по координатам
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="latitude"></param>
|
||||||
|
/// <param name="longitude"></param>
|
||||||
|
/// <param name="token"></param>
|
||||||
|
/// <returns></returns>
|
||||||
Task<Data.SimpleTimezoneDto> GetByCoordinatesAsync(double latitude, double longitude, CancellationToken token);
|
Task<Data.SimpleTimezoneDto> GetByCoordinatesAsync(double latitude, double longitude, CancellationToken token);
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -5,11 +5,43 @@ using System.Threading.Tasks;
|
|||||||
|
|
||||||
namespace AsbCloudApp.Services
|
namespace AsbCloudApp.Services
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Репозиторий ролей пользователя
|
||||||
|
/// </summary>
|
||||||
public interface IUserRoleService : ICrudService<UserRoleDto>
|
public interface IUserRoleService : ICrudService<UserRoleDto>
|
||||||
{
|
{
|
||||||
|
// todo: скорее всего не используется
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="name"></param>
|
||||||
|
/// <param name="token"></param>
|
||||||
|
/// <returns></returns>
|
||||||
Task<UserRoleDto> GetByNameAsync(string name, CancellationToken token = default);
|
Task<UserRoleDto> GetByNameAsync(string name, CancellationToken token = default);
|
||||||
|
|
||||||
|
// todo: переименовать
|
||||||
|
/// <summary>
|
||||||
|
/// получить dto по названиям
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="names"></param>
|
||||||
|
/// <param name="token"></param>
|
||||||
|
/// <returns></returns>
|
||||||
Task<IEnumerable<UserRoleDto>> GetByNamesAsync(IEnumerable<string> names, CancellationToken token = default);
|
Task<IEnumerable<UserRoleDto>> GetByNamesAsync(IEnumerable<string> names, CancellationToken token = default);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// получить все вложенные разрешения
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="id"></param>
|
||||||
|
/// <param name="counter"></param>
|
||||||
|
/// <returns></returns>
|
||||||
IEnumerable<UserRoleDto> GetNestedById(int id, int counter = 10);
|
IEnumerable<UserRoleDto> GetNestedById(int id, int counter = 10);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// определяет содержится ли разрешение в одной из указанных ролей
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="rolesIds"></param>
|
||||||
|
/// <param name="permissionName"></param>
|
||||||
|
/// <returns></returns>
|
||||||
bool HasPermission(IEnumerable<int> rolesIds, string permissionName);
|
bool HasPermission(IEnumerable<int> rolesIds, string permissionName);
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -3,13 +3,55 @@ using System.Collections.Generic;
|
|||||||
|
|
||||||
namespace AsbCloudApp.Services
|
namespace AsbCloudApp.Services
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Сервис пользователей
|
||||||
|
/// </summary>
|
||||||
public interface IUserService : ICrudService<UserExtendedDto>
|
public interface IUserService : ICrudService<UserExtendedDto>
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Сервис ролей
|
||||||
|
/// </summary>
|
||||||
IUserRoleService RoleService { get; }
|
IUserRoleService RoleService { get; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Получить список всех прав пользователя (включая наследование групп)
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="idUser"></param>
|
||||||
|
/// <returns></returns>
|
||||||
IEnumerable<PermissionDto> GetNestedPermissions(int idUser);
|
IEnumerable<PermissionDto> GetNestedPermissions(int idUser);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Получить список ролей пользователя (включая наследование)
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="idUser"></param>
|
||||||
|
/// <param name="nestedLevel"></param>
|
||||||
|
/// <returns></returns>
|
||||||
IEnumerable<UserRoleDto> GetRolesByIdUser(int idUser, int nestedLevel = 0);
|
IEnumerable<UserRoleDto> GetRolesByIdUser(int idUser, int nestedLevel = 0);
|
||||||
|
|
||||||
|
// TODO: скорее всего не используется
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="idUser"></param>
|
||||||
|
/// <param name="roleNames"></param>
|
||||||
|
/// <returns></returns>
|
||||||
bool HasAnyRoleOf(int idUser, IEnumerable<string> roleNames);
|
bool HasAnyRoleOf(int idUser, IEnumerable<string> roleNames);
|
||||||
|
|
||||||
|
// TODO: скорее всего не используется
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="idUser"></param>
|
||||||
|
/// <param name="roleIds"></param>
|
||||||
|
/// <returns></returns>
|
||||||
bool HasAnyRoleOf(int idUser, IEnumerable<int> roleIds);
|
bool HasAnyRoleOf(int idUser, IEnumerable<int> roleIds);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// определяет есть ли у пользователя указанное разрешение
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="idUser"></param>
|
||||||
|
/// <param name="permissionName"></param>
|
||||||
|
/// <returns></returns>
|
||||||
public bool HasPermission(int idUser, string permissionName);
|
public bool HasPermission(int idUser, string permissionName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,13 +3,57 @@ using System.Threading.Tasks;
|
|||||||
|
|
||||||
namespace AsbCloudApp.Services
|
namespace AsbCloudApp.Services
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// репозиторий для личных настроек пользователя
|
||||||
|
/// </summary>
|
||||||
public interface IUserSettingsRepository
|
public interface IUserSettingsRepository
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// код ошибки: ключ не найден
|
||||||
|
/// </summary>
|
||||||
public const int ErrorKeyNotFound = -1;
|
public const int ErrorKeyNotFound = -1;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// код ошибки: ключ уже занят
|
||||||
|
/// </summary>
|
||||||
public const int ErrorKeyIsUsed = -2;
|
public const int ErrorKeyIsUsed = -2;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Получить настройки по ключу для пользователя
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="userId"></param>
|
||||||
|
/// <param name="key"></param>
|
||||||
|
/// <param name="token"></param>
|
||||||
|
/// <returns></returns>
|
||||||
Task<object> GetOrDefaultAsync(int userId, string key, CancellationToken token);
|
Task<object> GetOrDefaultAsync(int userId, string key, CancellationToken token);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Добавить настройки с ключем для пользователя
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="userId"></param>
|
||||||
|
/// <param name="key"></param>
|
||||||
|
/// <param name="value"></param>
|
||||||
|
/// <param name="token"></param>
|
||||||
|
/// <returns></returns>
|
||||||
Task<int> InsertAsync(int userId, string key, object value, CancellationToken token);
|
Task<int> InsertAsync(int userId, string key, object value, CancellationToken token);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Отредактировать настройки с ключем для пользователя
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="userId"></param>
|
||||||
|
/// <param name="key"></param>
|
||||||
|
/// <param name="value"></param>
|
||||||
|
/// <param name="token"></param>
|
||||||
|
/// <returns></returns>
|
||||||
Task<int> UpdateAsync(int userId, string key, object value, CancellationToken token);
|
Task<int> UpdateAsync(int userId, string key, object value, CancellationToken token);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Удалить настройки с ключем для пользователя
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="userId"></param>
|
||||||
|
/// <param name="key"></param>
|
||||||
|
/// <param name="token"></param>
|
||||||
|
/// <returns></returns>
|
||||||
Task<int> DeleteAsync(int userId, string key, CancellationToken token);
|
Task<int> DeleteAsync(int userId, string key, CancellationToken token);
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -5,9 +5,26 @@ using System.Threading.Tasks;
|
|||||||
|
|
||||||
namespace AsbCloudApp.Services
|
namespace AsbCloudApp.Services
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Сервис создания композитной скважины
|
||||||
|
/// </summary>
|
||||||
public interface IWellCompositeService
|
public interface IWellCompositeService
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Получить секции композитной скважины
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="idWell"></param>
|
||||||
|
/// <param name="cancellationToken"></param>
|
||||||
|
/// <returns></returns>
|
||||||
Task<IEnumerable<WellCompositeDto>> GetAsync(int idWell, CancellationToken cancellationToken);
|
Task<IEnumerable<WellCompositeDto>> GetAsync(int idWell, CancellationToken cancellationToken);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// сохранить секции композитной скважины
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="idWell"></param>
|
||||||
|
/// <param name="wellComposites"></param>
|
||||||
|
/// <param name="token"></param>
|
||||||
|
/// <returns></returns>
|
||||||
Task<int> SaveAsync(int idWell, IEnumerable<WellCompositeDto> wellComposites, CancellationToken token);
|
Task<int> SaveAsync(int idWell, IEnumerable<WellCompositeDto> wellComposites, CancellationToken token);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,10 +2,30 @@
|
|||||||
|
|
||||||
namespace AsbCloudApp.Services
|
namespace AsbCloudApp.Services
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// сервис импорта/экспорта операций по скважине вводимых вручную
|
||||||
|
/// </summary>
|
||||||
public interface IWellOperationImportService
|
public interface IWellOperationImportService
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// скачать в excel
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="idWell"></param>
|
||||||
|
/// <returns></returns>
|
||||||
Stream Export(int idWell);
|
Stream Export(int idWell);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// скачать шаблон для заполнения
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
Stream GetExcelTemplateStream();
|
Stream GetExcelTemplateStream();
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// закгрузить из excel список операций
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="idWell"></param>
|
||||||
|
/// <param name="stream"></param>
|
||||||
|
/// <param name="deleteWellOperationsBeforeImport">Очистить старые перед импортом (если файл проходит валидацию)</param>
|
||||||
void Import(int idWell, Stream stream, bool deleteWellOperationsBeforeImport = false);
|
void Import(int idWell, Stream stream, bool deleteWellOperationsBeforeImport = false);
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -6,10 +6,33 @@ using System.Threading.Tasks;
|
|||||||
|
|
||||||
namespace AsbCloudApp.Services
|
namespace AsbCloudApp.Services
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// сервис операций по скважине
|
||||||
|
/// </summary>
|
||||||
public interface IWellOperationService
|
public interface IWellOperationService
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// список названий операций
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
IEnumerable<WellOperationCategoryDto> GetCategories();
|
IEnumerable<WellOperationCategoryDto> GetCategories();
|
||||||
|
|
||||||
|
// TODO: объединить параметры в объект запроса
|
||||||
|
/// <summary>
|
||||||
|
/// Получить список операций
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="idWell"></param>
|
||||||
|
/// <param name="operationType"></param>
|
||||||
|
/// <param name="sectionTypeIds"></param>
|
||||||
|
/// <param name="operationCategoryIds"></param>
|
||||||
|
/// <param name="begin"></param>
|
||||||
|
/// <param name="end"></param>
|
||||||
|
/// <param name="minDepth"></param>
|
||||||
|
/// <param name="maxDepth"></param>
|
||||||
|
/// <param name="skip"></param>
|
||||||
|
/// <param name="take"></param>
|
||||||
|
/// <param name="token"></param>
|
||||||
|
/// <returns></returns>
|
||||||
Task<PaginationContainer<WellOperationDto>> GetOperationsAsync(
|
Task<PaginationContainer<WellOperationDto>> GetOperationsAsync(
|
||||||
int idWell,
|
int idWell,
|
||||||
int? operationType = null,
|
int? operationType = null,
|
||||||
@ -23,16 +46,56 @@ namespace AsbCloudApp.Services
|
|||||||
int take = 32,
|
int take = 32,
|
||||||
CancellationToken token = default);
|
CancellationToken token = default);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Получить операцию по id
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="id"></param>
|
||||||
|
/// <param name="token"></param>
|
||||||
|
/// <returns></returns>
|
||||||
Task<WellOperationDto> GetAsync(int id, CancellationToken token);
|
Task<WellOperationDto> GetAsync(int id, CancellationToken token);
|
||||||
|
|
||||||
|
//todo: idWell Не нужен
|
||||||
|
/// <summary>
|
||||||
|
/// Добавить несколько операций за один раз
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="idWell"></param>
|
||||||
|
/// <param name="wellOperationDtos"></param>
|
||||||
|
/// <param name="token"></param>
|
||||||
|
/// <returns></returns>
|
||||||
Task<int> InsertRangeAsync(int idWell,
|
Task<int> InsertRangeAsync(int idWell,
|
||||||
IEnumerable<WellOperationDto> wellOperationDtos, CancellationToken token);
|
IEnumerable<WellOperationDto> wellOperationDtos, CancellationToken token);
|
||||||
|
|
||||||
|
//todo: id Не нужны
|
||||||
|
/// <summary>
|
||||||
|
/// Обновить существующую операцию
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="idWell"></param>
|
||||||
|
/// <param name="idOperation"></param>
|
||||||
|
/// <param name="item"></param>
|
||||||
|
/// <param name="token"></param>
|
||||||
|
/// <returns></returns>
|
||||||
Task<int> UpdateAsync(int idWell, int idOperation, WellOperationDto item,
|
Task<int> UpdateAsync(int idWell, int idOperation, WellOperationDto item,
|
||||||
CancellationToken token);
|
CancellationToken token);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Удалить операции по id
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="ids"></param>
|
||||||
|
/// <param name="token"></param>
|
||||||
|
/// <returns></returns>
|
||||||
Task<int> DeleteAsync(IEnumerable<int> ids, CancellationToken token);
|
Task<int> DeleteAsync(IEnumerable<int> ids, CancellationToken token);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Список секций
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
IDictionary<int, string> GetSectionTypes();
|
IDictionary<int, string> GetSectionTypes();
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// дата/время первой операции по скважине
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="idWell"></param>
|
||||||
|
/// <returns></returns>
|
||||||
DateTimeOffset? FirstOperationDate(int idWell);
|
DateTimeOffset? FirstOperationDate(int idWell);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,21 +6,101 @@ using System.Threading.Tasks;
|
|||||||
|
|
||||||
namespace AsbCloudApp.Services
|
namespace AsbCloudApp.Services
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// сервис скважин
|
||||||
|
/// </summary>
|
||||||
public interface IWellService : ICrudService<WellDto>
|
public interface IWellService : ICrudService<WellDto>
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// сервис телеметрии
|
||||||
|
/// </summary>
|
||||||
ITelemetryService TelemetryService { get; }
|
ITelemetryService TelemetryService { get; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Список скважин доступных компании
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="idCompany"></param>
|
||||||
|
/// <param name="token"></param>
|
||||||
|
/// <returns></returns>
|
||||||
Task<IEnumerable<WellDto>> GetWellsByCompanyAsync(int idCompany, CancellationToken token);
|
Task<IEnumerable<WellDto>> GetWellsByCompanyAsync(int idCompany, CancellationToken token);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// проверяет доступ к скважине для компании
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="idCompany"></param>
|
||||||
|
/// <param name="idWell"></param>
|
||||||
|
/// <param name="token"></param>
|
||||||
|
/// <returns></returns>
|
||||||
Task<bool> IsCompanyInvolvedInWellAsync(int idCompany, int idWell, CancellationToken token);
|
Task<bool> IsCompanyInvolvedInWellAsync(int idCompany, int idWell, CancellationToken token);
|
||||||
Task<string> GetWellCaptionByIdAsync(int idWell, CancellationToken token);
|
|
||||||
//TODO: remove that
|
/// <summary>
|
||||||
Task<IEnumerable<CompanyDto>> GetCompaniesAsync(int idWell, CancellationToken token);
|
/// проверяет доступ к скважине для компании
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="idCompany"></param>
|
||||||
|
/// <param name="idWell"></param>
|
||||||
|
/// <returns></returns>
|
||||||
bool IsCompanyInvolvedInWell(int idCompany, int idWell);
|
bool IsCompanyInvolvedInWell(int idCompany, int idWell);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// получить название скважины по id
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="idWell"></param>
|
||||||
|
/// <param name="token"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
Task<string> GetWellCaptionByIdAsync(int idWell, CancellationToken token);
|
||||||
|
|
||||||
|
//TODO: remove that
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="idWell"></param>
|
||||||
|
/// <param name="token"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
Task<IEnumerable<CompanyDto>> GetCompaniesAsync(int idWell, CancellationToken token);
|
||||||
|
|
||||||
|
//TODO: remove that
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="state"></param>
|
||||||
|
/// <returns></returns>
|
||||||
string GetStateText(int state);
|
string GetStateText(int state);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// дата получения последних данных от панели
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="idWell"></param>
|
||||||
|
/// <returns></returns>
|
||||||
DateTimeOffset GetLastTelemetryDate(int idWell);
|
DateTimeOffset GetLastTelemetryDate(int idWell);
|
||||||
|
|
||||||
|
//TODO: выяснить и удалить отсюда
|
||||||
|
/// <summary>
|
||||||
|
/// получение списка скважин куста в котором находится указанная скважина
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="idWell"></param>
|
||||||
|
/// <param name="token"></param>
|
||||||
|
/// <returns></returns>
|
||||||
Task<IEnumerable<int>> GetClusterWellsIdsAsync(int idWell, CancellationToken token);
|
Task<IEnumerable<int>> GetClusterWellsIdsAsync(int idWell, CancellationToken token);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// часовой пояс скважины
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="idWell"></param>
|
||||||
|
/// <returns></returns>
|
||||||
SimpleTimezoneDto GetTimezone(int idWell);
|
SimpleTimezoneDto GetTimezone(int idWell);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// диапазон дат с данными телеметрии
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="idWell"></param>
|
||||||
|
/// <returns></returns>
|
||||||
DatesRangeDto GetDatesRange(int idWell);
|
DatesRangeDto GetDatesRange(int idWell);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Проверить задан ли у скважины часовой пояс и задать его если он не задан
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="token"></param>
|
||||||
|
/// <returns></returns>
|
||||||
Task EnshureTimezonesIsSetAsync(CancellationToken token);
|
Task EnshureTimezonesIsSetAsync(CancellationToken token);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,7 +4,7 @@ using System.Collections.Concurrent;
|
|||||||
namespace AsbCloudApp.Services
|
namespace AsbCloudApp.Services
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
/// Репозиторий для хранения в оперативке данных (от панели)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class InstantDataRepository : ConcurrentDictionary<int, ConcurrentDictionary<Type, object>>
|
public class InstantDataRepository : ConcurrentDictionary<int, ConcurrentDictionary<Type, object>>
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user