DD.WellWorkover.Cloud/AsbCloudInfrastructure/Repository/TelemetryWirelineRunOutRepository.cs

62 lines
2.0 KiB
C#
Raw Normal View History

using AsbCloudApp.Data;
using AsbCloudApp.Data.SAUB;
using AsbCloudApp.Repositories;
using AsbCloudDb.Model;
using Mapster;
using Microsoft.EntityFrameworkCore;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
namespace AsbCloudInfrastructure.Repository
{
#nullable enable
public class TelemetryWirelineRunOutRepository : ITelemetryWirelineRunOutRepository
{
private readonly IAsbCloudDbContext context;
public TelemetryWirelineRunOutRepository(IAsbCloudDbContext context)
{
this.context = context;
}
public int AddOrUpdate(int idTelemetry, TelemetryWirelineRunOutDto dto)
{
context.TelemetryWirelineRunOut.RemoveRange(context.TelemetryWirelineRunOut
.Where(x => x.IdTelemetry == idTelemetry));
var entity = Convert(idTelemetry, dto);
context.TelemetryWirelineRunOut.Add(entity);
return context.SaveChanges();
}
public async Task<TelemetryWirelineRunOutDto?> GetValueOrDefaultAsync(int idTelemetry, WellInfoDto wellInfo, CancellationToken token)
{
var entity = await context.TelemetryWirelineRunOut
.Where(x => x.IdTelemetry == idTelemetry)
.AsNoTracking()
.FirstOrDefaultAsync(token)
.ConfigureAwait(false);
if (entity is null)
return null;
return Convert(entity, wellInfo);
}
private static TelemetryWirelineRunOut Convert(int idTelemetry, TelemetryWirelineRunOutDto dto)
{
var entity = dto.Adapt<TelemetryWirelineRunOut>();
entity.IdTelemetry = idTelemetry;
return entity;
}
private static TelemetryWirelineRunOutDto Convert(TelemetryWirelineRunOut entity, WellInfoDto wellInfo)
{
var dto = entity.Adapt<TelemetryWirelineRunOutDto>();
dto.WellInfo = wellInfo;
return dto;
}
}
#nullable disable
}