Промежуточный пуш
This commit is contained in:
parent
65e2cb0977
commit
f008228754
79
Persistence/API/IApiChangeLog.cs
Normal file
79
Persistence/API/IApiChangeLog.cs
Normal file
@ -0,0 +1,79 @@
|
||||
using Persistence.Models;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Persistence.API;
|
||||
|
||||
/// <summary>
|
||||
/// Интерфейс для работы с API, предназначенного для CRUD-операций над данными
|
||||
/// </summary>
|
||||
public interface IApiChangeLog<TDto, TChangeLogDto>
|
||||
where TDto : class, new()
|
||||
where TChangeLogDto : ChangeLogDto<TDto>
|
||||
{
|
||||
/// <summary>
|
||||
/// Получение исторических данных на текущую дату
|
||||
/// </summary>
|
||||
/// <param name="token"></param>
|
||||
/// <returns></returns>
|
||||
Task<IEnumerable<TDto>> GetChangeLogCurrent(CancellationToken token);
|
||||
|
||||
/// <summary>
|
||||
/// Получение исторических данных на определенную дату
|
||||
/// </summary>
|
||||
/// <param name="historyMoment"></param>
|
||||
/// <param name="token"></param>
|
||||
/// <returns></returns>
|
||||
Task<IEnumerable<TChangeLogDto>> GetChangeLogForDate(DateTimeOffset historyMoment, CancellationToken token);
|
||||
|
||||
/// <summary>
|
||||
/// Добавить одну запись
|
||||
/// </summary>
|
||||
/// <param name="dto"></param>
|
||||
/// <param name="token"></param>
|
||||
/// <returns></returns>
|
||||
Task<int> AddAsync(TDto dto, CancellationToken token);
|
||||
|
||||
/// <summary>
|
||||
/// Добавить несколько записей
|
||||
/// </summary>
|
||||
/// <param name="dtos"></param>
|
||||
/// <param name="token"></param>
|
||||
/// <returns></returns>
|
||||
Task<int> AddRangeAsync(IEnumerable<TDto> dtos, CancellationToken token);
|
||||
|
||||
/// <summary>
|
||||
/// Обновить одну запись
|
||||
/// </summary>
|
||||
/// <param name="dto"></param>
|
||||
/// <param name="token"></param>
|
||||
/// <returns></returns>
|
||||
Task<int> UpdateAsync(TDto dto, CancellationToken token);
|
||||
|
||||
/// <summary>
|
||||
/// Обновить несколько записей
|
||||
/// </summary>
|
||||
/// <param name="dtos"></param>
|
||||
/// <param name="token"></param>
|
||||
/// <returns></returns>
|
||||
Task<int> UpdateRangeAsync(IEnumerable<TDto> dtos, CancellationToken token);
|
||||
|
||||
/// <summary>
|
||||
/// Удалить одну запись
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <param name="token"></param>
|
||||
/// <returns></returns>
|
||||
Task<int> DeleteAsync(int id, CancellationToken token);
|
||||
|
||||
/// <summary>
|
||||
/// Удалить несколько записей
|
||||
/// </summary>
|
||||
/// <param name="ids"></param>
|
||||
/// <param name="token"></param>
|
||||
/// <returns></returns>
|
||||
Task<int> DeleteRangeAsync(IEnumerable<int> ids, CancellationToken token);
|
||||
}
|
49
Persistence/API/IApiDictionaryElement.cs
Normal file
49
Persistence/API/IApiDictionaryElement.cs
Normal file
@ -0,0 +1,49 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Persistence.API;
|
||||
|
||||
/// <summary>
|
||||
/// Интерфейс для API, предназначенного для работы со справочниками
|
||||
/// </summary>
|
||||
public interface IApiDictionaryElement<TDto> where TDto : class, new()
|
||||
{
|
||||
/// <summary>
|
||||
/// Получить все данные справочника
|
||||
/// </summary>
|
||||
/// <param name="dictionaryKey">ключ справочника</param>
|
||||
/// <param name="token"></param>
|
||||
/// <returns></returns>
|
||||
Task<IEnumerable<TDto>> GetDataAsync(Guid dictionaryKey, CancellationToken token);
|
||||
|
||||
/// <summary>
|
||||
/// Добавить элемент в справочник
|
||||
/// </summary>
|
||||
/// <param name="dictionaryKey">ключ справочника</param>
|
||||
/// <param name="dto"></param>
|
||||
/// <param name="token"></param>
|
||||
/// <returns></returns>
|
||||
Task<Guid> AddAsync(Guid dictionaryKey, TDto dto, CancellationToken token);
|
||||
|
||||
/// <summary>
|
||||
/// Изменить одну запись
|
||||
/// </summary>
|
||||
/// <param name="dictionaryKey">ключ справочника</param>
|
||||
/// <param name="dictionaryElementKey">ключ элемента в справочнике</param>
|
||||
/// <param name="dto"></param>
|
||||
/// <param name="token"></param>
|
||||
/// <returns></returns>
|
||||
Task<Guid> UpdateAsync(Guid dictionaryKey, Guid dictionaryElementKey, TDto dto, CancellationToken token);
|
||||
|
||||
/// <summary>
|
||||
/// Удалить одну запись
|
||||
/// </summary>
|
||||
/// <param name="dictionaryKey">ключ справочника</param>
|
||||
/// <param name="dictionaryElementKey">ключ элемента в справочнике</param>
|
||||
/// <param name="token"></param>
|
||||
/// <returns></returns>
|
||||
Task<int> DeleteAsync(Guid dictionaryKey, Guid dictionaryElementKey, CancellationToken token);
|
||||
}
|
47
Persistence/API/IApiSetpoint.cs
Normal file
47
Persistence/API/IApiSetpoint.cs
Normal file
@ -0,0 +1,47 @@
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Persistence.Models;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Persistence.API;
|
||||
|
||||
/// <summary>
|
||||
/// Интерфейс для работы с API, предназначенного для работы с уставками
|
||||
/// </summary>
|
||||
public interface IApiSetpoint
|
||||
{
|
||||
/// <summary>
|
||||
/// Получить актуальные значения уставок
|
||||
/// </summary>
|
||||
/// <param name="setpoitKeys"></param>
|
||||
/// <param name="token"></param>
|
||||
/// <returns></returns>
|
||||
Task<ActionResult<IEnumerable<SetpointValueDto>>> GetCurrentAsync(IEnumerable<Guid> setpoitKeys, CancellationToken token);
|
||||
|
||||
/// <summary>
|
||||
/// Получить значения уставок за определенный момент времени
|
||||
/// </summary>
|
||||
/// <param name="setpoitKeys"></param>
|
||||
/// <param name="historyMoment">дата, на которую получаем данные</param>
|
||||
/// <param name="token"></param>
|
||||
/// <returns></returns>
|
||||
Task<IEnumerable<SetpointValueDto>> GetHistoryAsync(IEnumerable<Guid> setpoitKeys, DateTimeOffset historyMoment, CancellationToken token);
|
||||
|
||||
/// <summary>
|
||||
/// Получить историю изменений значений уставок
|
||||
/// </summary>
|
||||
/// <param name="setpoitKeys"></param>
|
||||
/// <param name="token"></param>
|
||||
/// <returns></returns>
|
||||
Task<Dictionary<Guid, IEnumerable<SetpointLogDto>>> GetLogAsync(IEnumerable<Guid> setpoitKeys, CancellationToken token);
|
||||
|
||||
/// <summary>
|
||||
/// Метод сохранения уставки
|
||||
/// </summary>
|
||||
/// <param name="setpointKey">ключ операции</param>
|
||||
/// <param name="newValue">значение</param>
|
||||
/// <param name="token"></param>
|
||||
/// <returns></returns>
|
||||
/// to do
|
||||
/// id User учесть в соответствующем методе репозитория
|
||||
Task<int> SaveAsync(Guid setpointKey, object newValue, CancellationToken token);
|
||||
}
|
30
Persistence/API/IApiSync.cs
Normal file
30
Persistence/API/IApiSync.cs
Normal file
@ -0,0 +1,30 @@
|
||||
using Persistence.Models;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Persistence.API;
|
||||
|
||||
/// <summary>
|
||||
/// Интерфейс для работы с API, предназначенного для синхронизации данных
|
||||
/// </summary>
|
||||
public interface IApiSync<TDto> where TDto : class, new()
|
||||
{
|
||||
/// <summary>
|
||||
/// Получить порцию записей, начиная с заданной даты
|
||||
/// </summary>
|
||||
/// <param name="dateBegin"></param>
|
||||
/// <param name="take">количество записей</param>
|
||||
/// <param name="token"></param>
|
||||
/// <returns></returns>
|
||||
Task<IEnumerable<TDto>> GetPartAsync(DateTimeOffset dateBegin, int take = 24 * 60 * 60, CancellationToken token = default);
|
||||
|
||||
/// <summary>
|
||||
/// Получить диапазон дат, для которых есть данные в репозитории
|
||||
/// </summary>
|
||||
/// <param name="token"></param>
|
||||
/// <returns></returns>
|
||||
Task<DatesRangeDto> GetDatesRangeAsync(CancellationToken token);
|
||||
}
|
25
Persistence/API/IApiTableData.cs
Normal file
25
Persistence/API/IApiTableData.cs
Normal file
@ -0,0 +1,25 @@
|
||||
using Persistence.Models;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Persistence.API;
|
||||
|
||||
/// Интерфейс для работы с API, предназначенного для работы с табличными данными
|
||||
public interface IApiTableData<TDto, TRequest>
|
||||
where TDto : class, new()
|
||||
where TRequest : RequestDto
|
||||
{
|
||||
/// <summary>
|
||||
/// Получить страницу списка объектов
|
||||
/// </summary>
|
||||
/// <param name="skip"></param>
|
||||
/// <param name="take"></param>
|
||||
/// <param name="sortSettings">строка с настройками сортировки</param>
|
||||
/// <param name="request">параметры фильтрации</param>
|
||||
/// <param name="token"></param>
|
||||
/// <returns></returns>
|
||||
Task<PaginationContainer<TDto>> GetPageAsync(TRequest request, CancellationToken token);
|
||||
}
|
25
Persistence/API/IGraphData.cs
Normal file
25
Persistence/API/IGraphData.cs
Normal file
@ -0,0 +1,25 @@
|
||||
using Persistence.Models;
|
||||
|
||||
namespace Persistence.API;
|
||||
|
||||
/// <summary>
|
||||
/// Интерфейс для работы с API графиков
|
||||
/// </summary>
|
||||
public interface IGraphData<TDto>
|
||||
{
|
||||
/// <summary>
|
||||
/// Получить список объектов с прореживанием
|
||||
/// </summary>
|
||||
/// <param name="dateBegin">дата начала</param>
|
||||
/// <param name="dateEnd">дата окончания</param>
|
||||
/// <param name="approxPointsCount"></param>
|
||||
/// <returns></returns>
|
||||
Task<IEnumerable<TDto>> GetThinnedDataAsync(DateTimeOffset dateBegin, DateTimeOffset dateEnd, int approxPointsCount = 1024);
|
||||
|
||||
/// <summary>
|
||||
/// Получить диапазон дат, для которых есть данные в репозитории
|
||||
/// </summary>
|
||||
/// <param name="token"></param>
|
||||
/// <returns></returns>
|
||||
Task<DatesRangeDto> GetDatesRangeAsync(CancellationToken token);
|
||||
}
|
13
Persistence/Models/DatesRangeDto.cs
Normal file
13
Persistence/Models/DatesRangeDto.cs
Normal file
@ -0,0 +1,13 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Persistence.Models;
|
||||
public class DatesRangeDto
|
||||
{
|
||||
public DateTimeOffset dateBegin { get; set; }
|
||||
|
||||
public DateTimeOffset dateEnd { get; set; }
|
||||
}
|
36
Persistence/Models/PaginationContainer.cs
Normal file
36
Persistence/Models/PaginationContainer.cs
Normal file
@ -0,0 +1,36 @@
|
||||
namespace Persistence.Models;
|
||||
|
||||
/// <summary>
|
||||
/// Контейнер для поддержки постраничного просмотра таблиц
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
public class PaginationContainer<T>
|
||||
{
|
||||
/// <summary>
|
||||
/// конструктор
|
||||
/// </summary>
|
||||
public PaginationContainer()
|
||||
{
|
||||
Items = Enumerable.Empty<T>();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Кол-во записей пропущенных с начала таблицы в запросе от api
|
||||
/// </summary>
|
||||
public int Skip { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Кол-во записей в запросе от api
|
||||
/// </summary>
|
||||
public int Take { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Кол-во записей всего в таблице
|
||||
/// </summary>
|
||||
public int Count { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Данные
|
||||
/// </summary>
|
||||
public IEnumerable<T> Items { get; set; }
|
||||
}
|
10
Persistence/Models/RequestDto.cs
Normal file
10
Persistence/Models/RequestDto.cs
Normal file
@ -0,0 +1,10 @@
|
||||
namespace Persistence.Models;
|
||||
|
||||
public class RequestDto
|
||||
{
|
||||
public int Skip { get; set; }
|
||||
|
||||
public int Take { get; set; }
|
||||
|
||||
public string SortSettings { get; set; } = string.Empty;
|
||||
}
|
15
Persistence/Models/SetpointDescriptionDto.cs
Normal file
15
Persistence/Models/SetpointDescriptionDto.cs
Normal file
@ -0,0 +1,15 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Persistence.Models;
|
||||
public class SetpointDescriptionDto
|
||||
{
|
||||
public int Id { get; set; }
|
||||
public string Name { get; set; }
|
||||
public string Description { get; set; }
|
||||
public string Type { get; set; }
|
||||
}
|
||||
|
12
Persistence/Models/SetpointLogDto.cs
Normal file
12
Persistence/Models/SetpointLogDto.cs
Normal file
@ -0,0 +1,12 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Persistence.Models;
|
||||
public class SetpointLogDto : SetpointValueDto
|
||||
{
|
||||
public DateTimeOffset Edit { get; set; }
|
||||
public int IdUser { get; set; }
|
||||
}
|
14
Persistence/Models/SetpointValueDto.cs
Normal file
14
Persistence/Models/SetpointValueDto.cs
Normal file
@ -0,0 +1,14 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Persistence.Models;
|
||||
|
||||
public class SetpointValueDto
|
||||
{
|
||||
public int Id { get; set; }
|
||||
public object Value { get; set; }
|
||||
}
|
||||
|
@ -7,6 +7,7 @@
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.AspNetCore.Mvc.Core" Version="2.2.5" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="8.0.10" />
|
||||
</ItemGroup>
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user