using GB5Shared.DTO.Framework.Login; using QMSDAL.CustomCode.PcsAnalytics; using QMSDAL.DTO; namespace QMSBLL.PcsAnalytics { // Pure pass-through — analytics data is volatile, no caching (NOT_REQUIRED in endpoints). public class PcsAnalyticsBLL : IPcsAnalyticsBLL { private readonly IPcsAnalyticsDAL _AnalyticsDAL; public PcsAnalyticsBLL(IPcsAnalyticsDAL analyticsDAL) { _AnalyticsDAL = analyticsDAL; } public async Task GetKpiAsync( int ouId, int periodId, LoginDTO login, CancellationToken ct = default) { try { return await _AnalyticsDAL.GetKpiAsync(ouId, periodId, login, ct).ConfigureAwait(false); } catch (Exception) { throw; } } public async Task> GetBottleneckAsync( int ouId, int periodId, LoginDTO login, CancellationToken ct = default) { try { return await _AnalyticsDAL.GetBottleneckAsync(ouId, periodId, login, ct).ConfigureAwait(false); } catch (Exception) { throw; } } public async Task> GetMaterialTraceAsync( int ouId, int periodId, LoginDTO login, CancellationToken ct = default) { try { return await _AnalyticsDAL.GetMaterialTraceAsync(ouId, periodId, login, ct).ConfigureAwait(false); } catch (Exception) { throw; } } } }