Приведение в соответствие методы интерфйсов API и методы интерфейсов репозитория

This commit is contained in:
Оля Бизюкова 2024-11-12 13:36:09 +05:00
parent f008228754
commit 3c94d55caf
16 changed files with 224 additions and 148 deletions

View File

@ -1,14 +1,10 @@
using Persistence.Models; using Microsoft.AspNetCore.Mvc;
using System; using Persistence.Models;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Persistence.API; namespace Persistence.API;
/// <summary> /// <summary>
/// Интерфейс для работы с API, предназначенного для CRUD-операций над данными /// Интерфейс для работы с API журнала изменений
/// </summary> /// </summary>
public interface IApiChangeLog<TDto, TChangeLogDto> public interface IApiChangeLog<TDto, TChangeLogDto>
where TDto : class, new() where TDto : class, new()
@ -19,7 +15,7 @@ public interface IApiChangeLog<TDto, TChangeLogDto>
/// </summary> /// </summary>
/// <param name="token"></param> /// <param name="token"></param>
/// <returns></returns> /// <returns></returns>
Task<IEnumerable<TDto>> GetChangeLogCurrent(CancellationToken token); Task<ActionResult<IEnumerable<TDto>>> GetChangeLogCurrent(CancellationToken token);
/// <summary> /// <summary>
/// Получение исторических данных на определенную дату /// Получение исторических данных на определенную дату
@ -27,15 +23,15 @@ public interface IApiChangeLog<TDto, TChangeLogDto>
/// <param name="historyMoment"></param> /// <param name="historyMoment"></param>
/// <param name="token"></param> /// <param name="token"></param>
/// <returns></returns> /// <returns></returns>
Task<IEnumerable<TChangeLogDto>> GetChangeLogForDate(DateTimeOffset historyMoment, CancellationToken token); Task<ActionResult<IEnumerable<TChangeLogDto>>> GetChangeLogForDate(DateTimeOffset historyMoment, CancellationToken token);
/// <summary> /// <summary>
/// Добавить одну запись /// Добавить одну запись
/// </summary> /// </summary>
/// <param name="dto"></param> /// <param name="dto"></param>
/// <param name="token"></param> /// <param name="token"></param>
/// <returns></returns> /// <returns></returns>
Task<int> AddAsync(TDto dto, CancellationToken token); Task<ActionResult<int>> AddAsync(TDto dto, CancellationToken token);
/// <summary> /// <summary>
/// Добавить несколько записей /// Добавить несколько записей
@ -43,7 +39,7 @@ public interface IApiChangeLog<TDto, TChangeLogDto>
/// <param name="dtos"></param> /// <param name="dtos"></param>
/// <param name="token"></param> /// <param name="token"></param>
/// <returns></returns> /// <returns></returns>
Task<int> AddRangeAsync(IEnumerable<TDto> dtos, CancellationToken token); Task<ActionResult<int>> AddRangeAsync(IEnumerable<TDto> dtos, CancellationToken token);
/// <summary> /// <summary>
/// Обновить одну запись /// Обновить одну запись
@ -51,7 +47,7 @@ public interface IApiChangeLog<TDto, TChangeLogDto>
/// <param name="dto"></param> /// <param name="dto"></param>
/// <param name="token"></param> /// <param name="token"></param>
/// <returns></returns> /// <returns></returns>
Task<int> UpdateAsync(TDto dto, CancellationToken token); Task<ActionResult<int>> UpdateAsync(TDto dto, CancellationToken token);
/// <summary> /// <summary>
/// Обновить несколько записей /// Обновить несколько записей
@ -59,7 +55,7 @@ public interface IApiChangeLog<TDto, TChangeLogDto>
/// <param name="dtos"></param> /// <param name="dtos"></param>
/// <param name="token"></param> /// <param name="token"></param>
/// <returns></returns> /// <returns></returns>
Task<int> UpdateRangeAsync(IEnumerable<TDto> dtos, CancellationToken token); Task<ActionResult<int>> UpdateRangeAsync(IEnumerable<TDto> dtos, CancellationToken token);
/// <summary> /// <summary>
/// Удалить одну запись /// Удалить одну запись
@ -67,7 +63,7 @@ public interface IApiChangeLog<TDto, TChangeLogDto>
/// <param name="id"></param> /// <param name="id"></param>
/// <param name="token"></param> /// <param name="token"></param>
/// <returns></returns> /// <returns></returns>
Task<int> DeleteAsync(int id, CancellationToken token); Task<ActionResult<int>> DeleteAsync(int id, CancellationToken token);
/// <summary> /// <summary>
/// Удалить несколько записей /// Удалить несколько записей
@ -75,5 +71,5 @@ public interface IApiChangeLog<TDto, TChangeLogDto>
/// <param name="ids"></param> /// <param name="ids"></param>
/// <param name="token"></param> /// <param name="token"></param>
/// <returns></returns> /// <returns></returns>
Task<int> DeleteRangeAsync(IEnumerable<int> ids, CancellationToken token); Task<ActionResult<int>> DeleteRangeAsync(IEnumerable<int> ids, CancellationToken token);
} }

View File

@ -1,13 +1,9 @@
using System; using Microsoft.AspNetCore.Mvc;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Persistence.API; namespace Persistence.API;
/// <summary> /// <summary>
/// Интерфейс для API, предназначенного для работы со справочниками /// Интерфейс для API, предназначенного для работы с элементами справочников
/// </summary> /// </summary>
public interface IApiDictionaryElement<TDto> where TDto : class, new() public interface IApiDictionaryElement<TDto> where TDto : class, new()
{ {
@ -17,7 +13,7 @@ public interface IApiDictionaryElement<TDto> where TDto : class, new()
/// <param name="dictionaryKey">ключ справочника</param> /// <param name="dictionaryKey">ключ справочника</param>
/// <param name="token"></param> /// <param name="token"></param>
/// <returns></returns> /// <returns></returns>
Task<IEnumerable<TDto>> GetDataAsync(Guid dictionaryKey, CancellationToken token); Task<ActionResult<IEnumerable<TDto>>> GetAsync(Guid dictionaryKey, CancellationToken token);
/// <summary> /// <summary>
/// Добавить элемент в справочник /// Добавить элемент в справочник
@ -26,7 +22,7 @@ public interface IApiDictionaryElement<TDto> where TDto : class, new()
/// <param name="dto"></param> /// <param name="dto"></param>
/// <param name="token"></param> /// <param name="token"></param>
/// <returns></returns> /// <returns></returns>
Task<Guid> AddAsync(Guid dictionaryKey, TDto dto, CancellationToken token); Task<ActionResult<Guid>> AddAsync(Guid dictionaryKey, TDto dto, CancellationToken token);
/// <summary> /// <summary>
/// Изменить одну запись /// Изменить одну запись
@ -36,7 +32,7 @@ public interface IApiDictionaryElement<TDto> where TDto : class, new()
/// <param name="dto"></param> /// <param name="dto"></param>
/// <param name="token"></param> /// <param name="token"></param>
/// <returns></returns> /// <returns></returns>
Task<Guid> UpdateAsync(Guid dictionaryKey, Guid dictionaryElementKey, TDto dto, CancellationToken token); Task<ActionResult<Guid>> UpdateAsync(Guid dictionaryKey, Guid dictionaryElementKey, TDto dto, CancellationToken token);
/// <summary> /// <summary>
/// Удалить одну запись /// Удалить одну запись
@ -45,5 +41,5 @@ public interface IApiDictionaryElement<TDto> where TDto : class, new()
/// <param name="dictionaryElementKey">ключ элемента в справочнике</param> /// <param name="dictionaryElementKey">ключ элемента в справочнике</param>
/// <param name="token"></param> /// <param name="token"></param>
/// <returns></returns> /// <returns></returns>
Task<int> DeleteAsync(Guid dictionaryKey, Guid dictionaryElementKey, CancellationToken token); Task<ActionResult<int>> DeleteAsync(Guid dictionaryKey, Guid dictionaryElementKey, CancellationToken token);
} }

View File

@ -1,18 +1,17 @@
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Persistence.Models; using Persistence.Models;
using System.Threading.Tasks;
namespace Persistence.API; namespace Persistence.API;
/// <summary> /// <summary>
/// Интерфейс для работы с API, предназначенного для работы с уставками /// Интерфейс для API, предназначенного для работы с уставками
/// </summary> /// </summary>
public interface IApiSetpoint public interface IApiSetpoint
{ {
/// <summary> /// <summary>
/// Получить актуальные значения уставок /// Получить актуальные значения уставок
/// </summary> /// </summary>
/// <param name="setpoitKeys"></param> /// <param name="setpoitKeys">ключи уставок</param>
/// <param name="token"></param> /// <param name="token"></param>
/// <returns></returns> /// <returns></returns>
Task<ActionResult<IEnumerable<SetpointValueDto>>> GetCurrentAsync(IEnumerable<Guid> setpoitKeys, CancellationToken token); Task<ActionResult<IEnumerable<SetpointValueDto>>> GetCurrentAsync(IEnumerable<Guid> setpoitKeys, CancellationToken token);
@ -20,28 +19,26 @@ public interface IApiSetpoint
/// <summary> /// <summary>
/// Получить значения уставок за определенный момент времени /// Получить значения уставок за определенный момент времени
/// </summary> /// </summary>
/// <param name="setpoitKeys"></param> /// <param name="setpoitKeys">ключи уставок</param>
/// <param name="historyMoment">дата, на которую получаем данные</param> /// <param name="historyMoment">дата, на которую получаем данные</param>
/// <param name="token"></param> /// <param name="token"></param>
/// <returns></returns> /// <returns></returns>
Task<IEnumerable<SetpointValueDto>> GetHistoryAsync(IEnumerable<Guid> setpoitKeys, DateTimeOffset historyMoment, CancellationToken token); Task<ActionResult<IEnumerable<SetpointValueDto>>> GetHistoryAsync(IEnumerable<Guid> setpoitKeys, DateTimeOffset historyMoment, CancellationToken token);
/// <summary> /// <summary>
/// Получить историю изменений значений уставок /// Получить историю изменений значений уставок
/// </summary> /// </summary>
/// <param name="setpoitKeys"></param> /// <param name="setpoitKeys">ключи уставок</param>
/// <param name="token"></param> /// <param name="token"></param>
/// <returns></returns> /// <returns></returns>
Task<Dictionary<Guid, IEnumerable<SetpointLogDto>>> GetLogAsync(IEnumerable<Guid> setpoitKeys, CancellationToken token); Task<ActionResult<Dictionary<Guid, IEnumerable<SetpointLogDto>>>> GetLogAsync(IEnumerable<Guid> setpoitKeys, CancellationToken token);
/// <summary> /// <summary>
/// Метод сохранения уставки /// Метод сохранения уставки
/// </summary> /// </summary>
/// <param name="setpointKey">ключ операции</param> /// <param name="setpointKey">ключ уставки</param>
/// <param name="newValue">значение</param> /// <param name="newValue">значение</param>
/// <param name="token"></param> /// <param name="token"></param>
/// <returns></returns> /// <returns></returns>
/// to do Task<ActionResult<int>> SaveAsync(Guid setpointKey, object newValue, CancellationToken token);
/// id User учесть в соответствующем методе репозитория
Task<int> SaveAsync(Guid setpointKey, object newValue, CancellationToken token);
} }

View File

@ -1,14 +1,10 @@
using Persistence.Models; using Microsoft.AspNetCore.Mvc;
using System; using Persistence.Models;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Persistence.API; namespace Persistence.API;
/// <summary> /// <summary>
/// Интерфейс для работы с API, предназначенного для синхронизации данных /// Интерфейс для API, предназначенного для синхронизации данных
/// </summary> /// </summary>
public interface IApiSync<TDto> where TDto : class, new() public interface IApiSync<TDto> where TDto : class, new()
{ {
@ -19,12 +15,12 @@ public interface IApiSync<TDto> where TDto : class, new()
/// <param name="take">количество записей</param> /// <param name="take">количество записей</param>
/// <param name="token"></param> /// <param name="token"></param>
/// <returns></returns> /// <returns></returns>
Task<IEnumerable<TDto>> GetPartAsync(DateTimeOffset dateBegin, int take = 24 * 60 * 60, CancellationToken token = default); Task<ActionResult<IEnumerable<TDto>>> GetPartAsync(DateTimeOffset dateBegin, int take = 24 * 60 * 60, CancellationToken token = default);
/// <summary> /// <summary>
/// Получить диапазон дат, для которых есть данные в репозитории /// Получить диапазон дат, для которых есть данные в репозитории
/// </summary> /// </summary>
/// <param name="token"></param> /// <param name="token"></param>
/// <returns></returns> /// <returns></returns>
Task<DatesRangeDto> GetDatesRangeAsync(CancellationToken token); Task<ActionResult<DatesRangeDto>> GetDatesRangeAsync(CancellationToken token);
} }

View File

@ -1,4 +1,5 @@
using Persistence.Models; using Microsoft.AspNetCore.Mvc;
using Persistence.Models;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
@ -7,7 +8,7 @@ using System.Threading.Tasks;
namespace Persistence.API; namespace Persistence.API;
/// Интерфейс для работы с API, предназначенного для работы с табличными данными /// Интерфейс для API, предназначенного для работы с табличными данными
public interface IApiTableData<TDto, TRequest> public interface IApiTableData<TDto, TRequest>
where TDto : class, new() where TDto : class, new()
where TRequest : RequestDto where TRequest : RequestDto
@ -15,11 +16,8 @@ public interface IApiTableData<TDto, TRequest>
/// <summary> /// <summary>
/// Получить страницу списка объектов /// Получить страницу списка объектов
/// </summary> /// </summary>
/// <param name="skip"></param>
/// <param name="take"></param>
/// <param name="sortSettings">строка с настройками сортировки</param>
/// <param name="request">параметры фильтрации</param> /// <param name="request">параметры фильтрации</param>
/// <param name="token"></param> /// <param name="token"></param>
/// <returns></returns> /// <returns></returns>
Task<PaginationContainer<TDto>> GetPageAsync(TRequest request, CancellationToken token); Task<ActionResult<PaginationContainer<TDto>>> GetPageAsync(TRequest request, CancellationToken token);
} }

View File

@ -0,0 +1,42 @@
using Microsoft.AspNetCore.Mvc;
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 IApiTimeSeriesData<TDto>
where TDto : class, new()
{
/// <summary>
/// Получить спискок объектов, удовлетворяющий диапазон дат
/// </summary>
/// <param name="dateBegin">дата начала</param>
/// <param name="dateEnd">дата окончания</param>
/// <param name="token"></param>
/// <returns></returns>
Task<ActionResult<IEnumerable<TDto>>> GetAsync(DateTimeOffset dateBegin, DateTimeOffset dateEnd, CancellationToken token);
/// <summary>
/// Получить диапазон дат, для которых есть данные в репозитории
/// </summary>
/// <param name="token"></param>
/// <returns></returns>
Task<ActionResult<DatesRangeDto>> GetDatesRangeAsync(CancellationToken token);
/// <summary>
/// Добавление записей
/// </summary>
/// <param name="dtos"></param>
/// <param name="token"></param>
/// <returns></returns>
Task<ActionResult<int>> InsertRange(IEnumerable<TDto> dtos, CancellationToken token);
}

View File

@ -1,4 +1,5 @@
using Persistence.Models; using Microsoft.AspNetCore.Mvc;
using Persistence.Models;
namespace Persistence.API; namespace Persistence.API;
@ -8,18 +9,18 @@ namespace Persistence.API;
public interface IGraphData<TDto> public interface IGraphData<TDto>
{ {
/// <summary> /// <summary>
/// Получить список объектов с прореживанием /// Получить список объектов с прореживанием, удовлетворящий диапазону дат
/// </summary> /// </summary>
/// <param name="dateBegin">дата начала</param> /// <param name="dateBegin">дата начала</param>
/// <param name="dateEnd">дата окончания</param> /// <param name="dateEnd">дата окончания</param>
/// <param name="approxPointsCount"></param> /// <param name="approxPointsCount"></param>
/// <returns></returns> /// <returns></returns>
Task<IEnumerable<TDto>> GetThinnedDataAsync(DateTimeOffset dateBegin, DateTimeOffset dateEnd, int approxPointsCount = 1024); Task<ActionResult<IEnumerable<TDto>>> GetThinnedDataAsync(DateTimeOffset dateBegin, DateTimeOffset dateEnd, int approxPointsCount = 1024);
/// <summary> /// <summary>
/// Получить диапазон дат, для которых есть данные в репозитории /// Получить диапазон дат, для которых есть данные в репозитории
/// </summary> /// </summary>
/// <param name="token"></param> /// <param name="token"></param>
/// <returns></returns> /// <returns></returns>
Task<DatesRangeDto> GetDatesRangeAsync(CancellationToken token); Task<ActionResult<DatesRangeDto>> GetDatesRangeAsync(CancellationToken token);
} }

View File

@ -1,71 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<ClassDiagram MajorVersion="1" MinorVersion="1">
<Class Name="Persistence.Repositories.AbstractChangeLogRepository&lt;T, TRequest&gt;" Collapsed="true">
<Position X="7.75" Y="2.75" Width="1.5" />
<TypeIdentifier>
<HashCode>ACCAAAAAAAAABAAQAAAABAAAAAACAAAgAAAAAABAAAE=</HashCode>
<FileName>Repositories\AbstractChangeLogRepository.cs</FileName>
</TypeIdentifier>
<Lollipop Position="0.2" />
</Class>
<Class Name="Persistence.Repositories.AbstractTimeSeriesDataRepository&lt;T&gt;" Collapsed="true">
<Position X="10.75" Y="2.75" Width="1.5" />
<TypeIdentifier>
<HashCode>AAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
<FileName>Repositories\AbstractTimeSeriesDataRepository.cs</FileName>
</TypeIdentifier>
<Lollipop Position="0.2" />
</Class>
<Class Name="Persistence.Services.ArchiveService" Collapsed="true" BaseTypeListCollapsed="true">
<Position X="7.75" Y="4.75" Width="1.5" />
<TypeIdentifier>
<HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
<FileName>Services\ArchiveService.cs</FileName>
</TypeIdentifier>
<Lollipop Position="0.2" Collapsed="true" />
</Class>
<Class Name="Persistence.Services.TimeSeriesDataObserverService" Collapsed="true" BaseTypeListCollapsed="true">
<Position X="11" Y="4.75" Width="1.5" />
<TypeIdentifier>
<HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
<FileName>Services\TimeSeriesDataObserverService.cs</FileName>
</TypeIdentifier>
<Lollipop Position="0.2" Collapsed="true" />
</Class>
<Interface Name="Persistence.Repositories.IChangeLogRepository&lt;T, TRequest&gt;">
<Position X="4.75" Y="2.75" Width="1.5" />
<TypeIdentifier>
<HashCode>ACCAAAAAAAAABAAAAAAABAAAAAACAAAgAAAAAABAAAE=</HashCode>
<FileName>Repositories\IChangeLogRepository.cs</FileName>
</TypeIdentifier>
</Interface>
<Interface Name="Persistence.Repositories.ISyncRepository&lt;T&gt;" Collapsed="true">
<Position X="3.75" Y="1.5" Width="1.5" />
<TypeIdentifier>
<HashCode>AAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
<FileName>Repositories\ISyncRepository.cs</FileName>
</TypeIdentifier>
</Interface>
<Interface Name="Persistence.Repositories.ITimeSeriesDataRepository&lt;T&gt;" Collapsed="true">
<Position X="2.5" Y="2.75" Width="1.5" />
<TypeIdentifier>
<HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
<FileName>Repositories\ITimeSeriesDataRepository.cs</FileName>
</TypeIdentifier>
</Interface>
<Interface Name="Persistence.Services.IArchiveService" Collapsed="true">
<Position X="2.75" Y="6" Width="1.5" />
<TypeIdentifier>
<HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
<FileName>Services\IArchiveService.cs</FileName>
</TypeIdentifier>
</Interface>
<Interface Name="Persistence.Services.ITimeSeriesDataObserverService" Collapsed="true">
<Position X="4.75" Y="6" Width="1.5" />
<TypeIdentifier>
<HashCode>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</HashCode>
<FileName>Services\ITimeSeriesDataObserverService.cs</FileName>
</TypeIdentifier>
</Interface>
<Font Name="Segoe UI" Size="9" />
</ClassDiagram>

View File

@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Persistence.Models;
/// <summary>
/// Интерфейс, описывающий временные данные
/// </summary>
public interface ITimeSeriesAbstractDto
{
/// <summary>
/// временная отметка
/// </summary>
DateTimeOffset Date { get; set; }
}

View File

@ -1,15 +0,0 @@
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; }
}

View File

@ -8,7 +8,7 @@ using System.Threading.Tasks;
namespace Persistence.Repositories; namespace Persistence.Repositories;
public abstract class AbstractTimeSeriesDataRepository<TEntity, TDto> : ITimeSeriesDataRepository<TDto> public abstract class AbstractTimeSeriesDataRepository<TEntity, TDto> : ITimeSeriesDataRepository<TDto>
where TDto : class, new() where TDto : class, ITimeSeriesAbstractDto
where TEntity : class, IChangeLogAbstract where TEntity : class, IChangeLogAbstract
{ {
private readonly DbContext dbContext; private readonly DbContext dbContext;
@ -18,6 +18,16 @@ public abstract class AbstractTimeSeriesDataRepository<TEntity, TDto> : ITimeSer
this.dbContext = dbContext; this.dbContext = dbContext;
} }
public Task<IEnumerable<TDto>> GetAsync(DateTimeOffset dateBegin, DateTimeOffset dateEnd, CancellationToken token)
{
throw new NotImplementedException();
}
public Task<DatesRangeDto> GetDatesRangeAsync(CancellationToken token)
{
throw new NotImplementedException();
}
public Task<IEnumerable<TDto>> GetGtDate(DateTimeOffset date, CancellationToken token) public Task<IEnumerable<TDto>> GetGtDate(DateTimeOffset date, CancellationToken token)
{ {
throw new NotImplementedException(); throw new NotImplementedException();

View File

@ -0,0 +1,26 @@
using Persistence.Models;
namespace Persistence.Repositories;
/// <summary>
/// Интерфейс по работе с прореженными данными
/// </summary>
public interface IGraphDataRepository<TDto>
where TDto : class, new()
{
/// <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);
}

View File

@ -0,0 +1,45 @@
using Microsoft.AspNetCore.Mvc;
using Persistence.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Persistence.Repositories;
/// <summary>
/// Интерфейс по работе с уставками
/// </summary>
public interface ISetpointRepository
{
/// <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="idUser">ключ пользователя</param>
/// <param name="newValue">значение</param>
/// <param name="token"></param>
/// <returns></returns>
/// to do
/// id User учесть в соответствующем методе репозитория
Task<int> SaveAsync(Guid setpointKey, int idUser, object newValue, CancellationToken token);
}

View File

@ -7,10 +7,10 @@
public interface ISyncRepository<TDto> public interface ISyncRepository<TDto>
{ {
/// <summary> /// <summary>
/// /// Получить данные, начиная с определенной даты
/// </summary> /// </summary>
/// <param name="date"></param> /// <param name="dateBegin">дата начала</param>
/// <param name="token"></param> /// <param name="token"></param>
/// <returns></returns> /// <returns></returns>
Task<IEnumerable<TDto>> GetGtDate(DateTimeOffset date, CancellationToken token); Task<IEnumerable<TDto>> GetGtDate(DateTimeOffset dateBegin, CancellationToken token);
} }

View File

@ -0,0 +1,19 @@
using Persistence.Models;
namespace Persistence.Repositories;
/// <summary>
/// Интерфейс по работе с табличными данными
/// </summary>
public interface ITableDataRepository<TDto, TRequest>
where TDto : class, new()
where TRequest : RequestDto
{
/// <summary>
/// Получить страницу списка объектов
/// </summary>
/// <param name="request">параметры фильтрации</param>
/// <param name="token"></param>
/// <returns></returns>
Task<IEnumerable<TDto>> GetAsync(TRequest request, CancellationToken token);
}

View File

@ -1,11 +1,29 @@
namespace Persistence.Repositories; using Persistence.Models;
namespace Persistence.Repositories;
/// <summary> /// <summary>
/// Интерфейс по работе с временными данными /// Интерфейс по работе с временными данными
/// </summary> /// </summary>
/// <typeparam name="T"></typeparam> /// <typeparam name="TDto"></typeparam>
public interface ITimeSeriesDataRepository<TDto> : ISyncRepository<TDto> public interface ITimeSeriesDataRepository<TDto> : ISyncRepository<TDto>
where TDto : class, ITimeSeriesAbstractDto
{ {
/// <summary>
/// Получить страницу списка объектов
/// </summary>
/// <param name="dateBegin">дата начала</param>
/// <param name="dateEnd">дата окончания</param>
/// <param name="token"></param>
/// <returns></returns>
Task<IEnumerable<TDto>> GetAsync(DateTimeOffset dateBegin, DateTimeOffset dateEnd, CancellationToken token);
/// <summary>
/// Получить диапазон дат, для которых есть данные в репозитории
/// </summary>
/// <param name="token"></param>
/// <returns></returns>
Task<DatesRangeDto> GetDatesRangeAsync(CancellationToken token);
/// <summary> /// <summary>
/// Добавление записей /// Добавление записей
/// </summary> /// </summary>