You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

44 lines
1.5 KiB

using Dapper;
using DealerSelection.Api.Infrastructure.Mulesoft;
using DealerSelection.Api.Models;
using DealerSelection.Api.Models.Enum;
using DealerSelection.Common.Data.Dapper;
using Microsoft.Extensions.Logging;
using System.Data;
using System.Data.SqlClient;
namespace DealerSelection.Api.Infrastructure.YellowAI;
public class Repository : RepositoryBaseDapperAsync, IRepository
{
private readonly ILogger _logger;
public Repository(string cxnName, ILogger<Repository> logger) : base(cxnName)
{
_logger = logger;
}
public async Task<ModelDetailDto> GetModelDetails(string mobileNumber, string buCode, string buSubType)
{
try
{
using (SqlConnection cxn = await OpenCxnAsync())
{
IEnumerable<ModelDetailDto> cusotmerInfo = await cxn.QueryAsync<ModelDetailDto>(Procedure.GetModelDetails,
new
{
buCode,
buSubType,
mobileNumber
},
commandType: CommandType.StoredProcedure);
return cusotmerInfo.ToList().FirstOrDefault();
}
}
catch (Exception ex)
{
_logger.LogError($"DS Repo:Error at Repository:YellowAi in GetModelDetails for MobileNumber: {mobileNumber}, BuName: {buCode}.", ex.StackTrace);
throw new UnexpectedDataException("Error at Repository:YellowAi in GetModelDetails for MobileNumber: {mobileNumber}, BuName: {buName}.", ex);
}
}
}