using GB5Shared.DTO.Framework.Login; using GoodBooks.PAY.PAYDAL.CustomCode.Loyalty; using GoodBooks.PAY.PAYDAL.DTO.Loyalty; using Microsoft.Extensions.Logging; namespace GoodBooks.PAY.PAYBLL.Loyalty { public class LoyaltyTierBLL : ILoyaltyTierBLL { private readonly ILoyaltyTierDAL _tierDal; private readonly ILogger _logger; public LoyaltyTierBLL(ILoyaltyTierDAL tierDal, ILogger logger) { _tierDal = tierDal; _logger = logger; } public async Task> GetTiersByProgram( int programId, LoginDTO login, CancellationToken ct) { try { return await _tierDal.GetTiersByProgram(programId, login).ConfigureAwait(false); } catch (Exception ex) { _logger.LogError(ex, "GetTiersByProgram failed for ProgramId {ProgramId}", programId); throw; } } public async Task GetTierForPoints( int programId, decimal lifetimePoints, LoginDTO login, CancellationToken ct) { try { return await _tierDal.GetTierForPoints(programId, lifetimePoints, login) .ConfigureAwait(false); } catch (Exception ex) { _logger.LogError(ex, "GetTierForPoints failed for ProgramId {ProgramId} Points {Points}", programId, lifetimePoints); throw; } } } }