Files
monorepo/LCU.Api.Internal.CoreApiWrapper/LCU.Api.Internal.CoreApiWrapper/Services/AccessChannelPersonsService.cs
T
2026-03-31 14:32:23 -05:00

80 lines
3.3 KiB
C#

using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Serilog;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels;
using LCU.Library.Internal.CoreApiWrapperLib.DataAccess;
using LCU.Library.Internal.CoreApiWrapperModel.Constants;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.CoreRequests;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.AccessChannelPersons;
namespace LCU.Api.Internal.CoreApiWrapper.Services
{
public class AccessChannelPersonsService : IAccessChannelPersonsService
{
private readonly IAccessChannelPersonsDao _accessChannelPersonsDao;
public AccessChannelPersonsService(IAccessChannelPersonsDao accessChannelPersonsDao)
{
_accessChannelPersonsDao = accessChannelPersonsDao;
}
public async Task<CoreApiMessage<IEnumerable<AccessChannelPerson>>> GetAccessChannelPersonCoreApiResponseAsync(
AccessChannelPersonsByPersonRequest request)
{
try
{
var coreRequestParameters = new CoreRequestParameters();
return await _accessChannelPersonsDao.FindAccessChannelPersonsByPerson(coreRequestParameters, request);
}
catch (Exception exception)
{
Log.Error(exception, $"There was an issue finding AccessChannelPersons by Person Number. " +
$"PersonNumber: {request.PersonNumber}");
throw;
}
}
public async Task<CoreApiMessage<IEnumerable<AccessChannelPerson>>> GetAccessChannelPersonCoreApiResponseAsync(
AccessChannelPersonsByPersonRequest request, List<string> includes)
{
try
{
var coreRequestParameters = new CoreRequestParameters(includes);
return await _accessChannelPersonsDao.FindAccessChannelPersonsByPerson(coreRequestParameters, request);
}
catch (Exception exception)
{
Log.Error(exception, $"There was an issue finding AccessChannelPersons by Person Number. " +
$"PersonNumber: {request.PersonNumber}");
throw;
}
}
public async Task<AccessChannelPerson> UpdateAccessChannelPersonAsync(AccessChannelPerson request, long updateKey)
{
try
{
var coreMessageHeader = new CoreMessageHeader(updateKey);
var coreApiMessage = new CoreApiMessage<AccessChannelPerson>(coreMessageHeader, request);
var result = await _accessChannelPersonsDao.UpdateAccessChannelPerson(coreApiMessage);
if(result == null)
{
throw new Exception($"The result was null. There was an issue updating AccessChannelPerson. " +
$"PersonNumber:{request.PersonNumber}, " +
$"ChannelNumber:{request.ChannelNumber}");
}
return result;
}
catch (Exception exception)
{
Log.Error(exception, $"There was an issue updating AccessChannelPerson by Person Number. " +
$"PersonNumber: {request.PersonNumber}");
throw;
}
}
}
}