Files
2026-03-31 14:32:23 -05:00

82 lines
4.5 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.Accounts;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.CoreRequests;
namespace LCU.Library.Internal.CoreApiWrapperLib.DataAccess
{
public class AccountUserFieldDao : BaseCoreDao, IAccountUserFieldDao
{
private readonly CoreConfiguration _coreConfiguration;
private readonly CoreApiConfiguration _coreApiConfiguration;
public AccountUserFieldDao(ICoreRequest coreRequest, CoreConfiguration coreConfiguration) : base(coreRequest)
{
_coreConfiguration = coreConfiguration;
_coreApiConfiguration = _coreConfiguration.CoreApiConfiguration;
}
/// <summary>
/// Calls Core API to update Accounts UserField.
/// Default Included: Graph
/// </summary>
/// <param name="accountUserFieldUpdateRequest"></param>
/// <param name="accountId"></param>
/// <param name="userFieldId"></param>
/// <returns>AccountUserField</returns>
public async Task<AccountUserField> UpdateAccountUserField(CoreApiMessage<AccountUserFieldRequest> accountUserFieldUpdateRequest,
string accountId,
string userFieldId)
{
var endpoint = HttpUtilities.ReplaceRootParameter(_coreApiConfiguration.CoreEndPointConfiguration.PutAccountUserField,
RequestRootParameters.AccountId,
accountId);
endpoint = HttpUtilities.ReplaceRootParameter(endpoint, RequestRootParameters.UserFieldId, userFieldId);
var jsonBody = JsonConvert.SerializeObject(accountUserFieldUpdateRequest);
var result = await _coreRequest.PutRequestObject<CoreApiMessage<AccountUserField>>(endpoint, null, jsonBody);
return result?.MessageBody;
}
/// <summary>
/// Calls Core API to insert Accounts UserField.
/// Default Included: Graph
/// </summary>
/// <param name="accountUserFieldRequest"></param>
/// <param name="accountId"></param>
/// <param name="userFieldId"></param>
/// <returns>AccountUserField</returns>
public async Task<AccountUserField> InsertAccountUserField(CoreApiMessage<AccountUserFieldRequest> accountUserFieldRequest,
string accountId)
{
var endpoint = HttpUtilities.ReplaceRootParameter(_coreApiConfiguration.CoreEndPointConfiguration.AccountUserFields,
RequestRootParameters.AccountId,
accountId);
var jsonBody = JsonConvert.SerializeObject(accountUserFieldRequest);
var result = await _coreRequest.PostRequestObject<CoreApiMessage<AccountUserField>>(endpoint, null, jsonBody);
return result?.MessageBody;
}
/// <summary>
/// Calls Core API to search for UserFields based AccountId.
/// Default Included: Graph
/// </summary>
/// <param name="coreRequestParameters"></param>
/// <param name="accountId"></param>
/// <returns>IEnumerable<AccountUserField></returns>
public async Task<CoreApiMessage<IEnumerable<AccountUserField>>> FindAccountUserFieldCoreApiResponseByAccountId(CoreRequestParameters coreRequestParameters, string accountId)
{
var endpointParameters = HttpUtilities.BuildDictionaryOfNonNullValues(coreRequestParameters);
var endpoint = HttpUtilities.ReplaceRootParameter(_coreApiConfiguration.CoreEndPointConfiguration.AccountUserFields,
RequestRootParameters.AccountId,
accountId);
return await _coreRequest.GetRequestObject<CoreApiMessage<IEnumerable<AccountUserField>>>(endpoint, endpointParameters);
}
}
}