DD.WellWorkover.Cloud/AsbCloudApp/Services/IWellService.cs

116 lines
4.1 KiB
C#
Raw Normal View History

using AsbCloudApp.Data;
using AsbCloudApp.Requests;
using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
namespace AsbCloudApp.Services
{
2022-08-09 11:10:01 +05:00
/// <summary>
/// сервис скважин
/// </summary>
public interface IWellService : ICrudRepository<WellDto>
{
2022-08-09 11:10:01 +05:00
/// <summary>
/// сервис телеметрии
/// </summary>
ITelemetryService TelemetryService { get; }
2022-08-09 11:10:01 +05:00
/// <summary>
/// Список скважин доступных компании
/// </summary>
/// <param name="request"></param>
2022-08-09 11:10:01 +05:00
/// <param name="token"></param>
/// <returns></returns>
Task<IEnumerable<WellDto>> GetAsync(WellRequest request, CancellationToken token);
2022-08-09 11:10:01 +05:00
/// <summary>
/// Статистика по скважине
/// </summary>
/// <param name="idWell"></param>
/// <param name="token"></param>
/// <returns></returns>
Task<WellMapInfoWithTelemetryStat?> GetOrDefaultStatAsync(int idWell, CancellationToken token);
2022-08-09 11:10:01 +05:00
/// <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);
2022-08-09 11:10:01 +05:00
//TODO: remove that
2022-08-09 11:10:01 +05:00
/// <summary>
/// получить название скважины по id
/// </summary>
/// <param name="idWell"></param>
/// <param name="token"></param>
/// <returns></returns>
2021-08-25 11:13:56 +05:00
Task<string> GetWellCaptionByIdAsync(int idWell, CancellationToken token);
2022-08-09 11:10:01 +05:00
/// <summary>
2022-08-12 12:36:11 +05:00
/// список компаний участвующих в скважине
2022-08-09 11:10:01 +05:00
/// </summary>
/// <param name="idWell"></param>
/// <param name="token"></param>
/// <returns></returns>
2022-04-11 18:00:34 +05:00
Task<IEnumerable<CompanyDto>> GetCompaniesAsync(int idWell, CancellationToken token);
2022-08-09 11:10:01 +05:00
//TODO: remove that
/// <summary>
///
/// </summary>
/// <param name="state"></param>
/// <returns></returns>
string GetStateText(int state);
2022-08-09 11:10:01 +05:00
/// <summary>
/// дата получения последних данных от панели
/// </summary>
/// <param name="idWell"></param>
/// <returns></returns>
2023-05-19 17:57:07 +05:00
DateTime GetLastTelemetryDate(int idWell);
2022-08-09 11:10:01 +05:00
//TODO: выяснить и удалить отсюда
/// <summary>
/// получение списка скважин куста в котором находится указанная скважина
/// </summary>
/// <param name="idWell"></param>
/// <param name="token"></param>
/// <returns></returns>
Task<IEnumerable<int>> GetClusterWellsIdsAsync(int idWell, CancellationToken token);
2022-08-09 11:10:01 +05:00
/// <summary>
/// часовой пояс скважины
/// </summary>
/// <param name="idWell"></param>
/// <returns></returns>
SimpleTimezoneDto GetTimezone(int idWell);
2022-08-09 11:10:01 +05:00
/// <summary>
/// диапазон дат с данными телеметрии
/// </summary>
/// <param name="idWell"></param>
/// <returns></returns>
DatesRangeDto GetDatesRange(int idWell);
2022-08-09 11:10:01 +05:00
/// <summary>
/// Проверить задан ли у скважины часовой пояс и задать его если он не задан
/// </summary>
/// <param name="token"></param>
/// <returns></returns>
Task EnshureTimezonesIsSetAsync(CancellationToken token);
/// <summary>
/// ВРЕМЕННЫЙ метод
/// </summary>
/// <param name="idCompany"></param>
/// <param name="token"></param>
/// <returns></returns>
Task<IEnumerable<DepositBranchDto>> GetWellTreeAsync(int idCompany, CancellationToken token);
}
}