Промежуточный пуш
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>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Microsoft.AspNetCore.Mvc.Core" Version="2.2.5" />
|
||||||
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="8.0.10" />
|
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="8.0.10" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user