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 logger) : base(cxnName) { _logger = logger; } public async Task GetModelDetails(string mobileNumber, string buCode, string buSubType) { try { using (SqlConnection cxn = await OpenCxnAsync()) { IEnumerable cusotmerInfo = await cxn.QueryAsync(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); } } }