feat: Перенесены внешние сервисы в Infrastructure. Удалены лишние проекты.
This commit is contained in:
14
PARR.Core/Common/Interfaces/IInfluxDbService.cs
Normal file
14
PARR.Core/Common/Interfaces/IInfluxDbService.cs
Normal file
@@ -0,0 +1,14 @@
|
||||
using InfluxDB.Client;
|
||||
|
||||
namespace PARR.Core.Common.Interfaces
|
||||
{
|
||||
/// <summary>
|
||||
/// Сервис взаимодействия с InfluxDb
|
||||
/// </summary>
|
||||
public interface IInfluxDbService
|
||||
{
|
||||
Task<T> QueryAsync<T>(Func<QueryApi, Task<T>> action, string token);
|
||||
|
||||
bool Write(Action<WriteApi> action, string token);
|
||||
}
|
||||
}
|
||||
16
PARR.Core/Common/Interfaces/IIntervalService.cs
Normal file
16
PARR.Core/Common/Interfaces/IIntervalService.cs
Normal file
@@ -0,0 +1,16 @@
|
||||
namespace PARR.Core.Common.Interfaces
|
||||
{
|
||||
//public delegate Task IntervalHandlerDelegate();
|
||||
|
||||
public interface IIntervalService
|
||||
{
|
||||
/// <summary>
|
||||
/// Метод выполняется с интервалом
|
||||
/// </summary>
|
||||
/// <param name="handler">Метод который нужно выполнить</param>
|
||||
/// <param name="interval">Интервал</param>
|
||||
/// <returns></returns>
|
||||
Task IntervalInitAsync(Func<Task> handler, TimeSpan interval);
|
||||
//Task IntervalInitAsync(IntervalHandlerDelegate intervalHandler, TimeSpan interval);
|
||||
}
|
||||
}
|
||||
135
PARR.Core/Common/Interfaces/IRedisCacheService.cs
Normal file
135
PARR.Core/Common/Interfaces/IRedisCacheService.cs
Normal file
@@ -0,0 +1,135 @@
|
||||
namespace PARR.Core.Common.Interfaces
|
||||
{
|
||||
/// <summary>
|
||||
/// Сервис по управлению КЭШ
|
||||
/// </summary>
|
||||
public interface IRedisCacheService
|
||||
{
|
||||
/// <summary>
|
||||
/// Получить кэшированные данные
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
/// <param name="key"></param>
|
||||
/// <returns></returns>
|
||||
T? GetCachedData<T>(string key);
|
||||
|
||||
/// <summary>
|
||||
/// Получить кэшированные данные асинхронно
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
/// <param name="key"></param>
|
||||
/// <returns></returns>
|
||||
Task<T?> GetCachedDataAsync<T>(string key);
|
||||
|
||||
/// <summary>
|
||||
/// Добавить в кэш данные
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
/// <param name="key"></param>
|
||||
/// <param name="data"></param>
|
||||
/// <param name="cacheDuration"></param>
|
||||
void SetCachedData<T>(string key, T data, TimeSpan cacheDuration);
|
||||
|
||||
/// <summary>
|
||||
/// Добавить в кэш данные асинхронно
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
/// <param name="key"></param>
|
||||
/// <param name="data"></param>
|
||||
/// <param name="cacheDuration"></param>
|
||||
/// <returns></returns>
|
||||
Task SetCachedDataAsync<T>(string key, T data, TimeSpan cacheDuration);
|
||||
|
||||
/// <summary>
|
||||
/// Удалить кэшированные данные
|
||||
/// </summary>
|
||||
/// <param name="key"></param>
|
||||
void DeleteCachedData(string key);
|
||||
|
||||
/// <summary>
|
||||
/// Удалить кэшированные данные асинхронно
|
||||
/// </summary>
|
||||
/// <param name="key"></param>
|
||||
/// <returns></returns>
|
||||
Task DeleteCachedDataAsync(string key);
|
||||
|
||||
/// <summary>
|
||||
/// Сгенерировать уникальный ключ
|
||||
/// </summary>
|
||||
/// <param name="keyParts"></param>
|
||||
/// <param name="keyPartsToHash"></param>
|
||||
/// <returns></returns>
|
||||
string GetKey(string[] keyParts, string[]? keyPartsToHash = null);
|
||||
|
||||
|
||||
#region Работа с Hash
|
||||
|
||||
/// <summary>
|
||||
/// Изменить одно поле в Hash
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
/// <param name="hashKey"></param>
|
||||
/// <param name="field"></param>
|
||||
/// <param name="value"></param>
|
||||
/// <param name="ttl">Если указано, обновится у всего Hash. Если не указано и hash не существовал, создастся Hash с бесокнечным ttl</param>
|
||||
/// <returns></returns>
|
||||
Task SetHashFieldAsync<T>(string hashKey, string field, T value, TimeSpan? ttl = null);
|
||||
|
||||
/// <summary>
|
||||
/// Получить значение поля из Hash
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
/// <param name="hashKey"></param>
|
||||
/// <param name="field"></param>
|
||||
/// <returns></returns>
|
||||
Task<T?> GetHashFieldAsync<T>(string hashKey, string field);
|
||||
|
||||
/// <summary>
|
||||
/// Получить все значения из Hash
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
/// <param name="hashKey"></param>
|
||||
/// <returns></returns>
|
||||
Task<Dictionary<string, T>> GetAllHashFieldsAsync<T>(string hashKey);
|
||||
|
||||
/// <summary>
|
||||
/// Удалить одну запись из Hash
|
||||
/// </summary>
|
||||
/// <param name="hashKey"></param>
|
||||
/// <param name="field"></param>
|
||||
/// <returns></returns>
|
||||
Task DeleteHashFieldAsync(string hashKey, string field);
|
||||
|
||||
/// <summary>
|
||||
/// Есть ли запись в Hash
|
||||
/// </summary>
|
||||
/// <param name="hashKey"></param>
|
||||
/// <param name="field"></param>
|
||||
/// <returns></returns>
|
||||
Task<bool> HashFieldExistsAsync(string hashKey, string field);
|
||||
|
||||
/// <summary>
|
||||
/// Удалить весь Hash
|
||||
/// </summary>
|
||||
/// <param name="hashKey"></param>
|
||||
/// <returns></returns>
|
||||
Task DeleteHashAsync(string hashKey);
|
||||
|
||||
/// <summary>
|
||||
/// Получить количество записей в Hash
|
||||
/// </summary>
|
||||
/// <param name="hashKey"></param>
|
||||
/// <returns></returns>
|
||||
Task<long> GetHashLengthAsync(string hashKey);
|
||||
|
||||
/// <summary>
|
||||
/// Установить TTL для Hash
|
||||
/// </summary>
|
||||
/// <param name="hashKey"></param>
|
||||
/// <param name="ttl"></param>
|
||||
/// <returns></returns>
|
||||
Task SetHashTtlAsync(string hashKey, TimeSpan ttl);
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
7
PARR.Core/Common/Interfaces/ITransformService.cs
Normal file
7
PARR.Core/Common/Interfaces/ITransformService.cs
Normal file
@@ -0,0 +1,7 @@
|
||||
namespace PARR.Core.Common.Interfaces
|
||||
{
|
||||
public interface ITransformService
|
||||
{
|
||||
T? GetModelFromJson<T>(string str);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
using PARR.Domain.DTOs.RabbitApi;
|
||||
using PARR.Domain.Settings;
|
||||
|
||||
namespace PARR.Core.Common.Interfaces.RabbitServices
|
||||
{
|
||||
public interface IRabbitAdminService
|
||||
{
|
||||
/// <summary>
|
||||
/// Получить статистику соединений из RabbitMQ
|
||||
/// </summary>
|
||||
/// <param name="mqSettings"></param>
|
||||
/// <returns></returns>
|
||||
Task<RabbitApiResult> GetConnectionsAsync(IMqSettings mqSettings);
|
||||
|
||||
/// <summary>
|
||||
/// Получить статистику по очередям из RabbitMQ
|
||||
/// </summary>
|
||||
/// <param name="mqSettings"></param>
|
||||
/// <returns></returns>
|
||||
Task<RabbitApiResult> GetQueuesAsync(IMqSettings mqSettings);
|
||||
}
|
||||
}
|
||||
29
PARR.Core/Common/Interfaces/RabbitServices/IRabbitService.cs
Normal file
29
PARR.Core/Common/Interfaces/RabbitServices/IRabbitService.cs
Normal file
@@ -0,0 +1,29 @@
|
||||
using PARR.Domain.Common.Rabbit;
|
||||
using PARR.Domain.Settings;
|
||||
|
||||
namespace PARR.Core.Common.Interfaces.RabbitServices
|
||||
{
|
||||
public delegate Task MqMessageHandlerDelegate(string msg);
|
||||
|
||||
public interface IRabbitService : IAsyncDisposable
|
||||
{
|
||||
Task<bool> InitConsumerAsync(IMqSettings mqSettings, MqMessageHandlerDelegate messageHandler);
|
||||
|
||||
/// <summary>
|
||||
/// Отправить сообщение в очередь используя список строк
|
||||
/// !!! Избавиться от этого метода, вместо него использовать со списком объектов !!!
|
||||
/// </summary>
|
||||
/// <param name="mqSettings"></param>
|
||||
/// <param name="msgList"></param>
|
||||
/// <returns></returns>
|
||||
Task<RabbitSendResult> SendAsync(IMqSettings mqSettings, string[] msgList);
|
||||
|
||||
/// <summary>
|
||||
/// Отправить сообщение в очередь используя список объектов
|
||||
/// </summary>
|
||||
/// <param name="mqSettings"></param>
|
||||
/// <param name="msgObjectList"></param>
|
||||
/// <returns></returns>
|
||||
Task<RabbitSendResult> SendAsync(IMqSettings mqSettings, List<object> msgObjectList);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user