using FMDAL.DTO.AssetTypeActivity; using FMDAL.Query.AssetTypeActivity; using GB5Shared.DTO.Framework.Login; using GB5Shared.QueryExecutor; using System.Collections.Generic; using System.Data.Common; using System.Linq; using System.Threading; using System.Threading.Tasks; namespace FMDAL.CustomCode.AssetTypeActivity { public class AssetTypeActivityDAL : IAssetTypeActivityDAL { private readonly IQueryExecutor _qe; public AssetTypeActivityDAL(IQueryExecutor qe) => _qe = qe; public async Task GetAssetTypeActivity(int assetTypeActivityId, LoginDTO login, CancellationToken ct) { var items = await _qe.QueryAsync(login, AssetTypeActivityQB.GET_ASSETTYPEACTIVITY, new { AssetTypeActivityId = assetTypeActivityId }, cancellationToken: ct).ConfigureAwait(false); return items.FirstOrDefault(); } public async Task> GetAssetTypeActivityListByAssetType(int assetTypeId, LoginDTO login, CancellationToken ct) { return await _qe.QueryAsync(login, AssetTypeActivityQB.GET_ASSETTYPEACTIVITY_LIST_BY_ASSETTYPE, new { AssetTypeId = assetTypeId }, cancellationToken: ct).ConfigureAwait(false); } public async Task SaveAssetTypeActivity(AssetTypeActivityDTO dto, LoginDTO login, DbTransaction tx, CancellationToken ct) { await _qe.ExecuteAsync(login, AssetTypeActivityQB.SAVE_ASSETTYPEACTIVITY, dto, tx, cancellationToken: ct).ConfigureAwait(false); } public async Task UpdateAssetTypeActivity(AssetTypeActivityDTO dto, LoginDTO login, DbTransaction tx, CancellationToken ct) { await _qe.ExecuteAsync(login, AssetTypeActivityQB.UPDATE_ASSETTYPEACTIVITY, dto, tx, cancellationToken: ct).ConfigureAwait(false); } public async Task DeleteAssetTypeActivity(int assetTypeActivityId, LoginDTO login, DbTransaction tx, CancellationToken ct) { await _qe.ExecuteAsync(login, AssetTypeActivityQB.DELETE_ASSETTYPEACTIVITY, new { AssetTypeActivityId = assetTypeActivityId }, tx, cancellationToken: ct).ConfigureAwait(false); } } }