doc AsbCloudApp

This commit is contained in:
ngfrolov 2022-08-05 17:16:11 +05:00
parent b826962ed1
commit ff357f2794
9 changed files with 154 additions and 6 deletions

View File

@ -9,7 +9,7 @@ namespace AsbCloudApp.Comparators
/// </summary> /// </summary>
public class ComparerIId : IComparer<IId>, IEqualityComparer<IId> public class ComparerIId : IComparer<IId>, IEqualityComparer<IId>
{ {
private static readonly ComparerIId instance = new ComparerIId(); private static readonly ComparerIId instance = new ();
private ComparerIId() { } private ComparerIId() { }
/// <summary> /// <summary>

View File

@ -52,12 +52,12 @@ namespace AsbCloudApp.Data.DetectedOperation
/// <summary> /// <summary>
/// название/описание операции /// название/описание операции
/// </summary> /// </summary>
public WellOperationCategoryDto OperationCategory { get; set; } public WellOperationCategoryDto OperationCategory { get; set; } = null!;
/// <summary> /// <summary>
/// Пользователь панели оператора /// Пользователь панели оператора
/// </summary> /// </summary>
public string TelemetryUserName { get; set; } public string? TelemetryUserName { get; set; }
/// <summary> /// <summary>
/// Бурильщик /// Бурильщик

View File

@ -121,6 +121,7 @@ namespace AsbCloudApp.Data
public int CompareTo(TimeDto other) public int CompareTo(TimeDto other)
=> TotalSeconds - other.TotalSeconds; => TotalSeconds - other.TotalSeconds;
/// <inheritdoc/>
public override bool Equals(object obj) public override bool Equals(object obj)
{ {
if (ReferenceEquals(this, obj)) if (ReferenceEquals(this, obj))
@ -141,6 +142,7 @@ namespace AsbCloudApp.Data
return false; return false;
} }
/// <inheritdoc/>
public override int GetHashCode() public override int GetHashCode()
{ {
return base.GetHashCode(); return base.GetHashCode();

View File

@ -5,14 +5,49 @@ using System.Threading.Tasks;
namespace AsbCloudApp.Services namespace AsbCloudApp.Services
{ {
/// <summary>
/// Сервис авторизации
/// </summary>
public interface IAuthService public interface IAuthService
{ {
/// <summary>
/// Смена пароля пользователю
/// </summary>
/// <param name="idUser"></param>
/// <param name="newPassword"></param>
/// <returns></returns>
int ChangePassword(int idUser, string newPassword); int ChangePassword(int idUser, string newPassword);
/// <summary>
/// Смена пароля пользователю
/// </summary>
/// <param name="userLogin"></param>
/// <param name="newPassword"></param>
/// <returns></returns>
int ChangePassword(string userLogin, string newPassword); int ChangePassword(string userLogin, string newPassword);
/// <summary>
/// Авторизация
/// </summary>
/// <param name="login"></param>
/// <param name="password"></param>
/// <param name="token">токен отмены задачи</param>
/// <returns></returns>
Task<UserTokenDto> LoginAsync(string login, Task<UserTokenDto> LoginAsync(string login,
string password, CancellationToken token = default); string password, CancellationToken token = default);
/// <summary>
/// Обновление токена авторизации
/// </summary>
/// <param name="user"></param>
/// <returns></returns>
string Refresh(ClaimsPrincipal user); string Refresh(ClaimsPrincipal user);
/// <summary>
/// Регистрация нового пользователя
/// </summary>
/// <param name="userDto"></param>
/// <returns></returns>
int Register(UserRegistrationDto userDto); int Register(UserRegistrationDto userDto);
} }
} }

View File

@ -4,19 +4,47 @@ using System.Threading.Tasks;
namespace AsbCloudApp.Services namespace AsbCloudApp.Services
{ {
/// <summary>
/// Сервис выстраивает очередь из фоновых задач. Ограничивает количество одновременно выполняющихся задач.
/// </summary>
public interface IBackgroundWorkerService public interface IBackgroundWorkerService
{ {
/// <summary>
/// Проверка, есть ли задача в очереди
/// </summary>
/// <param name="id">идентификатор задачи</param>
/// <returns></returns>
bool Contains(string id); bool Contains(string id);
/// <summary> /// <summary>
/// Добавляет в очередь задач новую задачу /// Добавляет в очередь задач новую задачу
/// </summary> /// </summary>
/// <param name="id">id задачи в очереди</param> /// <param name="id">идентификатор задачи</param>
/// <param name="func">делегат</param> /// <param name="func">делегат</param>
/// <returns>id задачи в очереди</returns> /// <returns>id задачи в очереди</returns>
string Enqueue(string id, Func<string, CancellationToken, Task> func); string Enqueue(string id, Func<string, CancellationToken, Task> func);
/// <summary>
/// Добавляет в очередь задач новую задачу
/// </summary>
/// <param name="func"></param>
/// <returns></returns>
string Enqueue(Func<string, CancellationToken, Task> func); string Enqueue(Func<string, CancellationToken, Task> func);
/// <summary>
/// Добавляет в очередь задач новую задачу
/// </summary>
/// <param name="id">идентификатор задачи</param>
/// <param name="func"></param>
/// <param name="onError"></param>
/// <returns></returns>
string Enqueue(string id, Func<string, CancellationToken, Task> func, Func<string, Exception, CancellationToken, Task> onError); string Enqueue(string id, Func<string, CancellationToken, Task> func, Func<string, Exception, CancellationToken, Task> onError);
/// <summary>
/// Пробуем удалить задачу по идентификатору
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
bool TryRemove(string id); bool TryRemove(string id);
} }
} }

View File

@ -5,16 +5,57 @@ using System.Threading.Tasks;
namespace AsbCloudApp.Services namespace AsbCloudApp.Services
{ {
//TODO: remove unused methods
/// <summary>
/// Сервис информации о кустах
/// </summary>
public interface IClusterService public interface IClusterService
{ {
/// <summary>
/// список месторождений
/// </summary>
/// <param name="idCompany"></param>
/// <param name="token"></param>
/// <returns></returns>
Task<IEnumerable<DepositDto>> GetDepositsAsync(int idCompany, Task<IEnumerable<DepositDto>> GetDepositsAsync(int idCompany,
CancellationToken token); CancellationToken token);
/// <summary>
/// Список кустов с заполненными параметрами бурения
/// </summary>
/// <param name="idCompany"></param>
/// <param name="token"></param>
/// <returns></returns>
Task<IEnumerable<DepositDto>> GetDepositsDrillParamsAsync(int idCompany, Task<IEnumerable<DepositDto>> GetDepositsDrillParamsAsync(int idCompany,
CancellationToken token = default); CancellationToken token = default);
/// <summary>
/// Список кустов месторождения доступных компании
/// </summary>
/// <param name="idCompany"></param>
/// <param name="depositId"></param>
/// <param name="token"></param>
/// <returns></returns>
Task<IEnumerable<ClusterDto>> GetClustersAsync(int idCompany, Task<IEnumerable<ClusterDto>> GetClustersAsync(int idCompany,
int depositId, CancellationToken token); int depositId, CancellationToken token);
/// <summary>
/// Список кустов доступных компании
/// </summary>
/// <param name="idCompany"></param>
/// <param name="token"></param>
/// <returns></returns>
Task<IEnumerable<ClusterDto>> GetClustersAsync(int idCompany, Task<IEnumerable<ClusterDto>> GetClustersAsync(int idCompany,
CancellationToken token); CancellationToken token);
/// <summary>
/// Список скважин доступных компании
/// </summary>
/// <param name="idCompany"></param>
/// <param name="clusterId"></param>
/// <param name="token"></param>
/// <returns></returns>
Task<IEnumerable<WellDto>> GetWellsAsync(int idCompany, Task<IEnumerable<WellDto>> GetWellsAsync(int idCompany,
int clusterId, CancellationToken token); int clusterId, CancellationToken token);
} }

View File

@ -7,8 +7,12 @@ using System.Threading.Tasks;
namespace AsbCloudApp.Services namespace AsbCloudApp.Services
{ {
/// <summary>
/// Суточный рапорт (сводка)
/// </summary>
public interface IDailyReportService public interface IDailyReportService
{ {
Task<IEnumerable<DailyReportDto>> GetListAsync(int idWell, DateTime? v1, DateTime? v2, CancellationToken cancellationToken); Task<IEnumerable<DailyReportDto>> GetListAsync(int idWell, DateTime? v1, DateTime? v2, CancellationToken cancellationToken);
Task<DailyReportDto> GetOrGenerateAsync(int idWell, DateTime date, CancellationToken token); Task<DailyReportDto> GetOrGenerateAsync(int idWell, DateTime date, CancellationToken token);
Task<int> AddAsync(int idWell, DailyReportDto dto, CancellationToken token = default); Task<int> AddAsync(int idWell, DailyReportDto dto, CancellationToken token = default);

View File

@ -9,12 +9,50 @@ using System.Threading.Tasks;
namespace AsbCloudApp.Services namespace AsbCloudApp.Services
{ {
#nullable enable #nullable enable
/// <summary>
/// Сервис автоматически определенных по телеметрии операций
/// </summary>
public interface IDetectedOperationService public interface IDetectedOperationService
{ {
/// <summary>
/// Список названий операций.
/// Если указан idWell, то возвращается список названий операций найденных на указанной скважине.
/// </summary>
/// <param name="idWell"></param>
/// <param name="token"></param>
/// <returns></returns>
Task<IEnumerable<WellOperationCategoryDto>?> GetCategoriesAsync(int? idWell, CancellationToken token); Task<IEnumerable<WellOperationCategoryDto>?> GetCategoriesAsync(int? idWell, CancellationToken token);
/// <summary>
/// Получить автоматически определенные по телеметрии операции с анализом по бурильщикам
/// </summary>
/// <param name="request"></param>
/// <param name="token"></param>
/// <returns></returns>
Task<DetectedOperationListDto?> GetAsync(DetectedOperationRequest request, CancellationToken token); Task<DetectedOperationListDto?> GetAsync(DetectedOperationRequest request, CancellationToken token);
/// <summary>
/// Удалить операции
/// </summary>
/// <param name="request"></param>
/// <param name="token"></param>
/// <returns></returns>
Task<int> DeleteAsync(DetectedOperationRequest request, CancellationToken token); Task<int> DeleteAsync(DetectedOperationRequest request, CancellationToken token);
/// <summary>
/// Статистика по операциям
/// </summary>
/// <param name="request"></param>
/// <param name="token"></param>
/// <returns></returns>
Task<IEnumerable<DetectedOperationStatDto>?> GetOperationsStatAsync(DetectedOperationRequest request, CancellationToken token); Task<IEnumerable<DetectedOperationStatDto>?> GetOperationsStatAsync(DetectedOperationRequest request, CancellationToken token);
/// <summary>
/// Выгрузка в Excel
/// </summary>
/// <param name="idsWells"></param>
/// <param name="token"></param>
/// <returns></returns>
Task<Stream> ExportAsync(IEnumerable<int> idsWells, CancellationToken token); Task<Stream> ExportAsync(IEnumerable<int> idsWells, CancellationToken token);
} }
#nullable disable #nullable disable

View File

@ -131,7 +131,7 @@ namespace AsbCloudWebApi.Tests.ServicesTests
request = new DetectedOperationRequest request = new DetectedOperationRequest
{ {
IdWell = 1, IdWell = 1,
IdCategory = 1 IdsCategories = new int[] { 1 },
}; };
AsbCloudInfrastructure.DependencyInjection.MapsterSetup(); AsbCloudInfrastructure.DependencyInjection.MapsterSetup();
} }