Files
monorepo/LCU.Api.Internal.CoreApiWrapper/LCU.Library.Internal.CoreApiWrapperLib/DataAccess/AccessChannelPersonsDao.cs
T
2026-03-31 14:32:23 -05:00

60 lines
3.2 KiB
C#

using System.Collections.Generic;
using System.Threading.Tasks;
using Newtonsoft.Json;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels;
using LCU.Library.Internal.CoreApiWrapperLib.Utilities;
using LCU.Library.Internal.CoreApiWrapperLib.Configuration;
using LCU.Library.Internal.CoreApiWrapperLib.CoreApiUtilities;
using LCU.Library.Internal.CoreApiWrapperModel.Constants;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.CoreRequests;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.AccessChannelPersons;
namespace LCU.Library.Internal.CoreApiWrapperLib.DataAccess
{
public class AccessChannelPersonsDao : BaseCoreDao, IAccessChannelPersonsDao
{
private readonly CoreConfiguration _coreConfiguration;
private readonly CoreApiConfiguration _coreApiConfiguration;
public AccessChannelPersonsDao(ICoreRequest coreRequest,
CoreConfiguration coreConfiguration) : base(coreRequest)
{
_coreConfiguration = coreConfiguration;
_coreApiConfiguration = _coreConfiguration.CoreApiConfiguration;
}
/// <summary>
/// Calls Core API to update Access Channel Person.
/// </summary>
/// <param name="request"></param>
/// <returns>AccessChannelPerson</returns>
public async Task<AccessChannelPerson> UpdateAccessChannelPerson(CoreApiMessage<AccessChannelPerson> request)
{
var endpoint = HttpUtilities.ReplaceRootParameter(_coreApiConfiguration.CoreEndPointConfiguration.AccessChannelPersonsAccessChannelPersonId,
RequestRootParameters.AccessChannelPersonId,
request.MessageBody.Id);
var jsonBody = JsonConvert.SerializeObject(request);
var result = await _coreRequest.PutRequestObject<CoreApiMessage<AccessChannelPerson>>(endpoint, null, jsonBody);
return result?.MessageBody;
}
/// <summary>
/// Calls Core API to search for AccessChannelPersons based By Person.
/// Default Included: Graph
/// </summary>
/// <param name="coreRequestParameters"></param>
/// <param name="request"></param>
/// <returns>IEnumerable<AccessChannelPerson></returns>
public async Task<CoreApiMessage<IEnumerable<AccessChannelPerson>>> FindAccessChannelPersonsByPerson(CoreRequestParameters coreRequestParameters,
AccessChannelPersonsByPersonRequest request)
{
var endpointParameters = HttpUtilities.BuildDictionaryOfNonNullValues(coreRequestParameters);
var jsonBody = JsonConvert.SerializeObject(request);
return await _coreRequest.PostRequestObject<CoreApiMessage<IEnumerable<AccessChannelPerson>>>(
_coreApiConfiguration.CoreEndPointConfiguration.AccessChannelPersonsByPerson,
endpointParameters,
jsonBody);
}
}
}