forked from ddrilling/AsbCloudServer
Olga Nemt
b7ce104e4e
- Добавлен новый extension метод AssemblyExtensions.GetTemplateCopyStreamAsync - IAutoGeneratedDailyReportMakerService переименован в IReportMakerService и стал более универсальным
72 lines
2.4 KiB
C#
72 lines
2.4 KiB
C#
using AsbCloudApp.Data.SAUB;
|
|
using AsbCloudApp.Repositories;
|
|
using AsbCloudApp.Requests;
|
|
using AsbCloudApp.Services;
|
|
using AsbCloudDb.Model;
|
|
using Mapster;
|
|
using Microsoft.EntityFrameworkCore;
|
|
using System;
|
|
using System.Linq;
|
|
using System.Threading;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace AsbCloudInfrastructure.Repository
|
|
{
|
|
public class DrillTestRepository : IDrillTestRepository
|
|
{
|
|
private readonly IAsbCloudDbContext db;
|
|
|
|
public DrillTestRepository(IAsbCloudDbContext db)
|
|
{
|
|
this.db = db;
|
|
}
|
|
|
|
public async Task<DrillTestDto[]> GetAllAsync(int idTelemetry, FileReportRequest request, CancellationToken cancellationToken)
|
|
{
|
|
var query = db.DrillTests
|
|
.Where(d => d.IdTelemetry == idTelemetry)
|
|
.AsNoTracking();
|
|
|
|
if (request.GeDate.HasValue)
|
|
{
|
|
var startDate = new DateTime(request.GeDate.Value.Year, request.GeDate.Value.Month, request.GeDate.Value.Day);
|
|
query = query.Where(q => q.TimeStampStart >= startDate);
|
|
}
|
|
if (request.LeDate.HasValue)
|
|
{
|
|
var finishDate = new DateTime(request.LeDate.Value.Year, request.LeDate.Value.Month, request.LeDate.Value.Day);
|
|
query = query.Where(q => q.TimeStampStart <= finishDate);
|
|
}
|
|
|
|
var entities = await query.ToListAsync(cancellationToken);
|
|
var dtos = entities.Select(e => e.Adapt<DrillTestDto>()).ToArray();
|
|
|
|
return dtos;
|
|
}
|
|
|
|
|
|
public async Task<DrillTestDto> GetAsync(int idTelemetry, int id, CancellationToken cancellationToken)
|
|
{
|
|
var drillTest = await db.DrillTests
|
|
.Where(d => d.IdTelemetry == idTelemetry)
|
|
.Where(d => d.Id == id)
|
|
.FirstOrDefaultAsync(cancellationToken);
|
|
|
|
if (drillTest is null)
|
|
throw new Exception($"Drill test with id: {id} and idTelemetry: {idTelemetry} does not exist.");
|
|
|
|
var dto = drillTest.Adapt<DrillTestDto>();
|
|
return dto;
|
|
}
|
|
|
|
public async Task<int> SaveDataAsync(int idTelemetry, DrillTestDto dto, CancellationToken token)
|
|
{
|
|
var entity = dto.Adapt<DrillTest>();
|
|
entity.IdTelemetry = idTelemetry;
|
|
db.DrillTests.Add(entity);
|
|
var result = await db.SaveChangesAsync(token);
|
|
return result;
|
|
}
|
|
}
|
|
}
|